Raspberry Pi - Potentiometer Servo Motor
This tutorial instructs you how to use Raspberry Pi to control the angle of a servo motor based on the input value from a potentiometer. In detail, we will learn:
- How to connect the potentiometer and servo motor to Raspberry Pi
- How to program Raspberry Pi to read the value from a potentiometer and control a servo motor accordingly.
Hardware Preparation
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Additionally, some of these links are for products from our own brand, DIYables.
Overview of Servo Motor and Potentiometer
If you are unfamiliar with servo motors and potentiometers (pinouts, how they work, how to program them, etc.), the following tutorials can help:
Wiring Diagram
This image is created using Fritzing. Click to enlarge image
To simplify and organize your wiring setup, we recommend using a Screw Terminal Block Shield for Raspberry Pi. This shield ensures more secure and manageable connections, as shown below:
Raspberry Pi Code
Detailed Instructions
- Make sure you have Raspbian or any other Raspberry Pi compatible operating system installed on your Pi.
- Make sure your Raspberry Pi is connected to the same local network as your PC.
- Make sure your Raspberry Pi is connected to the internet if you need to install some libraries.
- If this is the first time you use Raspberry Pi, See how to set up the Raspberry Pi
- Connect your PC to the Raspberry Pi via SSH using the built-in SSH client on Linux and macOS or PuTTY on Windows. See to how connect your PC to Raspberry Pi via SSH.
- Make sure you have the RPi.GPIO library installed. If not, install it using the following command:
- Install the Adafruit_ADS1x15 library by running the following commands on your Raspberry Pi terminal:
- Create a Python script file potentiometer_servo.py and add the following code:
- Save the file and run the Python script by executing the following command in the terminal:
The script runs in an infinite loop continuously until you press Ctrl + C in the terminal.
- Turn the potentiometer
- Check out the servo motor's rotation
- View the outcome in the Serial Monitor
Code Explanation
Check out the line-by-line explanation contained in the comments of the source code!