Cat Dispenser

It automatically supplies meals to your pet at preset times, by providing the daily dose of cat kibble

Similar projects worth following
It is a practical automatic dispenser of dry food for cats (or small dogs) equipped with a high-capacity container that can easily be opened from the top and a bowl to collect the kibble when it is supplied. We know we can already find automatic dispensers on the market, however, our example is unique because it can be programmed with 9 meals a day in order to supply very precise quantities of dry food.

it does not only supply food but it also gives exact doses as decided by us; basically, at a preset time, a cochlea at the base of the container will turn, and drop a certain amount of kibble in the bowl, regulated by a dedicated weight sensor.

In order to have this kind of functioning, my dispenser is composed of a mechanical and an electronic section; the former has been assembled with PLA, 3-D printed parts, while the electronic section is composed of an Arduino UNO board to which i have applied an RTC Shield, a specific shield with an LCD display, a model-making continuous rotation servo and a load cell; the latter is used to weigh the amount of dry food, and once we reach the desired quantity, the servo operating the cochlea stops. The LCD monitor is managed through pins 8, 3, 5, 6, 7 of the Arduino board; instead, the load cell is read through the A0 pin and it provides an analogue signal itself. For simplicity of design, i decided to use a shield dedicated to measurements and weight display, interfacing with Arduino UNO as indicated and connected to the load cell. The shield, called Weight Shield, mounts an eight-character, 2-line LCD display, which is used, in my project, for setting up the machine. Besides the display, we have the INA125 integrated, a high precision amplifier developed specifically for measurement instruments such as scales. 

The load cell can weigh up to 1.000 g and its body is composed of aluminium alloy; the output sensitivity is 1 mV/V (±0,15mV) and nonlinearity (at full scale) is 0,05%;

User interface

Now, let’s take a look at the user interface, composed of five keys and the display mounted on the Weight Shield; the keys functions are the following:

  • P1 (down button): used to scroll the menu down;
  • P2 (okay button): use to confirm options;
  • P3 (decrease button): use to decrease number of meals;
  • P4 (decrease button) use to increase number of meals;
  • P5 (dispense button); can be used only in the initial screen (Fig. 2), this key is used to manually distribute kibble whenever we want to add food beyond the preset dose, or to supply food anytime.

Mechanical structure

The electronics section is placed in the base, 3D printed as the rest of the mechanical structure. In the base we have placed the Arduino, the shields and the keys, on the right in the dedicated compartment, to be connected as below

and to be mounted on the cover which you will secure using small self-threading, 2,5×10 mm metal screws; the cover has been printed with the holes for the five keys and the window for the display. Still inside of the base, in the section below the actual dispenser, you will fasten the marble plate to the load cell using two screws, which cell must be then applied to the base; on the moving plate, you will place the bowl that will collect the kibble.

The latter is to be 3D printed, provided that its base is smaller (in diameter) than the moving plate placed on the load cell and it is short enough to avoid touching the rest of the structure. The weight is not important in fact, the firmware calculates the tare, which is then subtracted to the detected weight when the kibble is dropped in the bowl. 

Shows the exploded view of the structure 

and shows an internal view of the mechanics, especially for what concerns the kibble dispensing mechanism, based on a spiral element actioned by the servo.

View all 6 components

  • 1
    User interface

    P1 (down button): used to scroll the menu down;

    P2 (okay button): use to confirm options;

    P3 (decrease button): use to decrease number of meals;

    P4 (decrease button) use to increase number of meals;

    P5 (dispense button); can be used only in the initial screen, this key is used to manually distribute kibble whenever we want to add food beyond the preset dose, or to supply food anytime.

    After starting the system, you will see the main screen, with current time displayed on the first line (if it shows 00:00:00, time must be configured; we will see how to do it below); on the second line you will see the word Push with an arrow facing downward: it means we will proceed to configure the dispenser in its functional characteristics. When we see this screen, we can press P5 to manually distribute kibble, and decide the dose.

    If you push the key two times, the Back command will take you back to the main screen

    Use the keys to select the option Meals and a menu will open up where you can choose the number of meals you want to supply to your cat up to a maximum of 9 a day

    In order to select the number of meals, stay on the first line with the pointer and push the decrease key (P3) to decrease the number of meals. You can instead press the increase key (before) which will increase the number of meals a day. Press OK to confirm (P2). To go back to the main screen, click on Back to keep previous settings. Once you press OK (P2) you will go back in the last submenu; this is used to set mealtimes. After selecting the number of meals, we can proceed and indicate hours and minutes to distribute kibble. For instance, if we select three meals a day, will be shown three times, one for each meal set; for each screen we will have to indicate the desired time to distribute the food

    In conclusion, as mentioned above, in order to set the display clock on the dispenser, placed over the keys, you have to place the pointer on the first line, then you can press the “increase or decrease” key to increase or decrease the number corresponding to the time up until the hour you desire. In order to modify minutes, press ok and then once again push decrease or increase to select minutes using the same procedure. After selecting hour and minutes, move the pointer on the second line by pressing down, then confirm and save the exact time by pressing OK. After you are done setting the times, you can go back to the main screen. In order to set the number of grams per meal, press the down key; this way you will access the main menu. Press down one more time and move the pointer on the second line on grams

    then press OK. Once you open the submenu to set the number of grams per meal, you can press increase or decrease to adjust the weight

    Once you decide the weight (i.e. the grams) of the food to provide your pet with at each meal, move the pointer on the second line, press OK to save settings. In case you don’t want to confirm new settings, scroll down with the pointer until you get to Back and press OK to go back to the previous menu

View all instructions

Enjoy this project?



tbhavsar1 wrote 05/03/2022 at 01:42 point

That is cool; where do I feed 3D Model files for printing parts? Regards

  Are you sure? yes | no

albaboun wrote 04/24/2020 at 22:51 point

Hello I am interested in making a proyect like this, but i need to study more arduino . is possible to see the arduino code for this projects? thank, regards

  Are you sure? yes | no

Ken Yap wrote 02/21/2020 at 21:53 point

Title attracted me. Thought maybe it was a CoD (Cat on Demand) system. Alas, not so. I am disappoint. 😉

  Are you sure? yes | no

stefan.schnitzer wrote 10/07/2019 at 06:04 point

Hi, If I had seen your project earlier it would certainly have saved me a lot of work on my cat feeder: ;) 

Great design and build! 


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates