Saltar al contenido
Control Automático Educación

ADC Arduino – Entradas Analógicas

Hola controleros y controleras en el día de hoy vamos a aprender a usar las entradas analógicas (ADC Arduino) usando el comando analogRead, con el cual podremos capturar los valores de diferentes sensores para proyectar sistemas automáticos y de control en nuestros proyectos.

Antes de comenzar, te hago la invitación para que veas nuestro CURSO GRATIS DE ARDUINO.

ADC Arduino – Entradas Analógicas

Todas las señales físicas que captamos con nuestros sentidos, al igual que toda variable que existe en el entorno (temperatura, velocidad, peso, caudal, etc) son señales analógicas, es decir señales que varían con el tiempo, y que pueden tomar diferentes valores a diferencia de la señal digital que solo presenta dos valores.

En la siguiente figura podemos ver una señal analógica, que representa una función sinusoidal junto con una aproximación discreta.

analogo digital
14. Conversión Análogo/Digital (A/D)

El Arduino tiene la capacidad de leer señales analógicas realizando aproximaciones discretas a través de pequeños rectángulos digitales como fue observado en la figura anterior, donde podemos ver fácilmente, que entre más pequeños sean los rectángulos, más parecido será la aproximación digital con relación a la señal analógica.

Que significa adc en arduino?

ADC en Arduino es la abreviación del Conversor Análogo Digital o con sus siglas en Ingles Analog Digital Converter

Que es adc en arduino?

El conversor ADC Arduino es el encargado de la conversión analógica digital empleada en la placa para poder leer todos los sensores disponibles en el mercado para nuestro proyecto de automatización con Arduino.

ADC Arduino

Cuando se trabaja con el ADC Arduino (conversor análogo digital) se debe tener en consideración que solo podemos colocar voltajes de máximo 5v o de 3.3v si trabajamos con un Arduino con este voltaje como el Mini. De lo contrario podremos quemar nuestra placa.

A continuación se muestra una tabla con los voltajes máximos de operación y la máxima resolución de cada placa Arduino. Aquí podrás ver el convertidor análogo digital – ADC de Arduino Mega 2560, UNO, NANO, etc.

Placa

Voltaje Operación

PINES

MAX RESOLUTION

Uno

5 Volts

A0 to A5

10 bits

Mini, Nano

5 Volts

A0 to A7

10 bits

Mega, Mega2560, MegaADK

5 Volts

A0 to A14

10 bits

Micro

5 Volts

A0 to A11*

10 bits

Leonardo

5 Volts

A0 to A11*

10 bits

Zero

3.3 Volts

A0 to A5

12 bits**

Due

3.3 Volts

A0 to A11

12 bits**

MKR Family boards

3.3 Volts

A0 to A6

12 bits**

Como podemos ver en la tabla anterior, la lectura que haga el Arduino en la entrada analoga va a depender de la resolución que tenga. Por ejemplo, si estamos leyendo voltajes en un Arduino UNO, como es de 10 bits en realidad el Arduino va a ver una variación de un entero entre 0 a 1023. ¿Pero por qué?

Un bit es un binario que puede tomar dos valores (0 o 1), o sea que si tiene una resolución de 10 bits indica que (2^10 = 1024), pero como empezamos desde 0, se dice que el valor entero toma valores entre 0 a 1023. Esto quiere decir que si Arduino mide:

  • el máximo voltaje (5v) va a almacenar un valor entero de 1023.
  • Voltaje intermedio (2.5v) va a almacenar un valor entero de 512.
  • Voltaje mínimo (0v) va a almacenar un entero de 0.

A través de lo visto anteriormente podemos mostrar entonces la ecuación de la resolución del ADC Arduino

R=\dfrac{V_{ref}}{2^N-1}

R es la resolución, Vref es el voltaje de referencia de la Placa (por defecto es el voltaje de alimentación de la placa) y N son los bits del convertidor ADC Arduino (análogo digital).

Es decir que para el Arduino UNO la resolución es

R=\dfrac{5v}{2^{10}-1}=\dfrac{5v}{1023}=4,88mV

Eso quiere decir que, en el caso de un arduino Uno, el valor de 0V analógico es expresado en digital como B0000000000 (0) y el valor de 5V analógico es B1111111111 (1023). Por lo tanto, todo valor analógico intermedio es expresado con un valor entre 0 y 1023, es decir, se suma 1 en binario cada 4,883 mV.

En ocasiones, se hace necesario cambiar el voltaje de referencia del Arduino, usando el PIN (AREF) para poder leer sensores que entreguen menos voltaje, pero eso lo veremos con calma en la siguiente entrada, lo cual puede sernos util para realizar un medidor de voltaje o leer cualquier otro sensor.

