analogRead Arduino: usos y ejemplos.

En primer lugar, la función analogRead, similar a la función digitalRead, permite leer valores en un pin de entrada de una tarjeta Arduino, sólo que esta vez las señales son análogas.

Una señal analógica puede tomar cualquier valor en un determinado intervalo de voltaje positivo y negativo. Por ejemplo, una señal análoga entre 0V y 5V puede valer 1.5V, 3.67V, 4.99V, o cualquier otro valor con decimales que se encuentre dentro del rango, contrario a una señal digital, la cual puede tener dos valores, 0V o 5V.

Debido a esto, las entradas y salidas analógicas, por regla general tienden a ser más caras, lentas y escasas que las digitales. En Arduino UNO contamos con 6, y en el Arduino MEGA existen 16, con las que utilizaremos las funciones analogRead y analogWrite

Entonces, a diferencia de las entradas o salidas (I/Os) digitales, que se atribuyen en el código los valores HIGH para encendido (5V) y LOW para apagado (0V), una entrada analógica entrega una medición codificada en forma de un valor digital con un número N de bits, tal como hace un ADC.

Toma al rededor de 100 micro segundos (0.0001s) leer una entrada análoga, así que la frecuencia máxima de muestreo es al rededor de 10,000 veces por segundo.

SINTAXIS

analogRead(pin);

PARÁMETROS DE ENTRADA

pin: refiere al número de pin que se va a utilizar (A0 – A5), que se encuentran señalizados como ANALOG IN

PARÁMETROS DE SALIDA

int(0 a 1023) (un número entero)

Si la entrada análoga no está conectada a nada, el valor entregado por analogRead() fluctuará basado en un número de factores, tales como otras entradas análogas o qué tan cerca se encuentren sus manos de la tarjeta.

Pines y argumento para analogRead

FUNCIONES COMPLEMENTARIAS

pinMode()
analogWrite()
analogReference()

Cabe señalar que si estamos midiendo una señal inferior al límite de Vcc (menos de 5V) estaremos perdiendo proporcionalmente precisión relativa. Esto a consecuencia de no aprovechar la totalidad del rango.

Como contra medida, Arduino nos permite cambiar la tensión tomada como referencia por el ADC al usar analogRead. Se utiliza la función analogReference(valor), y sus valores posibles son:

  • DEFAULT: El valor que maneja Arduino por defecto, puede ser 5Vcc o 3.3Vcc según el modelo y la entrada.
  • INTERNAL: Que corresponde a 1.1V (en Atmega 168 y 328).
  • EXTERNAL: Que se aplica de forma externa en el pin AREF, va de 0V a 5V solamente.
  • INTERNAL1V1 y INTERNAL2V56: correspondientes a 1.1V y 2.56V (sólo en Mega)10

Es importante no usar menos de 0V o más de 5V cuando se utiliza un voltaje externo, ya que puedes dañar los pines análogos.

APLICACIONES

La función analogRead del lenguaje de Arduino se utiliza para recibir valores de una entrada análoga, a voltajes variables entre 0V y 5V. Una salida análoga puede ser un sensor de algún tipo, un potenciómetro u alguna otra señal.

EJEMPLO: Leer una señal análoga en el puerto serial mediante analogRead.

Por último, este programa puede servirte para registrar medidas de algún sensor de distancia o temperatura de la misma manera. Tras recibir un dato de la entrada análoga, lo imprime en el puerto serial. Lo haremos con un potenciómetro para variar manualmente el voltaje. Se conecta la terminal del centro al pin A0 y las de los extremos a 5Vcc y GND. La función digitalRead tomará una lectura cada 200 milisegundos y la imprimirá en el puerto serial.

Finalmente, recuerda que en la página oficial de Arduino podrás encontrar una gran variedad de ejemplos, así como algunos en el mismo IDE.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *