Let's Make Robots!

About using moter controllers

I'm new to robotics so I want to know abut driver controllers. Do we always have to use motor controllers to drive motors and servos. Can't we use only the Arduino for projects. When we are building a robot can't the Arduino handle both sensors and motors. I guess if we are using separate sorce to power the Arduino and the servos there won't be a problem having a motor controller.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I tend to use Basic Stamp rather than Arduino but I figure it's got to work just as well. If I want a simple controllable motor, I use an old set of servos that I've modified for continuous rotation - providing you don't run too many (Like more than 4 ) at teh same time I find they work really easily and well.

There are several links on how to hack a servo to become continuous rotation depending on your servo, bu tit is dumb-ass easy to do I used this as a base

http://j4mie.org/blog/how-to-hack-acoms-as-16-servos/

 

To answer your original Question - No an Arduino (or any other controller) cannot drive motors directly unless it has a motor driver built in such as a motorino. There are motor driver shields available. Servos are fine. They have their own motor driver built it. The Arduino only needs to supply a control signal. Just make sure your Arduino and your servos have a common ground. Tip: If you have old servos that have stripped a gear then you can use their PCB to drive small motors.

Does that mean that all Arduino based robots have two separate power sources, one for the Arduino and one for the motors & servos? Does the motor criver shield use a separate power source?

no actually the question is that can I use only the Arduino to provide signals to control the servos and use a separate power source to power up the servo cause the Arduino has it's limits.If I can use the Arduino like that I don't have to worry about servo controllers.

Take a look at an Arduino board like the Uno.

It gets power either from the USB port or an external supply. There is a 3.3 voltage regulator for the chips that need 3.3V, and a 5V regulator for everthing else. There's also a Vin pin that lets you tap into the external voltage before it hits the voltage regulator.

Now a servo has three pins: power, ground and signal. Notice there is no place on the Uno to directly connect a three pin servo connector. Without a servo shield or some sort of external board, you will have to make those three connections individually.

Your going to connect the ground pin to one of the available GND pins on the Uno. You'll connect the servo's signal pin to one of the Digital outputs. You have a choice of where to connect the servo's power pin. If you connect power the 5V pin on the Uno, you are going through the Uno's 5V regulator. It can supply more current than the board itself needs, so that's OK. If you have a lot of servos to run, you may be trying to pull more current than the reglator can supply. Try touching the three pin chip next to the power connector. If it is getting hot to the touch, you are pulling too much power through it.

Your other choice for power is the Vin line. Most servos can be run at 6V. Some a little higher. You can power them directly from the Vin line, or directly from the battery's + terminal, which is essentially the same thing.

Practically speaking, if you have a lot of servos, you are going to need an external breadboard, protoboard or shield to make all those connections.

Your explanation of the Vin pin is something I had not previously come across. It's those little pieces of missing (now found!) information that help a lot. Thanks.

No, the Arduino or Microcontroller must be interfaced with some method to control the motor, in this case a motor driver IC that requires 2 separate supplies. Sometimes you can tie the supplies together.

Thanks for all your thoughts and by the way if I'm using only servos to move the robot and to rotate the sensor what do you think that I should use to drive them only the Arduino is enough or do I have to use a servo controller.The next thing is what are the advantages of using a servo controller in a project.Actually now I'm studying c++ and I want to know what is the better language to learn programming IC as a beginner.

Look at the specs for the Arduino board you are interested in using. You'll see there is a limit of how much current it can handle on each I/O pin, and also for the whole board. A servo is just a motor packaged with its own control electronics and gears. If the motor needs more than your Arduino can provide, you need to use some kind of external driver to power it.

That's what motor and servo controllers are for.

Regarding programming language, there is no 'best' language. The best language is the one you are most comfortable with and/or is the best fit for the task at hand. For simple robotics, just about any of the popular one's will do. Arduino uses a C++ like language, so you should be fine with that if you are currently studying it.

Good luck!

Thanks for all your thoughts it really helped