Fig. 1 - Arduino Lesson 5 - Reading Potentiometer and Showing Values On Serial Monitor |
Welcome to Lesson 5 - Basic Arduino Course
Today we are going to learn how to read a Potentiometer end showing the Values on Serial Monitor.
In this example, we will use a potentiometer, however, this same concept is used for most analog sensors.
What will differentiate will be the type of calculation used, with reference to each sensor.
We will use the analogRead() function, to read A0 PIN, in Arduino we have 6 Analog Ports, which goes from A0 to A5, so we can make readings from up to 6 sensors simultaneously without having to use external hardware.
Hardware Required
- Arduino Board
- A 10K Potentiometer
- Wires
- Protoboard (optional)
The Circuit
Fig. 2 - Reading Potentiometer and Showing Values On Serial Monitor - tinkercad.com |
The Code
The analogRead() function converts the input voltage range, 0 to 5 volts, to a digital value between 0 and 1023. This is done by a circuit within the microcontroller called analog-to-digital converter, or ADC.
Then, if the voltage at the center pin is 0 volts, analogRead() returns 0. When the shaft is turned all the way the other way, there is no resistance between the middle pin and the pin connected to 5 volts.
If the voltage on the middle pin is then 5 volts, analogRead() returns 1023. In between, analogRead() returns a number between 0 and 1023 that is proportional to the voltage applied to the pin.
After building the circuit, connect your Arduino board to your computer, launch Arduino Software (IDE), copy the code below and paste it into your Arduino IDE. But first let us understand the code line by line.
- In Line 3, we declared variable sensorPin which is set to Analog Pin A0 where we receive the value of the connected potentiometer.
- In Line 4, we create a variable senorPin that stores the value of the sensor that we also use for the potentiometer.
01 02 03 04 05 | // Arduino: Lesson 5 - Reading Potentiometer and Showing Values On Serial Monitor int sensorPin = A0; // Read the Analogic Pin A0 Values into a variable int sensorValue = 0; // Variable to store the value coming from the sensor "Potentiometer" |
- In Line 6, we enter the void setup() function. This function is read only once when the Arduino is started.
- In Line 7, we begin serial communication by declaring the Serial.begin() function. At 9600 bits of data per second, this is the speed at which your computer will communicate with your Arduino Serial.
01 ... 06 07 08 09 | // Arduino: Lesson 5 - Reading Potentiometer and Showing Values On Serial Monitor void setup() { // This function is called once when the program starts Serial.begin(9600); // Begin the Serial Monitor with bounce rate in 115200 } |
- After setting the initializations, in Line 10 we will enter the void loop() function.
- In Line 11, we use the variable sensorValue to store the resistance value, which is between 0 and 10K (read by the Arduino as a value between 0 and 1023) and controlled by the potentiometer.
- In Line 13, we use the command Serial.println(), it is print out the value controlled by the potentiometer, this value will read with value between 0 and 1023 in your Serial Monitor.
- In Line 14, we run the delay() function, for greater system stability.
1 ... 10 11 12 13 14 15 16 17 | // Arduino: Lesson 5 - Reading Potentiometer and Showing Values On Serial Monitor void loop() { // The loop function runs over and over again forever sensorValue = analogRead (sensorPin); // Read the input on analog pin A0 Serial.println(sensorValue); // Print out the value you read delay(1); // delay in between reads for stability } //------------------------------------- www.elcircuits.com -------------------------------------------- |
The complete code is showed in the sketch below!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // Arduino: Lesson 5 - Reading Potentiometer and Showing Values On Serial Monitor int sensorPin = A0; // Read the Analogic Pin A0 Values into a variable int sensorValue = 0; // Variable to store the value coming from the sensor "Potentiometer" void setup() { // This function is called once when the program starts Serial.begin(9600); // Start serial connection } void loop() { // The loop function runs over and over again forever sensorValue = analogRead (sensorPin); // Read the input on analog pin A0 Serial.println(sensorValue); // Print out the value you read delay(1); // delay in between reads for stability } //------------------------------------- www.elcircuits.com -------------------------------------------- |
Next Lesson
Previous Lesson
If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.
Subscribe to our blog!!! Click here - elcircuits.com!!!
My Best Regards!!!
If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.
Subscribe to our blog!!! Click here - elcircuits.com!!!
My Best Regards!!!
No comments:
Post a Comment