馃挕 ARDUINO: Lectura de un Potenci贸metro



Los potenci贸metros son dispositivos que utilizamos con frecuencia para modificar la variable deseada ya sea voltaje o corriente, en este ejemplo se utiliza el potenci贸metro para introducir valores anal贸gicos en nuestra tarjeta Arduino permitiendo realizar una acci贸n completa con otros componentes como, por ejemplo: variar la velocidad de un motor, la posici贸n de un servomotor o regular la intensidad de la luz.

 
 

Materiales:

  • 1x Arduino

  • 1x Potenci贸metro de 10K鈩

  • 1x Protoboard

  • Jumpers

NOTA: Debemos de considerar que en el potenci贸metro las terminales (pines) de los extremos corresponden a terminales fijas y la central es la terminal variable.

驴C贸mo funciona la conversi贸n anal贸gico digital?

Como bien se coment贸 la resoluci贸n de Arduino es de 10 bits eso quiere decir que tenemos un valor m谩ximo de 1024, esta resoluci贸n es 2n聽con n=10 , entre una mayor resoluci贸n m谩s exacta ser谩 el resultado del sensor.
Resoluci贸n =
Vref / 2n-1

Por ejemplo, si tenemos un voltaje de 2.5 volts tendremos un valor en resoluci贸n de 10 bits de 512, se preguntar谩n como sabemos eso, bien tenemos la siguiente formula:

V =
Vrbits * Vref / 2n - 1

Si despejamos al formula tendremos:

Vrbits =
V * (2n- 1) / Vref

Como se coment贸 el voltaje de referencia de Arduino por default es de 5 volts, la resoluci贸n es de 10 bits o sea , y queremos saber el valor para 2.5 volts, entonces tendremos:

Vrbits =
2.5 * (1024 - 1) / 5.0
= 511.5 鈮 512

Esto es lo que Arduino hace internamente para realizar la conversi贸n anal贸gico/digital, ahora bien para saber el voltaje aplicamos la segunda f贸rmula, esto nos servir谩 para el uso de muchos sensores, claro aplicando lo que dice la hoja de datos del sensor.

Esquema de montaje

Como podemos observar en el esquema de conexi贸n, las terminales de los extremos corresponden a Rmax del potenci贸metro y por lo tanto una terminal se conecta a Vcc y la otra terminal a GND.

Clic en la imagen para ampliar.

La terminal central se conecta al pin anal贸gico que vamos a utilizar de nuestra tarjeta Arduino.

C贸digo

La explicaci贸n es bastante simple, primero definimos los pines que usaremos y las variables para almacenar los valores, esto ya se ha hecho muchas veces anteriormente as铆 que no se entrar谩 en detalles.

Despu茅s en el setup inicializamos el pin como entrada, muchos no hacen eso ya que por default los pines anal贸gicos ya est谩n configurados como entrada, pero recordemos que tenemos que aprender a programar de forma limpia y correcta, tambi茅n cargamos el Serial para la comunicaci贸n y poder ver el valor del potenci贸metro.

Dentro del loop usamos la funci贸n analogRead para poder leer los valores anal贸gicos del pin donde hemos conectado la salida del potenci贸metro, ese valor se almacena en la variable LeePot, una vez hecho eso imprimimos el valor usando Serial.println pas谩ndole la variable LeePot como par谩metro, solo queda por abrir el monitor serial para visualizar los valores que aparecen al mover el potenci贸metro.

Estos valores est谩n en la resoluci贸n de 10 bits, para ver el voltaje que nos da simplemente aplicamos la f贸rmula mencionada al principio de est谩 pr谩ctica e imprimimos los valores.

Con esto queda por visto como leer valores anal贸gicos que van de 0 a 5 volts.

#define POT A0
int LeePot;

void setup() {
  Serial.begin(9600);
  pinMode(POT,INPUT);
}

void loop() {
  LeePot = analogRead(POT);
  Serial.println(LeePot);
  delay(50); 
}