Introduction: Acrylic Fish Tank With Arduino-Powered Feeder

Have you ever wanted a more hands on feeling when getting a fish? Or wanted something different from the average aquariums found in stores? This fish tank is completely customized and can be changed to fit your size needs and has an Arduino powered feeder. The tank also has a separate section for all of the electronics.

Step 1: Gathering Supplies and Tools

The materials needed for this project are:

  • 2 sheets of¼” clear acrylic
  • 1 sheet ⅛” clear acrylic
  • 1 sheet ⅛” acrylic of your choice
  • Weld-On acrylic bonder
  • Non-toxic sealent
  • Clamps
  • 1 Arduino Uno
  • 1 180 degree rotation servo
  • 1 potentiometer

The tools and software needed are:

  • A 3D printer with ABS plastic
  • Laser cutter or band saw
  • Autodesk Inventor or other CADD software
  • Arduino

Step 2: Designing the Tank

First, the tank itself must be designed. Attached are all of the files for this portion, the files can be edited to fit in any size requirement. All files except the back should be made with clear acrylic, and the back can be as well if you want the electronic components to be visible. The back feature on these files is the Virginia Tech logo, which can be changed to an image of your choice or removed completely to have a solid back.

Step 3: Adding the Electronics Housing

The length and height can be edited as needed. The electronics housing size should not need to be edited width wise, because it is open enough for the Arduino, wires, and servo to fit and be reached.

Step 4: Feeder

Next, the feeder was designed. An easy to use design can be downloaded here and 3D printed. The feeder should then be glued to the wheel on the servo.

Step 5: Feeder Programming

Now, the feeder has to be programmed. Above is the schematic for setting up the Arduino. Below is the servo code:

#include

Servo myservo; // creates servo object to control the servo

int potpin = 0; // analog pin used for potentiometer, can be changed MUST STAY IN ANALOG

int val; // variable to read the value from the analog pin

void setup() {

myservo.attach(9); // attaches the servo on pin 9 to the servo object

}

void loop() {

val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023) val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo (value between 0 and 180) myservo.write(val); // sets the servo position according to the scaled value

delay(15); // waits for the servo to get there}

}

Step 6: Putting It All Together

On a completely flat surface, glue the fish tank together and clamp each side in two spots to prevent the acrylic from bowing. To ensure your tank has a clean appearance, try to keep the glue from oozing out of the seams. Once this is clamped and placed off to the side, do the same for the electronics housing. Let the, dry for 48 hours. Then, take your sealant and place it on the seams and edges. It will fill in wherever water would, making your tank water-tight. Let this set for 72 hours, then attach the electronics portion to the back of the tank using the bonder. Let set for at least 24 hours.

Step 7: Setting Up the Feeder

Lastly, place your electrical components into their section. Glue the servo to the top edge where the tank and the housing meet. Fill the holes with some fish food and you're good to go!