# Lesson 16 Potentiometer Module

##### Share for us

Introduction

A potentiometer is a device which is used to vary the resistance in an electrical circuit without interrupting the circuit.

Components

– 1 * Raspberry Pi

– 1 * Network cable (or USB wireless network adapter)

– 1 * Potentiometer module

– 1 * Dual-Color LED module

– 2 * 3-Pin anti-reverse cable

– Several Jumper wires (M to F)

Experimental Principle

An analog potentiometer is an analog electronic component. What’s the difference between an analog one and a digital one? Simply put, a digital potentiometer refers to just two states like on/off, high/low levels, i.e. either 0 or 1, while a digital one supports analog signals like a number from 1 to 1000. The signal value changes over time instead of keeping an exact number. Analog signals include light intensity, humidity, temperature, and so on.

The schematic diagram:

Experimental Procedures

Step 1: Build the circuit

For C language users:

Step 2: Change directory

cd /home/pi/SunFounder_SensorKit_for_RPi2/C/16_potentiometer/

Step 3: Compile

gcc potentiometer.c -lwiringPi

Step 4: Run

sudo ./a.out

For Python users:

Step 2: Change directory

cd /home/pi/SunFounder_SensorKit_for_RPi2/Python/

Step 3: Run

sudo python 16_potentiometer.py

Turn the shaft of the potentiometer, and you can see the value printed on the screen change from 0 (minimum) to 255 (maximum).

C Code

``````#include <stdio.h>
#include <wiringPi.h>
#include <pcf8591.h>

#define PCF       120

int main (void)
{
int value ;
wiringPiSetup () ;
// Setup pcf8591 on base pin 120, and address 0x48
pcf8591Setup (PCF, 0x48) ;
while(1) // loop forever
{
value = analogRead  (PCF + 0) ;
printf("Value: %d\n", value);
analogWrite (PCF + 0, value) ;
delay (200) ;
}
return 0 ;
}
``````

Python Code

``````#!/usr/bin/env python
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

def setup():

def loop():
status = 1
while True: