Chapter 12. Motors
12.0 Introduction
In this chapter, you will investigate the use of different types of motors with the Raspberry Pi. This includes DC motors, servomotors, and stepper motors.
Motors come in all shapes and sizes (Figure 12-1). The most common is the simple brushed DC motor that you might find in a toy car. In this chapter, we will also look at servomotors, where the position of the motor’s shaft is set using pulses generated by the Raspberry Pi, and at stepper motors, which don’t rotate smoothly, but, as the name suggests, in tiny steps, as their coils are energized in sequence.
Figure 12-1. A selection of motors
12.1 Controlling Servomotors
Problem
You want to use a Raspberry Pi to control the position of a servomotor.
Solution
Use pulse-width modulation (PWM) to control the width of pulses to a servomotor to change its angle. Although this will work, the PWM generated is not completely stable, so there will be a little bit of jitter with the servo. For alternative solutions that produce much more stable pulse timing, see Recipes 12.2 and 12.3.
If you have a Raspberry Pi 1, you should power the servo from a separate 5V power supply because peaks in the load current are very likely to crash or overload the Raspberry Pi. If you have a Raspberry Pi B+ or newer, improvements in the onboard voltage regulation mean that you might get away with powering small ...