First post, new user looking for feasibility of stepper motor project

I just purchased my first Arduino Uno board just today and I am doing my best to familiarize myself with the coding, software and hardware. If any of my questions are amateur, please forgive me.

My intended project:

I am looking to build device that contains a base Arduino Uno board, a Motor Shield and a KeyPad Shield. The function of the unit is to, once plugged into a power supply, allow the user to input the current time and date, then also input 2 other times of the day for the devices function to take place.

The function will be to spin a stepper motor backs and forth repeatedly for a total of one minute.

This motor will be attached to a device inside of a fish tank, a drum, that will agitate the media inside of this drum.

Here is a link to a video that shows a similar product that I am trying to duplicate:

http://youtu.be/j9LlXp43jlc

Ideally I would like to have a battery backup to maintain memory.

I do have the Arduino code for the stepper motors rotations, but besides that, I would like to expand the functionality of the device.

If anyone could tell me if this project is feasible and if so, how complicated it may be and point me in the right direction to what more besides the keypad and motor shield, I may need.

Again, if any of my questions are naive or obviously green, please forgive me.

That all looks easy (and i have only had an Arduino since Christmas), I would look at adding a RTC (Real Time Clock) module with its own button cell battery to handle the Time functions. I think the code will need to read the time from the clock chip and if it equals "x" start the Stepper motor and then just toggle directions as required.

Battery backing up the whole system would also be relatively simple, a 12vdc battery and simple charger (use Sealed Lead Acid battery and a constant 13.8VDC supply to "float" the battery) & add a Low Voltage Disconnect circuit through a relay or Transistor to drop out the load if the battery voltage drops too low.

What other functionality are you looking to add?

If you just got your first Arduino today, you would be better off getting some programming experience first before taking on a full-scale project.

Learn the language thoroughly, play with as many of the examples included with the IDE as you can, (first as they are, then by modifying them and observing the effects), then gradually work up to using stepper motors, keypads, RTC modules, and LCDs etc. The most common mistake for beginners is trying to take on too much, with little or no experience.

Then, once you're comfortable with the language, write smaller test programs for each device that you plan to use in your project, and when you have good control over those, put your project together one thing at a time, testing along the way.

If anyone could tell me if this project is feasible

Yes, it's quite feasible and fairly trivial once you've had a little practice.

...... and point me in the right direction to what more besides the keypad and motor shield, I may need.

You'll need the UNO, a motor shield or stepper motor driver, the keypad (or a keypad shield, I guess), an LCD module to display the values entered on the keypad and maybe the current time, an RTC (real-time clock) module, a power supply that's able to handle the stepper motor current. (RTC modules usually have an onboard battery to keep the time when main power is disconnected.) Using a DS1307 RTC, you could then use the "DS1307RTC", "Time" and "TimeAlarms" libraries for your timing requirements. To keep any other settings when main power is removed, you could use the UNO's ATMega328P internal EEPROM.

I see that Kiwi_Bloke has replied as I was typing, with similar advice regarding an RTC, but since I've already typed all of this.....

Thanks for the replies!!

I found two different RTC module, the ds1307 and the ds3231. Which would be better for this project? Still trying to figure out what the difference is, but I will gladly spend a little more for a higher quality component.

Also, would a keypad shield be needed, or would a multifunctional expansion board shield be a better, simpler option? If you watch the video linked in the OP, it looks almost like the controller is made from an Arduino project. It also looks like the display is that of the multifunctional expansion shield. In the video, the controller is contained in an acrylic box. Does anyone have any links to similar project boxes??

Thanks so much for your patience with my novice questions. I am determined to make one of these for my tank :slight_smile:

DS3231 is the better one by a mile. Much more accurate.

See: https://github.com/JChristensen/DS3232RTC .

I'm with Larry. I've only ever used DS1307 RTCs, but just did some reading and will use DS3231s from now on. Thanks Larry, I wasn't aware that the DS3231 was more accurate until right now. That's gotta be worth a point. :)

Apparently, the DS3231 varies the crystal load capacitance with temperature, whereas the DS1307 doesn't.

Edit: The "DS1307RTC" library also supports the DS3231. Edit2: Here's an indication of the difference in accuracy:- Accuracy of DS1307 Real Time Clock module

If you just want to agitate the water in a fish tank I suggest a simple hobby-servo would be much more appropriate. It has all its electronics built in and it is controlled with a single wire from the Arduino and simple commands like

Servo.write(170);
Servo.write(30);

Have a look at the Servo Sweep example in the Arduino IDE.

...R

Robin2: If you just want to agitate the water in a fish tank I suggest a simple hobby-servo would be much more appropriate. It has all its electronics built in and it is controlled with a single wire from the Arduino and simple commands like

Servo.write(170);
Servo.write(30);

Have a look at the Servo Sweep example in the Arduino IDE. ...R

Good point, Robin. I agree that a stepper is overkill. (Good practice though. :) )

Robin2: If you just want to agitate the water in a fish tank I suggest a simple hobby-servo would be much more appropriate. It has all its electronics built in and it is controlled with a single wire from the Arduino and simple commands like

Servo.write(170);
Servo.write(30);

Have a look at the Servo Sweep example in the Arduino IDE.

...R

The media reactor holds approximately 2kg of stones and the water also. It's quite a heavy load to move. Also, the agitation by quickly switching directions requires a high torque motor to really get everything moving aggressively.

As far as the RTC goes, I saw the ds3231 looked to be superior, just wanted to check it would in fact work correctly with all other components.

High torque stepper motors, needed for sloshing kg of stuff, are difficult to handle and for that application, would need to be geared. You would need a beefy power supply and motor driver, which together with a geared stepper, are expensive.

A geared, brushed DC motor would be cheaper and easier to control. I would not be surprised if the motor shown in the video is a reversible, geared motor running on household AC.

This part of the project is electromechanical and really has nothing to do with the Arduino, so you need to decide how to make that work separately.

Fredro: The media reactor holds approximately 2kg of stones and the water also. It's quite a heavy load to move.

This was not apparent from your Original Post.

I agree with @jremington and I would be very surprised if a stepper motor (or a hobby servo) is the correct solution.

...R