While the idea has long appealed to me, I have never had a chance to build something with Arduino, so I have relatively little experience. I'm trying to select the correct board for a project I'm working on.
I need to select a board that can control 2 motors independently. There will be fairly little torque resisting the motion on both motors, so the amperage doesn't need to be very high. However, size is a concern. The Arduino Micro would fit perfectly, but I didn't see a motor shield that was compatible with it (I may have just not seen it). The board does not have any sensory inputs.
Is there a motor shield that I can use with the Arduino Micro? If not, is there a better option that I'm not considering? I can use the Arduino Uno if I need to, but it will significantly impact my design.
"There will be fairly little torque resisting the motion on both motors"
That is no help. What is fairly little torque? Also that torque is somewhat a nonissue when selecting a motor driver. We need the Amperage... although related to torque it is not the same thing at all. As far as the motor shield why do you want one? Use a driver... same thing but it does not snap on. You could also use a MOSFET.
I should clarify: The motors will be moving a 3 inch pendulum with a 45g weight on the end from straight down to plus or minus about 30 degrees away from the vertical.
The MOSFET isn't a bad idea, but the motor needs to be variable than just on/off. If I'm remembering correctly, isn't that what MOSFET's do?
As I mentioned, I'm relatively new to Arduino. You said a motor driver does the same thing as a motor shield. Is there really no difference?
I haven't yet chosen one. I'm trying to plan this out before I go and buy a bunch of hardware.
I have not considered a gear motor. What is the advantage of that?
Edit: Ideally I'd like to be able write the change in speed into the program by sending choosing different integer values. For example, 0 would be off, 100 would be full on CW, -100 would be full on CCW, and values in between would be varying speeds. If I remember the last time I did something similar, the values were between -255 and 255. However, at that point I did not handle the hardware, and was only responsible for the code.
I second the servo idea... the amount of weight you are using is trivial. Look at spark fun and servo city. You will not need a separate controller and you will be able to move it accurately.
If you use a motor it would probably be a gear motor... a un-geared motor will have high RPM but hardly any torque, then again you don't need much torque. If you go this option checkout spark fun. Keep in mind precision will be hard with this method .
A MOSFET will be able to control the speed, but not direction of a motor. A motor driver Is the same thing as a shield it just does not snap on top. Everybody will tell you that.
If the Arduino uno is the correct size then I suggest staying with that. On a project that I worked on we used a combination of motors and servos to control an arm. The weight of the arm was to great for a servo so we used a motor to control that, but we had a claw attached to the arm that needed fine control, so we used servo.
So what I am trying ti say is that servo will provided a smooth movement and control. While they lack power to move objects and and range of movement can be limited depending on type of servo.
If you go with a motor you have power, speed, and 360 degree movement. Motors lack the fine control of servos.
Both motors and servos may need a driver board to provided the current necessary for operation.
Since size seems to be of a issue you may want to use a arduino mini, yun, nano, or lillypad. These are significantly smaller that the uno. None of these including the uno and mega cannot power a motor, but depending on servo you may. If you are any good with eagle than I suggest making your on driver board to power a servo or motor. We did this for our arm. We used H-bridges to provided the current necessary for operation. Making you own driver board will decrease your budget and if you burn up your driver it allow you to easily replace as well.
Edit:
Forgot to mention some motors and servo contain encoders that you can use to track distance. Some motors and servos have multiple pins that can be used for direction or speed.