Hi guys. I have two cats, one is Yoko and the other one is named Johnny. Sometimes
I have to leave them home for more than a day. That’s why I've made this. An automatic feeder
that could be adjusted for different portions and time intervals. I know you could go and buy
such a device but I thought it would be a lot more interesting to build my own. I’ve made
the design and 3D printed it. Then we control a servo motor with the Arduino, a real time
clock to get the hour of the day, some voltage regulators, an OLED display and some buttons.
It’s a simple project but I think it could be quite interesting, so if you want to
build this same project, stick till the end of the video. So, let’s get started.
What’s up my friends, welcome back. This is my dear cat Yoko, and this here's Johnny. Sometimes
I have to leave them home alone. They can handle pretty good being alone, even for a few days,
but I have to leave them a lot of food and water or to make sure that somebody will pass by my home
and check the food level. You could also buy an automatic feeder to do that job, but I want to
make my own to be homemade. I’ve designed the body and 3D printed it. I will add a motor and timers,
an Arduino and some buttons and control the food amount by selecting the time and portions. Like
that I make sure they will always have food. Let’s see what we need for this simple project.
Obviously, you will need my design for the 3D printed parts so download them from below.
We have the feeder support base. Then we have the main feeder body that will go inside the support.
We have the hopper that will go inside this main body part where the motor will go.
This also has a case behind where we can place the electronics such as the Arduino,
real time clock, maybe a buzzer and some buttons.
Then, we have two more small parts, the top cap and the cover of the electronics case.
Finally, we have the inside feeder divider. This part will rotate inside and control the amount
of foot that will get out. Everything was printed with PLA material and without support. I’ve used
2 perimeters, 20% infill, 0.25mm layer height and 0.4mm nozzle. That’s it for the 3D printed parts.
Together with these parts I want to use a servo motor like this one, the MG995.
We will have to hack it for full rotation and we will see how in a moment.
We also need two bearings like these ones. The details about each part are below in the
description on electronoobs.com. We will also need a M3 threaded rod and M3 nuts.
At the same time, we will also use some M3 insertion nuts like these ones.
To control the servo, I will use an Arduino NANO and to get the time I
will use a real time clock module like this one here based on the DS32 32 IC.
We need an external RTC because counting time with the Arduino is not precise
and also, if the Arduino resets, the counter would be lost, so it is better to use this module.
To supply everything, I will use a 12V DC adaptor and to get 5V I will use a buck converter.
The Arduino has a 5V regulator but that is low power and I can’t supply the servo,
that’s why we need an external buck converter module like this one.
You will also need glue, wires, maybe a prototyping PCB and some tools.
This is pretty much all we need. Full part list is below. So, let’s start. Get the 3D printed
parts and remove the loose filaments and maybe sandpaper them a little bit if needed. Get the
feeder rotating part. Get some M3 insertions nuts. Using the soldering iron, insert one on each end.
Now get the main part of the body and this where the servo will go,
we also add 4 insertion nuts in the same way, using the soldering iron.
SHOW. We do the same for the bottom part for the electronics case.
SHOW. Add 4 insertion nuts so we can close that case with screws.
We will add the bearings on these holes later, once we have the servo motor in place.
Now let’s hack the servo motor. Servo motors usually rotate 180 degrees.
I want to make this rotate without stopping. If we open any servo motor,
we will find some kind of feedback which usually is a simple potentiometer.
To simulate that the motor is always in the middle position, we need to replace this potentiometer
with fixed value resistors. So I will solder two resistors in a voltage divider configuration.
They must have the same value so we have a middle value in between.
I solder them like this to the control PCB. Now the DC motor should spin without stopping when
we apply a PWM signal to it. But there is one more thing to do. If we open the gearbox, you will see
that one of the gear has a pin. This is used to restrain the rotation to only 180 degrees. Remove
that pin so it could rotate freely 360 degrees. That’s it. We can now close back the motor.
Here I have it connected to the Arduino and a potentiometer. As you can see,
I can control the rotation direction but the servo will now rotate without stopping.
Now get the M3 threaded rod and cut it to around 20cm. If needed we can cut it shorter later.
We can screw this on the servo motor. To fix it in place I will add two M3
nuts and tight them on the motor. You could even add some glue if you want.
Now add another nut and a bearing. Insert this entire setup inside the plastic part and measure
where that nut should be so the bearing will fit exactly on its hole that we have inside.
When you find the perfect position, I add two more nuts and I tight them on the bearing.
Now the bearing is in place, all that is left is to add the feeder separator in between.
So place the feeder inside till you can see the insertion nuts through the side holes.
Now add the threaded screw and rotate it till the screw gets on the other side. On this side
add a nut and tight it on the feeder inside so it won’t get loose. Add some glue if needed.
Then on the outside we add the second bearing.
We could add two more nuts and tighten them, so the screw can’t get out.
On the other side we can also screw in place the servo motor using M3 nuts and the insertions we
have added before. The feeder mechanism is ready and as you can see we can rotate the feeder.
But after some tests I realized we also need this part in place.
We use this part so not all the food would be on top of the rotating feeder because that will
block it in place. Like this we control the flow of food, so also get this part and 3D print it.
Ok, Is time for the electronics. This is the schematic I want to use.
The Arduino connected to the servo and the real time clock module.
Everything is supplied with 5V from the buck converter. I also want to add 3 push buttons
so we can change the time interval and amount of food to dispense. Following the schematic,
I connect everything on a prototyping PCB adding the Arduino NANO, the buzzer and the RTC module.
I get the buck converter and solder the 5V connection on the back.
Then I add it to the PCB to supply all the digital parts. On the side of the
electronics case, I made a hole. I will add a jack connector like this one here for supply.
I also make another hole on top and I pass the servo wire through this hole.
I make the connections and fix the PCB inside the case.
On the cover part of the case, I add 3 push buttons like these ones.
I solder wires to each for ground and signal. I connect them to the Arduino.
Now I could close the case but first we need to upload the code. The code is simple. Using
the DS3232 library we get the real time. We store this time and the feeding time on the
EEPROM memory so even if we unplug the feeder, we still have the schedule saved on the memory.
Using the push button we can select the portions of food to serve between 1 and 10, 15,
20 and back to 1. Using another push button we can select the time interval in hours from 1 to 24.
Using the third button we can make a manual serving.
When the time is reached, we spin the motor for so long according to the portions and that’s it.
We also send some notifications with the buzzer using analog write.
I finally decided to add a display as well so it would be easier to see the portions and time.
SO I connect it to the i2c pins on A4 and A5 and glue it in place on the plastic case.
I would change the design of the case so it would already have a space for such OLED display.
But like this we can now see the portions and time and not rely on the buzzer notifications only.
Download the code from below and upload it to the Arduino NANO.
Then we can close the case with M3 screws. I will add this 12V DC adaptor for supply.
The entire system will start. The first serving must be manual so we press the middle button.
Pressing the first button we can change the portions.
Pressing the third button, we can change the time interval. When the time is reached, dinner is
served and the servo will start rotating. Let’s see if it can feed some cat food.
For the hopper I’ve made this hole here so we can see the food level. Inside we have to
glue in place a transparent plastic film. So I cut to size a plastic sheet and glue in place.
Like this we can see inside the plastic hooper.
Then we can glue the entire hopper on top of the rest of the body.
Is also recommended to add a silica bag like this one on this top plate,
so it will absorb the moisture and keep the food dry. That’s quite important.
Now I can fill the hopper with dry food. Then we can use this top cap to close the hooper.
I add a bowl below the feeder. I’ve set the time to 20 seconds in the code,
just for this test and now I wait. And yes, in 20 seconds there is food coming out for 5 portions.
Let’s now set it to 10 portions and see that double the amount will get out. SHOW.
I know how much my cats are eating so I will leave it at 5 portions each 8 hours.
So, the project works so now my cats will always have food. I will leave this device
running while I’m home as well, for a few months so I’ll make sure it doesn’t fail.
Maybe a future improvement is to make this based on batteries.
Some of the commercial feeders are wireless using batteries so maybe that would be interesting.
You don’t want wires hanging around in your kitchen or wherever you have your cat food.
Another improvement would be, maybe add some suction ventouse like this one below the support,
so the feeder will get stuck to the floor in case the cats want to throw it down.
But that’s it guys, this was a simple project but maybe some of you will find it useful.
I think it looks pretty good and if you want you can also paint it
or print it with different colors. You could also change the 3D design and make the hopper bigger
for more food if you want. Feel free to make any change.
So guys, if you want to make the same or maybe improve this project, you have all my designs and
the schematic below on electronoobs.com. If you like this video or you have learned something new,
consider subscribing or comment below. Thanks again and see you later guys.