analogRead() Arduino

Trabajar con las entradas Análogas de Arduino es bastante sencillo, para eso usamos la siguiente sintaxis:

parámetros

(A0 a A5 en la mayoría de las placas, A0 a A6 en placas MKR, A0 a A7 en el Mini y Nano, A0 a A15 en el Mega).

Retornos

La lectura analógica es retornada como una variable entera, que está limita a la resolución del convertidor analógico digital Arduino (0-1023 a 10 bits o 0-4095 a 12 bits).

LM35 Arduino LCD – ADC Arduino

El LM35 es un sensor de temperatura del tipo semiconductor el cual proporciona una salida de voltaje que es proporcional a la temperatura.

El sensor de temperatura LM35 entrega una relación lineal en su salida la cual va incrementando a una razón de 10mV por 1 grado centígrado. Su rango de medición va desde los -55ºC (-550mV) hasta los 150ºC (1500mV) con una precisión de 0.5ºC. una de las ventajas de este integrado es su bajo precio, por lo cual se a tornado en el sensor de temperatura más utilizado con microcontroladores.

El integrado LM35 tiene 3 Pines, donde los extremos son la alimentación y el pin del medio entrega el valor de voltaje a una razón de 10mV/ºC

Sensor de Temperatura Arduino

Para poner en práctica lo aprendido en esta entrada, vamos a construir un sensor de temperatura Arduino. Para esto utilizaremos el LM35 y el display LCD Arduino visto en la entrada anterior. Vamos a usar el siguiente esquema, PERO: quien quiera usar el TINKERCAD para simular el Arduino, notará que el LM35 no existe en esta plataforma, por lo tanto deberá obtar por el TMP36 que es parecido con el LM35 solo que debera restasle 500mV en la programación para que la medida se muestre adecuadamente.

Arduino ADC

Como podemos ver en el circuito de sensor de temperatura lm35 arduino y LCD la idea es mostrar la temperatura en la pantalla realizando la conversión análoga digital del microcontrolador (ADC Arduino UNO).

El programa tendrá que leer el valor de la señal en el PIN A0, que varía de 0 a 1023, donde 0 corresponde a 0Volts y 1023 corresponde a 5Volts. Como sabemos, 1ºC es igual a 10mV. Siendo así, tenemos:

Tension\ en\ A0 = \dfrac{(Valor\ leido\ A0)(5V)}{1023.0}Temperatura = \dfrac{Tension\ A0}{10mV}

IMPORTANTE:

Esta forma de converción, requiere que se ponga el punto decimal al 1023.0 de lo contrario el Arduino hará un cálculo como un ENTERO.

Entonces:

Temperatura = [(Valor leído en A0) * (5/1023.0)] / 10mV

Temperatura (TMP36) = [(Valor leído en A0) * (5/1023.0) – 0.5] / 10mV

Tambien es posible hacerlo de la siguiente forma donde todo el calculo es hecho en forma de FLOTANTE:

temperatura = (float(analogRead(LM35))5/1023)/0.01; //LM35 temperatura(TMP36) = (float(analogRead(LM35))5/1023-0.5)/0.01; //TMP36

Conversor Análogo Digital Arduino – Circuito en Proteus

LM35 Arduino Proteus

Código de Implementación

A continuación pudes descargar el código del ejemplo, para desbloquearlo solo basta compartir esta entrada para que más personas aprendan a programar Arduino.

Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:

👉 Invitar a Sergio a un Café ☕️

Que esten muy bien, nos vemos en la siguiente entrada.

Summary
Que significa adc en arduino?
Article Name
Que significa adc en arduino?
Description
ADC en Arduino es la abreviación del Conversor Análogo Digital o con sus siglas en Ingles Analog Digital Converter
Author
Publisher Name
Control Automático Educación
Publisher Logo

Entradas relacionadas

Deja un comentario

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (2)

Hola buenas noches, tengo un problema con mi display, todo el circuito me funciona bien, pero si miro el display se ve todo negro y no se distinguen las letras, pero si la miro desde cierto angulo (esquina inferior izquierda) se ve super bien lo que muestra, es normal que haga eso? se puede arreglar o es defecto del display?

Responder

Hola David, tienes conectado la luz de fondo del display? pines 15 y 16 a VCC y GND respectivamente. Luego también es necesario conectar el Potenciometro al display que esta en el pin 3 y comenzarlo a variar para modificar el contraste y de esa forma consigas ver las letras. Si has hecho eso y aún asi no funciona, puede que tu display LCD este con defecto.

Responder