A potentiometer is a three-terminal resistor with a rotating contact and a sliding contact that forms a voltage divider.
The potentiometer consists of a variable 10-kilo-ohm resistor. This resistor will block part of the voltage depending on how the knob is turned.
There are different types of potentiometers:
The potentiometer is widely used in radiators as a rheostat, or to increase or decrease the sound of a loudspeaker.
There are various types of potentiometer:
Rotary potentiometer :
Sliding potentiometer :
Multiturn potentiometer:
The potentiometer is often used as a voltage divider. It is used to vary the voltage between 0V and 5V. .
As you can see here, we’re going to set a value by turning our potentiometer knob. This will modify the value of the resistor to let more or less current through.
Here are the potentiometer pins:
We can retrieve the potentiometer value by “listening” to the analog pin to which the potentiometer has been connected. To do this, use the analogRead function with the pin name as parameter:
analogRead(Pin);
Use a push-button for discrete inputs (ON/OFF) and a potentiometer for continuous analog inputs. The choice will depend on the specific needs of your project and the actions you wish to perform. Sometimes you can even use the two combined for more advanced functionality, for example, using a potentiometer to control the speed of a motor and a pushbutton to start or stop it.
Here’s the potentiometer symbol you’ll find in electrical circuits.
It doesn’t need any code to work. Simply connect the potentiometer in series with the component for which you want the voltage to vary, in this case the LED.
You can also retrieve the value of the potentiometer by connecting the middle pin to the analog terminal of the Arduino board. By turning the potentiometer, you’ll see the values vary on the serial monitor.
int Potentiometre; // Variable for potentiometer component
void setup() {
Serial.begin(9600); //Initialize serial monitor
Serial.println("Here's the potentiometer value:");
}
void loop() {
Potentiometer = analogRead(A0); //Read potentiometer value
Potentiometre=map(Potentiometre,0,1023,0,5); // Get the value between 0V and 5V.
Serial.print("voltage : ");
Serial.println(Potentiometre); // Display this value
delay(200); // Pause between each value.
}
We’re now going to control a servomotor with our potentiometer. To do this, we’ll connect the potentiometer’s signal pin to the Arduino board, so that the Arduino board can read its value and send it to the servomotor, in this case via pin 9 :
To simplify the circuit, we’re using the Servo.h library. This is a .zip library that can be installed from the Arduino IDE. If you need help adding it, we recommend our course on libraries.
#include <Servo.h> // The library for using the servomotor
Servo myServomotor; // Used to declare the servomotor
int broche_potentiometre=0; // Used to declare the potentiometer pin, which is A0
int valeur_potentiometre; // Used to retrieve the potentiometer value.
void setup() {
myServomotor.attach(9); // The servomotor is attached to pin 9.
}
void loop() {
value_potentiometer = analogRead(pin_potentiometer); // Reads potentiometer value
value_potentiometer = map(value_potentiometer,0,1023,0,180); // convert potentiometer value to a value between 0 and 180 degrees
myServomotor.write(potentiometer_value); // send this value to the servomotor to modify its direction
delay(15); //Pause
}