Noob question

So I am currently using a Seeeduino V2.21 (Atmega 328P) for my senior project. I need to control 2 motors that will spin 2 separate screws (threaded rod about inch in diameter) up and down limited at 6 inches in both directions, powered by batteries. I need to be able to plug my unit in the wall (my unit will be a box that contains the seeeduino board, accelerometer which will be communicating with the 2 motors to tell when to turn on and off, 2 motors, and rechargeable battery pack, guessing 2 rechargeable battery packs, one for the board, and one for my 2 motors?) I just started reading and many people are using motor shields or brick shields when powering motors because it can fry out the Seeeduino because they may draw to much current.

My two questions are:

What type of motors should I be using? Servo that I can alter to spin more than 360 degrees, can calculate how many revolutions it takes to turn my screw 6 inches in and out?

OR DC motors? Easy to program a limit with these?

And what type of shield would be best to use with the Seeeduino V2.21 (Atmega 328P), are most or all shields similar?

This is a new language to me pretty much and any help/input would be so appreciated!!! :smiley: Need to finish this project so I can graduate in May.


Michael Sikora

The big questions are:
How much torque do you need? if you’re threaded rod is 1 inch in diameter you will probably need a lot of torque to turn them.

How quickly do you want to rotate the threaded rod, how powerful does it need to be?

How much control of the motors do you need? Do you want to control the speed? do you want to know the position at all times, or do the limit switches give you all the information you need?

Like you mentioned the maximum current draw per per I/O Pin is 40 mA.

servos are nice because they have their own internal power control. You can communicate to them by using code from the servo library. I believe the data must be sent on one of the PWM output digital pins. To do this you do not need to purchase a shield of any kind. Like you said many people have modified there servos to rotate continuously and modified the circuitry so that instead of controlling the servo’s final location angle it will adjust the speed instead. This way you will have a motor with a nice gearbox, you can adjust the speed, and you do not need to purchase a motor controller unit. The one problem is these motors are often quite small.

DC motors:
If you want to drive some bigger motors you may want to get an H-bridge controller. This will allow you to start stop and change the direction of your motor. You may even be able to control the speed a little by using PWM.
You can get one on the Seeed Studio website:
“L298 Dual H-Bridge Motor Driver” … th=170_173

Stepper motors:
many people like to use stepper motors because you can easily control the speed and direction. And because it moves in small steps you will know exactly how far it has turned. Stepper motors tend to have a lot of torque at low speeds. At high speeds they often have problems. To drive a stepper motor you will need a specialized circuit board. The Adafruit Motor Shield can run two small stepper motors with your Arduino. the one problem with this system is the way the code is written. It is hard to make the Arduino do other tasks at the same time it is driving the stepper motors.

I hope this helps answer your question.