Motor speed control using PWM control

Currently, the Rover-Pi robot motors are controlled by being switched on and off; however, if the robot is moving too fast (for example, if you have fitted bigger motors or used higher gearing), we can make use of the ENA and ENB input on the controller. If these are set low, the motor output is disabled, and if set high, it is enabled again. Therefore, by driving them with a PWM signal, we can control the speed of the motors. We could even set slightly different PWM rates (if required) to compensate for any differences in the motors/wheels or surface to drive them at slightly different speeds, as shown in the following diagram:

A PWM signal controls the ratio of the ON and OFF times

A PWM signal is ...

Get Raspberry Pi 3 Cookbook for Python Programmers - Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.