You can make things move by controlling motors with Arduino. Different types of motors suit different applications, and this chapter shows how Arduino can drive many different kinds of motors.
Servos enable you to accurately control physical movement because they generally move to a position instead of continuously rotating. They are ideal for making something rotate over a range of 0 to 180 degrees. Servos are easy to connect and control because the motor driver is built into the servo.
Servos contain a small motor connected through gears to an output shaft. The output shaft drives a servo arm and is also connected to a potentiometer to provide position feedback to an internal control circuit (see Figure 8-1).
You can get continuous rotation servos that have the positional
feedback disconnected so that you can instruct the servo to rotate
continuously clockwise and counterclockwise with some control over the
speed. These function a little like the brushed motors covered in
Recipe 8.9, except that
continuous rotation servos use the servo library code instead of
analogWrite and don’t require a
Continuous rotation servos are easy to use because they don’t need a motor shield—the motor drivers are inside the servo. The disadvantages are that the speed and power choices are limited compared to external motors, and the precision of speed control is usually not as good as with a motor shield (the electronics ...