CatFeeder 3D Printer Model

Author: @
License: CC BY
File formats: stl,ino,pdf
Download type: zip
Size:2.6MB

The file 'CatFeeder 3D Printer Model' is (stl,ino,pdf) file type, size is 2.6MB.

Summary

My CatFeeder is equipped with a laser sensor that checks the food level in the food bowl. By turning the potentiometer, you change the set point of the food level inside the bowl. The first line of the display shows the current food level. The second line shows the set point you have selected. I have added the arduino nano software that I use on my CatFeeder today. I have also added a Fritzing sketch that show how to connect all the parts.
All the 3D printed part you have to glue together with some kind of superglue.
I hope someone will make my pet feeder like it is or with a modification.
Here are the components I have used.

Motor:
https://www.ebay.com/itm/Reversible-Electric-Worm-Gear-Motor-12V-8rpm-6mm-Output-Shaft-Gearmotor/183867809745?hash=item2acf601fd1:g:5X0AAOSwhkJdSXDb
L298N
https://www.ebay.com/itm/L298N-DC-Stepper-Motor-Driver-Module-Dual-H-Bridge-Control-Board-for-Arduino/362863436137?hash=item547c58a169:g:gkYAAOSwe6FaJ5Df
Laser sensor
https://www.ebay.com/itm/VL53l0x-Breakout-oF-Enfernungssensor-Modul-GY-VL53L0XV2-Distance-Sensor/254315928298?hash=item3b36691aea:g:XbsAAOSwerddQWW5
Oled
https://www.ebay.com/itm/0-96-I2C-IIC-Serial-128X64-128-64-Blue-OLED-LCD-LED-Display-Module-for-Arduino/312207439884?epid=0&hash=item48b103780c:g:kVUAAOSwZGRbZYfX
Potentiometer
https://www.ebay.com/itm/WH148-B1K-B1M-Ohm-Linear-Taper-Rotary-Potentiometer-Panel-Pot-3-PIN-Knob-Cap/124031440318?hash=item1ce0d995be:m:m2NiUMv_JMPvd63eX1YnmRg
Power connector
https://www.ebay.com/itm/20PCS-5-5mm-x-2-1mm-DC-Power-Supply-Female-Jack-Socket-Panel-Mount-Connector-M81/392706939079?hash=item5b6f2858c7:g:afkAAOSwJVJeWcd0

Here is my INO file for the CatFeeder:

include

include "Adafruit_VL53L0X.h"

include

include

include

const int FEEDpin;
const long onDuration = 60000;// Feed time
const long offDuration = 1800000;// Feeder wait 30 minutes before it feeds again
int FoodState = HIGH;// initial state of LED
long rememberTime=0;// this is used by the code

Adafruit_SSD1306 display = Adafruit_SSD1306();
Adafruit_VL53L0X lox = Adafruit_VL53L0X();

void setup() {
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(FEEDpin,OUTPUT);// define FEEDpin as output

display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(50);

Wire.begin();
lox.begin();

display.setTextSize(2);
display.setTextColor(WHITE);
}

void loop() {

int sensorValue = (analogRead(A0)/5.065);

VL53L0X_RangingMeasurementData_t measure;

lox.rangingTest(&measure, false);

if (measure.RangeStatus != 4) {
display.clearDisplay();
display.setCursor(35,0);
display.print(measure.RangeMilliMeter); // Oled show actual food level i first line and setpoint food level i second line
display.print(" mm");
display.setCursor(35,16);
display.print(sensorValue);
display.print(" mm");
display.display();
delay(50);
} else {
display.display();
display.clearDisplay();
return;
}

if(FoodState == HIGH)
{
if( (millis()- rememberTime) >= onDuration){
FoodState = LOW;
rememberTime=millis();
}
}
else
{
if((millis()- rememberTime) >= offDuration){
FoodState = HIGH;
rememberTime=millis();
}
}
digitalWrite(FEEDpin,FoodState);

if(FoodState == HIGH && measure.RangeMilliMeter >= sensorValue){ // sensorValue = wanted food level you can adjust with potentiometer.
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
analogWrite(9,255);
}else{
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}

}// loop ends

Happy printing!!

Auger.stl 1.9MB
Augerdoor1.stl 521.1KB
Augerdoor2.stl 238.9KB
AugerdoorH.stl 323.4KB
AugerP1.stl 292.4KB
AugerP2.stl 491.7KB
AugerTube.stl 276.3KB
Basement.stl 355.9KB
Buffer.stl 294.7KB
CatFeeder.ino 2.0KB
Cover.stl 229.6KB
Funnel.stl 258.6KB
House.stl 1.9MB
PetFeeder_readme.pdf 86.1KB