Knowledge for the World

How to add a Raspberry Pi potentiometer

It's time to crank your project up to 11.
  • by Ash (21)
  • 30 minutes

The Raspberry Pi is an incredibly capable pocket sized machine. It’s compatible with a variety of external hardware that can be programmed for specific uses. It’s common to find Pi projects that require buttons, switches, and even servo motors!

But today we’re kicking things up a notch! In this guide, we’ll be setting up a potentiometer to work with the Raspberry Pi.

Pi potentiometer uses

These devices are very useful and one of the most versatile components for Pi projects. They can be used to adjust volume, the brightness of a light source, or even dial in a radio frequency.

I’ll be using a Raspberry Pi with the latest version of Raspbian installed. Before you begin, it’s best to visit our guide on how to update Raspbian.

1

Prepare the ADC adapter chip

The Raspberry Pi connects to external devices using GPIO pins. In order for the Pi to make sense of the new input, we will need to use an analog-to-digital converter, or “ADC”, chip to convert the analog input into a readable digital format. The chip serves as a kind of translator, letting us call the potentiometer input in our own custom code.

In this guide, I’m using an Adafruit 1015 ADC chip. The chip arrives with an assortment of pins that need to be soldered into place. Carefully solder the pins to the ADC chip.

2

Enable I2C on the Raspberry Pi

In order for the Raspberry Pi to talk to the chip, we need to enable I2C. Connect to the Pi using a terminal and run the following two commands. This will install the I2C tool we need to proceed.

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

Open the Raspberry Pi configuration menu using the following string.

sudo raspi-config

Newer versions of the Pi will have an option called Interfacing Options. Older editions use the Advanced Options selection to reach the I2C settings. Using the appropriate menu screen, enable I2C on the Raspberry Pi.

3

Wire the ADC chip to the Pi

Now it's time to wire up our freshly soldered ADC chip. Be sure to power off your Raspberry Pi with the following command.

sudo poweroff

To help showcase the connections we're making, I'm using a breadboard with a Raspberry Pi GPIO breakout board attachment. This makes it much easier to highlight individual connections. This step contains instructions for the ADS1015 chip. If you’re using a different ADC chip, you will need to search for proper wiring steps from the manufacturer.

The following points on the ADC chip are listed with their respective Pi connection points. We only need 4 male to male jumper wires for this step.

ADS1015Raspberry Pi
VDD3.3V
GNDGND
SCLSCL
SDASDA
4

Install an appropriate Python library

The ADC chip I'm using for this guide requires a specific Python library from Adafruit. This step contains installation instructions for ADS1015 and ADS1115 chips. If you're using a different ADC chip, you will need instructions specific to your device. Check with the manufacturer and research online to find the library you need.

Power on the Pi and run the appropriate script for your ADC chip library. If you’re using an ADS1015 or ADS1115, run the following commands.

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus git
cd ~
git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git
cd Adafruit_Python_ADS1x15
sudo python setup.py install
5

Wire the potentiometer to the Raspberry Pi

Power off the Raspberry Pi using the following command.

sudo poweroff

The potentiometer I’m using in the example has three prongs. The center prong will be connected to the ADC chip. The outer prongs are for +/- power. Using three female to male jumper wires, connect the potentiometer to the Raspberry Pi. The following table highlights the appropriate connection for the ADS1015 chip.

PotentiometerADCPi
Left Prong3.3V
Center ProngA0
Right ProngGND
6

Test the connection

In order to test our setup, we'll be using the example files provided by Adafruit. Navigate to the examples folder using the following command.

cd ~/Adafruit_Python_ADS1x15/examples

This step includes information for the ADS1115 chip. The Adafruit website contains additional information about modifying the test file for the ADS1015 chip.

Run the following script to initiate the test file.

sudo python simpletest.py

Rotating the potentiometer knob should generate a visible change in the readout from the Pi. Congratulations! Your Pi projects can be customized like never before. Not sure where to start? Check out our awesome Raspberry Pi guides for inspiration!