Introduction: Arduino Fish Feeder

This project I made using mostly household items, so it doesn't look as clean as some others I've seen on this site, but I saved some money on it. It uses an Arduino to move gears with a motor which will push fish food into the tank. The programming part of it can set the delay time to feed as often as needed.

Parts List:

  • Arduino Uno (Where I got mine)
  • Arduino Adafruit Motor Shield v1(Amazon)
  • External power source 12V AC (I used a standard power adapter from around the house, connecting to one of these adapters)
  • Wire (basic copper)
  • DC motor (I took apart one from an old toy)
  • Gears (from that same toy the motor came from)
  • Small box
  • Drill bit (medium-large size that can be used with your gears)
  • Small paper cup

Step 1: Assemble the Gears

I received all of the parts from an old toy I found around the house. Assemble all of the gears so that you can rotate a drill bit eventually. The pictures here show the assembled gears and motor inside a small plastic casing.

Step 2: Cut Into the Small Paper Cup

This will hold your fish food. I cut a small gap as shown in the picture, then I pushed the drill bit through the bottom to make a hole for it to go through.

Step 3: Stack the Motor Shield to the Arduino Uno

The ports should align. If they don't you may have to push gently on the ports to align them.

Step 4: Attach Wiring

Attach copper wires and a power adapter converter (or batteries if you're not using a wall adapter like I did) to the external motor shield power port (make sure you take off the power jumper). I also attached the motor wires to the motor shield motor ports.

Step 5: Coding

Plug in a printer cable to the Arduino Uno and open up the Arduino sdk to get a new code window. (You will need the motor shield library, and you can get one here.)

Here is the code I used:

// Adafruit Motor shield library<br>// copyright Adafruit Industries LLC, 2009
// this is public domain, enjoy!
//The parameter here is the port you plugged the motor into.
AF_DCMotor motor(3);
void setup() {
  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Motor test! \n");
  // turn on motor, 90 was a good speed for me that didnt send objects flying everywhere.
void loop() {
  Serial.print("Forward \n");;
  delay(2500); //adjust this number to control the amount of food getting through;;
  delay(1000);//This is the number of milliseconds to wait before starting over. 
  //This will repeat every second, good for testing if it works. 
  //Set to a much higher number if you want to delay 
  //by multiple hours instead of seconds.

Step 6: Attach Parts to Your Small Box

This was the smallest box I could find around the house, but you could probably use a box half this size. There were holes in the motor casing for screws and I cut a hole in the box for the drill bit to fit through. I used some leftover cardboard as supports as well. The finished product is shown in the picture. There is room in my box to put all the electronics and the motor in the same place, however, some might prefer to extend the wires so the electronics are in a separate location. End!