I’m setting up a betta fish tank and wanted to make an automatic fish feeder so he never misses a meal. I’ve seen other DIY fish feeders that just shake a container but I wanted to be able to precisely control how much food he’ll get. Hope the new fishy likes it!
Follow my other projects on Instagram @Trevor_DIY
Purchasing through the following affiliate links supports me as a maker 🙂
- Arduino UNO
- Arduino power adapter (or USB adapter)
- Motor driver and stepper motor (28BYJ-48)
- 3D printed wheel
- 3D printed housing
- Hot glue
- Fish tank
- Betta fish pellets
Step 1: Wire Up the Motor Driver and Stepper Motor
Yes, to run a stepper motor with Arduino, you MUST have a motor driver! There’s heaps of info online about this but the quick and dirty reason is because the Arduino output pins are not able to supply the stepper with enough current (amps) to get the coils in the stepper to engage. I chose this stepper and motor driver because it can work off 5V which the Arduino has an output for.
- Plug the stepper into the motor driver with the white connector.
- Connect the Arduino output pins 8, 9, 10, 11 to the motor driver input pins 1N1, 1N2, 1N3, 1N4 respectively.
- Connect the Arduino power pins GND and 5V to the motor driver power pins – and + respectively.
- Connect the Arduino USB port to your computer and start the Arduino software.
Step 2: Feeding Mechanism
I used Autodesk Inventor to design the 2 parts to be 3D printed. The “Turn_Table” has 14 wells for fish pellets which means I can feed my fish twice a day for a week. The motor rotates the “Turn_Table” over the “Plate” which pushes the pellets forward until one well is dumped through the hole in the “Plate”. It’s pretty similar to how a gumball machine works!
Step 3: Program the Arduino
This code is really simple since I am using the Arduino stepper.h library. The goal is to have the stepper rotate the turn table by one well so it dumps the next set of food into the tank. I’ve commented out the code so the details are below.
Read more: Betta Fish Feeder