Arduino analogRead


Lee el valor del pin analógico especificado. Esto significa que mapeará voltajes de entrada entre 0 y el voltaje de operación (5V o 3.3V).

oscar Escrito por oscar 23 February 2019 10430 0

Acerca del proyecto

En este post vamos a conocer y explicar el funcionamiento del ADC en arduino, veremos un breve repaso de como se hace la conversión de análogo a digital y la instrucción en lenguaje arduino para obtener el valor digital de la señal análoga.

Conocimiento previo

Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.

Proyecto Descripción
Conversor análogo a digital Este post proporciona una breve panorámica del procesamiento digital de la señal, donde vamos a centrarnos principalmente en las características del sistema ideal y también mencionaremos algunos métodos de conversion A/D.

Resumen de lectura ADC

Cuando se lee un voltaje analógico desde uno de los pines del arruino, el converso de análogo a digital (ADC) realiza una conversión de ese voltaje en un número que podamos manipular con el programa. El voltaje que soporta el arduino es de 0 a 5V y su valor de conversión va a hacer entre 0 a 1023 a 10bit de resolución.

Si realizamos la gráfica con los datos de voltaje y el valor de conversión, podemos observar que nos genera una gráfica lineal, en donde los resultados son proporcionales, observemos la siguiente imagen.

Voltaje vs valor conversión
Voltaje vs valor conversión

Si deseamos obtener el valor del voltaje de la entrada analógica teniendo en cuenta los parámetros mencionados en el párrafo anterior, podemos multiplicar el valor leído del pin analógico por 5 voltios que es lo máximo que puede llegar y dividirlo por 1023 que es el mas grande dentro del rango de 10 bits.

V =Valor ADC * 51023

De este modo, tenemos relacionada el voltaje de salida del sensor con los valores digitales de Arduino.

analogread()

Lee el valor del pin analógico especificado[1]. Arduino contienen un convertidor de analógico a digital multicanal de 10 bits. Esto significa que mapeará voltajes de entrada entre 0 y el voltaje de operación (5V o 3.3V) en valores enteros entre 0 y 1023.

El Arduino UNO, por ejemplo, esto produce una resolución entre lecturas de: 5 voltios / 1024 unidades o , 0.0049 voltios (4.9 mV) por unidad.

El rango de entrada se puede cambiar usando analogReference(), mientras que la resolución se puede cambiar usando analogReadResolution().

En las tarjetas basadas en ATmega (UNO, Nano, Mini, Mega), se tarda unos 100 microsegundos (0,0001 s) en leer una entrada analógica, por lo que la velocidad de lectura máxima es de aproximadamente 10,000 veces por segundo.

Placa Voltaje de funcionamiento Pines utilizables Resolución máxima
Uno 5 voltios A0 a A5 10 bits
Mini nano 5 voltios A0 a A7 10 bits
Mega, Mega2560, MegaADK 5 voltios A0 a A14 10 bits
Micro 5 voltios A0 a A11 * 10 bits
Leonardo 5 voltios A0 a A11 * 10 bits
Cero 3.3 voltios A0 a A5 12 bits **
Debido 3.3 voltios A0 a A11 12 bits **
MKR Family Boards 3.3 voltios A0 a A6 12 bits **

* A0 a A5 están etiquetados en la placa, A6 a A11 están disponibles respectivamente en los pines 4, 6, 8, 9, 10 y 12

** La resolución predeterminada de analogRead() para estas tablas es de 10 bits, por compatibilidad. Debe usar analogReadResolution() para cambiarlo a 12 bits.

Sintaxis

int value = analogRead(pin);

Parámetros

  • pin: el nombre del pin de entrada analógica para leer (A0 a A5 en la mayoría de las tarjetas, A0 a A6 en las tarjetas MKR, A0 a A7 en la Mini y Nano, A0 a A15 en la Mega).

Retorna

La lectura analógica en el pin (int). Aunque está limitado a la resolución del convertidor analógico a digital (0-1023 para 10 bits o 0-4095 para 12 bits).

Referencias

[1] arduino, https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Consultado febrero 2019


Comentario

Debe aceptar antes de enviar