Gertboard-Pi Potentiometer Controlled Motor


  • In the potmot (for potentiometer-motor) test we use a potentiometer (“pot”) connected to the analogue to digital converter (A/D) to get an input value, and this value is used to control the speed and direction of the motor. It is set up so that at one extreme, the motor is going at top speed in one direction, as you move the wiper towards the middle it slows, at the middle the motor stops, and as you continue to move the wiper along, the motor speeds up again but in the other direction.

Gertboard-Pi Potentiometer Controlled Motor

  • To wire up the Gertboard for this example, jumpers connect GP8 to GP11 to the pins directly above them to allow us to control the SPI bus using GPIO8 to GPIO11. You must attach your potentiometer to the AD0 input. GPIO17 controls the motor B input and GPIO18 controls the motor A input using the pulse width modulator (PWM). Thus GP17 must be connected via a strap to MOTB, and GP18 must be connected to MOTA. The motor and its power source must be connected to the screw terminals in J19 at the top of the board.

Potmot test in Python:
This program,, uses spidev to control the A/D and WiringPi for Python to control the motor with the hardware PWM.
Gertboard-Pi Potentiometer Controlled Motor SchmeaticThe potentiometer position (read by the ADC) determines motor direction and speed (PWM value) as follows: middle value (511) results in no movement, 1023 results in max speed one way, 0 results in max speed the other way.
Download and install WiringPi:
If you don’t have WiringPi for Python installed already, the best way to instal it is:


For more detail: Gertboard-Pi Potentiometer Controlled Motor Schmeatic

About The Author

Scroll to Top
Read previous post:
Expanding the Raspberry Pi with PiFace and Pi Rack
Expanding the Raspberry Pi with PiFace and Pi Rack

The marvellous Raspberry Pi, essentially a cheap, small PC, is a great device for education or home projects like media...