Change a Variable with a Potentiometer

Difficulty
Easy
Steps
11

Potentiometers, also known as variable resistors, can be found in many Arduino projects. 

In this guide, you will learn to use a potentiometer to turn values up and down and provide variable resistance. These values are read into the Arduino board as an analog input.

After completing this guide, you will be able to use potentiometers in your projects. Some examples of what you could do with a potentiometer are to control LEDs, MIDI or servos.

Step 1  Insert our LED.

  • Insert our LED so the Cathode (shorter leg) is on the left hand side.

Step 2  Insert a 220 Ohm Resistor.

  • Insert a 220 Ohm resistor so that one leg is in line with the positive leg of our LED.

Step 3  Insert the Potentiometer.

  • Insert the potentiometer so that the pins are aligned horizontally.

Step 4  Connect LED Cathode to Ground.

  • Connect the Cathode of our LED to a Ground pin on our Arduino.

Step 5  Connect the 200 Ohm Resistor to Digital Pin 9.

  • Connect the 200 Ohm Resistor to Digital Pin 9

Step 6  Connect Potentiometer to 5V.

  • Connect the first pin of the potentiometer to the Arduino's 5V pin.

Step 7  Connect the Potentiometer to Ground.

  • Connect the last pin on the potentiometer to the other Ground on the Arduino.

Step 8  Connect the Potentiometer to Analog 0.

  • Connect the middle signal pin of the Potentiometer to Analog pin 0.

Step 9  Upload this code.


              int potPin = 0;    // Analog input pin that the potentiometer is attached to
int potValue = 0;  // value read from the pot
int led = 9;      // PWM pin that the LED is on.
 
void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}
 
void loop() {
  potValue = analogRead(potPin); // read the pot value
  analogWrite(led, potValue/4);  // PWM the LED with the pot value (divided by 4 to fit in a byte)
  Serial.println(potValue);      // print the pot value back to the debugger pane
  delay(10);                     // wait 10 milliseconds before the next loop
}
            
  • Copy this code to the Arduino IDE and upload it.
  • Now when you turn the blue potentiometer the light should go from dull to bright!

Step 10  Try this code.


              int sensorPin = A0;    // The potentiometer is connected to analog pin 0                  
int ledPin = 9;      // The LED is connected to digital pin 9
int sensorValue;	//We declare another integer variable to store the value of the potentiometer

void setup() // this function runs once when the sketch starts up
{
  pinMode(ledPin, OUTPUT);
}

void loop() // this function runs repeatedly after setup() finishes
{
  sensorValue = analogRead(sensorPin);    

  digitalWrite(ledPin, HIGH);     // Turn the LED on
  delay(sensorValue);             // Pause for sensorValue in milliseconds
  digitalWrite(ledPin, LOW);      // Turn the LED off
  delay(sensorValue);             // Pause for sensorValue in milliseconds
}
            
  • Here is some alternate code that changes the rate of the blinking LED

Step 11  In action!

  • Here it is in action!