Frecuentemente vamos a tener que medir valores de voltaje o tensión variables entre unos valores fijos que no seria posible con las entradas digitales.
Para montar esta práctica, necesitarás un arduino y algunos componentes. Te aconsejo aquí donde comprar un kit arduino.
En el anterior post, vimos como al leer valores digitales, estos solo podían tener dos valores fijos 1 ó 0 equivalente a (5-0V). Hoy vamos a ver como se leen entradas que tienen un valor variable entre dos tensiones de referencia. Para ello necesitamos conectarlas a una entrada analógica para saber su valor.
Normalmente es necesario usar estas entradas a la hora de leer el valor de un sensor o leer un potenciómetro que movemos, por ejemplo, al querer subir el volumen de nuestro equipo de música.
¿Que es un potenciómetro?
Un potenciómetro es una resistencia variable de un valor determinado dado por el fabricante y que nosotros podemos ajustar desde 0 a ese valor.
Tiene 3 terminales, los dos de los extremos son fijos y entre ellos habrá la resistencia máxima del potenciómetro que será la marcada en el lateral del la carcasa del mismo, el central es un terminal movil, que podemos ajustar con el tornillo del potenciómetro.
Internamente el terminal central es un contacto que desliza entre la resistencia formada por los dos terminales fijos de manera que podemos variar la resistencia entre los terminales fijos y el cursor.
En reasumen, lo que tenemos es una resistencia dividida en dos y unidas por el cursor de tal manera que la suma de ellas es la resistencia máxima entre los terminales fijos.
En la representación en forma esquemática podemos ver que los terminales fijos son el 1 y 2, mientras que el cursor es el número 3 que se representa con una flecha.
Las entradas analógicas del arduino
Para leer el valor de un potenciómetro, necesitamos una entrada que nos lea una señal variable entre dos estados y ya no tenemos suficiente con las digitales que solo pueden dar dos valores absolutos de «todo o nada» (1 y 0), necesitamos saber también los estados intermedios que hay entre estos estados lógicos de nuestro potenciómetro.
Para ello, el arduino tiene 6 entradas analógicas que nos pueden servir para leer este tipo de señales.
El proceso de lectura de una señal analógica se hace a través de un conversor analógico-digital (ADC). Este componente que lleva incorporado el arduino, nos convierte el nivel de tensión de la entrada en un numero digital. Este número, que nos proporciona el conversor tendrá una precisión determinada que vendrá condicionada por la resolución del mismo.
Para entender que es la precisión, vamos a ver como funciona un conversor ADC por dentro.
Un ADC es un componente que convierte una tensión analógica en una digital codificada de un número de bits determinado. En realidad lo que hace el conversor es comparar esa entrada con una referencia de tensión (normalmente con la de alimentación del circuito) que la tiene dividida en una escala de valores definida por su resolución. Esto quiere decir que cuanta mas resolución tenga el ADC, mas precisa será la medida, pues el conversor tendrá una escala de comparación mejor.
Nuestro arduino tiene un conversor ADC de 10 bits, por lo que para calcular su resolución será 2^10= 1024 bits. Si dividimos la tensión de referencia 5V por este numero, nos dará la precisión de nuestro conversor que es 2.44 mV. Por lo tanto una variación menor que 2.44 mV no será apreciada.
A efectos prácticos y a nivel amateur, tenemos suficiente con esta resolución. Hay que tener en cuenta que a mayor precisión y resolución, los componentes se encarecen en la producción.
La máxima tensión admisible en las entradas analógicas viene dada por la tensión de alimentación, por lo que no podemos medir tensiones superiores a 5V, si no, dañaríamos el arduino.
Montaje del potenciometro con arduino.
Una vez que ya conocemos los componentes a usar, vamos a ver como conectar el potenciómetro con arduino a la entrada analógica.
Si os fijáis en el esquema, hemos conectado el cursor (cable amarillo) a la entrada del conversor A0 y las otras dos patillas a la alimentación de 5V y masa (GND).
Con esta conexión, estamos conectando una tensión variable entre 0-5V a la entrada A0 de nuestro arduino y que podemos graduar moviendo el potenciómetro.
Ahora vamos a ver el código del programa necesario para leer el valor de esa tensión. Para ello abriremos el IDE de arduino y el ejemplo – basics – AnalogReadSerial.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
/* AnalogReadSerial Reads an analog input on pin 0, prints the result to the serial monitor. Graphical representation is available using serial plotter (Tools > Serial Plotter menu) Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground. This example code is in the public domain. */ // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability } |
Una vez cargado el programa en el arduino, abriremos el monitor serial y podremos ver el valor digital de la tensión que estamos introduciendo con el potenciómetro en el pin A0.
Hoy hemos aprendido como conectar un potenciometro con arduino y leer los valores con el conversor DAC. Esto nos abre un gran campo de posibilidades para poder leer distintos sensores e interactuar con ellos, ya que la mayoría de las señales que tendremos que leer de nuestro entorno son analógicas.
Puedes ir a este enlace para conseguir todos los componentes necesarios, arduino y otras herramientas para poder montar este y otros muchos proyectos que publicaré en futuros artículos.
Espero que te haya gustado, si quieres puedes dejar un comentario si tienes una duda y te espero en el próximo artículo donde trataremos el tema de las señales PWM.