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.

    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); 
    }