Feedo - the remote controlled feeder

A pet feeder (e.g. for cats) with an automatic feeding schedule and IR controlled manual feeding.
14
20
0
308
updated April 27, 2025

Description

PDF

Description

I am a 13-year old boy and I live in Austria and I have a lovely black cat named “Lulu” 🐈. She is always hungry, so I decided to build a cat feeder for her - all from scratch and without other person's help. 

It is a food storage inside a rectangular box. On the bottom, a servo motor rotates a paddle (e.g. for 0.5s) to let food pellets through. On the lower end, there is a round opening to put a plate or bowl. 

Functions

It looks nice! 😎 And it can feed the cat in two ways: 

Time programmed: On specific times of the day, the feeder activates and gives food - as you can change in the code.

Remote controlled

  • press 1 for a small portion (0.3s)
  • press 2 for a medium portion (0.6s)
  • press 3 for a big portion (0.9s)
  • press 0 for back-and-forth to solve blockages (3 times for 60ms)

Hardware

  • Prusa Mini+ for 3D printing with PLA Prusament 
  • Arduino Mega 2560 
  • SG90 as the servo motor 
  • DS1307 as the time keeping module 
  • Iduino IR receiver 
  • IR remote control
  • Small breadboard for wiring

Software

Wiring Diagram

I have built three different wiring diagrams for three different Arduinos: 

On the example of the Arduino Mega, it connects

  • Port 3 to the IR receiver
  • Port 10 to the servo motor
  • Port 20 and 21 to the time keeping module
  • 5V and GND to the breadboard
    • 5V and GND to the IR module
    • 5V and GND to the servo motor
    • 5V and GND to the time keeping module

Code

I have attached three .txt files for the Arduino Mega, Uno and Nano. The software mainly does the following things: 

  • handleIRInput (gets the hexcode from the IR and then sets the feeding duration)
  • dispenseFeed (turns the motor 90° for the feeding duration from handleIRInput)
  • shakeFeederServo (turns the motor back and forth three times to unblock)
  • checkFeedingTimes (checks the time of the day to see if feeding times are due)

Further, in the code variables can be set, e.g.: 

  • feedingTimes (to set the times of the day where feeding shall occur)
  • feedingDurations (to set duration for the servo for the planned feedings to adjust the portion size)
  • handleIRInput (to set duration for the servo for the remote controlled feedings to adjust the portion size)

Printing Instructions

I have used Prusament PLA in black with my Prusa Mini+. Generally I used layer height 0.2mm. Below are eight .3mf files. For each file I have already added the supports where necessary, so you only need to activate the setting “For support enforcers only”. 

Assembly Instructions

  1. Print all eight parts. 
  2. Please follow the Assembly instruction document attached. 

Demo and Usage Instructions

Just wait for the time of the day and see the food being dispensed. Or push the button on the remote to give your pet a treat! 🍬

Additional Notes or Tips

In case you have problems with printing or the electronics, please comment and I will help you! 

Tags



Model origin

The author marked this model as their own original creation.

License