En este tutorial estamos introduciendo el concepto de ADC (Conversión analógica a digital) en ARDUINO UNO. La placa Arduino tiene seis canales ADC, como se muestra en la siguiente figura. Entre ellos, uno o todos pueden usarse como entradas para voltaje analógico. El Arduino Uno ADC tiene una resolución de 10 bits (por lo que los valores enteros de (0- (2 ^ 10) 1023)). Esto significa que mapeará voltajes de entrada entre 0 y 5 voltios en valores enteros entre 0 y 1023. Entonces, para cada (5/1024 = 4.9mV) por unidad.
En todo esto vamos a conectar un potenciómetro o potenciómetro al canal 'A0', y vamos a mostrar el resultado del ADC en una pantalla simple. Las pantallas simples son unidades de visualización de 16x1 y 16x2. La unidad de visualización de 16x1 tendrá 16 caracteres y estará en una línea. El 16x2 tendrá 32 caracteres en total 16 en 1ª línea y otros 16 en 2ª línea. Aquí uno debe entender que en cada carácter hay 5x10 = 50 píxeles, por lo que para mostrar un carácter, los 50 píxeles deben funcionar juntos, pero no tenemos que preocuparnos por eso porque hay otro controlador (HD44780) en la unidad de visualización que hace el trabajo de controlar los píxeles (puede verlo en la unidad LCD, es el ojo negro en la parte posterior).
Componentes requeridos
Hardware: ARDUINO UNO, fuente de alimentación (5v), JHD_162ALCD (16x2LCD), condensador de 100uF, potenciómetro o potenciómetro de 100KΩ, condensador de 100nF.
Software: arduino IDE (Arduino todas las noches)
Diagrama de circuito y explicación
En LCD de 16x2 hay 16 pines en total si hay luz de fondo, si no hay luz de fondo, habrá 14 pines. Uno puede encender o dejar los pines de luz de fondo. Ahora en los 14 pines hay 8 pines de datos (7-14 o D0-D7), 2 clavijas de alimentación de alimentación (1 y 2 o VSS y VDD o GND y + 5V), 3 rd PIN para el control de contraste (Vee-controla cómo de espesor los caracteres deben estar mostrado) y 3 pines de control (RS & RW & E).
En el circuito, puede observar que solo he tomado dos pines de control, el bit de contraste y READ / WRITE no se usan con frecuencia, por lo que pueden cortocircuitarse a tierra. Esto coloca a la pantalla LCD en el modo de mayor contraste y lectura. Solo necesitamos controlar los pines ENABLE y RS para enviar caracteres y datos en consecuencia.
Las conexiones que se realizan para LCD se dan a continuación:
PIN1 o VSS a tierra
PIN2 o VDD o VCC a + 5v de potencia
PIN3 o VEE a tierra (ofrece el mejor contraste máximo para un principiante)
PIN4 o RS (Selección de registro) a PIN8 de ARDUINO UNO
PIN5 o RW (lectura / escritura) a tierra (pone la pantalla LCD en modo lectura facilita la comunicación para el usuario)
PIN6 o E (Activar) a PIN9 de ARDUINO UNO
PIN11 o D4 a PIN10 de ARDUINO UNO
PIN12 o D5 a PIN11 de ARDUINO UNO
PIN13 o D6 a PIN12 de ARDUINO UNO
PIN14 o D7 a PIN13 de ARDUINO UNO
El ARDUINO IDE permite al usuario utilizar LCD en modo de 4 bits. Este tipo de comunicación permite al usuario disminuir el uso de pines en ARDUINO, a diferencia de otros, el ARDUINO no necesita ser programado por separado para usarlo en el modo 4 porque por defecto el ARDUINO está configurado para comunicarse en el modo 4 bits. En el circuito se puede ver que usamos comunicación de 4 bits (D4-D7).
Entonces, a partir de la mera observación de la tabla anterior, estamos conectando 6 pines de LCD al controlador en el que 4 pines son pines de datos y 2 pines para control.
La figura anterior muestra el diagrama de circuito del ADC de ARDUINO UNO.
Trabajando
Para conectar una pantalla LCD al ARDUINO UNO, necesitamos saber algunas cosas.
|
En primer lugar, los canales UNO ADC tienen un valor de referencia predeterminado de 5V. Esto significa que podemos dar un voltaje de entrada máximo de 5 V para la conversión de ADC en cualquier canal de entrada. Dado que algunos sensores proporcionan voltajes de 0-2,5 V, con una referencia de 5 V obtenemos menor precisión, por lo que tenemos una instrucción que nos permite cambiar este valor de referencia. Entonces, para cambiar el valor de referencia tenemos ("analogReference ();")
De forma predeterminada, obtenemos la resolución ADC máxima de la placa que es de 10 bits, esta resolución se puede cambiar usando la instrucción ("analogReadResolution (bits);"). Este cambio de resolución puede resultar útil en algunos casos.
Ahora, si las condiciones anteriores están configuradas por defecto, podemos leer el valor del ADC del canal '0' llamando directamente a la función "analogRead (pin);", aquí "pin" representa el pin donde conectamos la señal analógica, en este caso sería ser "A0". El valor de ADC se puede tomar en un número entero como “int ADCVALUE = analogRead (A0); ”, Por esta instrucción el valor después de ADC se almacena en el entero“ ADCVALUE ”.
AHORA hablemos un poco sobre LCD 16x2. Primero necesitamos habilitar el archivo de encabezado ('#include
En segundo lugar, necesitamos decirle a la placa qué tipo de LCD estamos usando aquí. Dado que tenemos tantos tipos diferentes de LCD (como 20x4, 16x2, 16x1, etc.). Aquí vamos a conectar una pantalla LCD de 16x2 a la UNO para que obtengamos 'lcd.begin (16, 2);'. Para 16x1 obtenemos 'lcd.begin (16, 1);'.
En esta instrucción vamos a decirle a la placa dónde conectamos los pines. Los pines que están conectados se deben representar en orden como “RS, En, D4, D5, D6, D7”. Estos pines deben representarse correctamente. Dado que conectamos RS a PIN0 y así sucesivamente como se muestra en el diagrama de circuito, representamos el número de pin a la placa como “LiquidCrystal lcd (0, 1, 8, 9, 10, 11);”.
Después de lo anterior, todo lo que queda es enviar datos, los datos que deben mostrarse en la pantalla LCD deben escribirse como “cd.print (" ¡hola, mundo! ");”. Con este comando, la pantalla LCD muestra "¡hola, mundo!".
Como puede ver, no debemos preocuparnos por nada más, solo tenemos que inicializar y el UNO estará listo para mostrar datos. No tenemos que escribir un ciclo de programa para enviar los datos BYTE por BYTE aquí.
El uso de ADC de Arduino Uno se explica paso a paso en el programa C que se muestra a continuación.