Cómo añadir y probar la pantalla LCD para tu proyecto de reloj Arduino

  • Categoría de la entrada:Noticias
  1. Ordenadores
  2. Arduino
  3. Cómo añadir y probar la pantalla LCD para tu proyecto de reloj Arduino

Libro Relacionado

Por Brock Craft

Una vez que hayas programado y probado el corazón latiente de tu reloj Arduino, necesitas una forma de mostrar la hora sin usar el monitor serial. Aquí es donde entra en juego la pantalla LCD.

Este es bastante barato y utiliza el controlador Hitachi HD44780 muy común. Estos módulos LCD se reconocen fácilmente porque tienen 16 pines en una sola fila y utilizan lo que se conoce como una interfaz paralela.

Debido a esto, el Arduino utiliza varios pines digitales para hacer que la pantalla funcione. Este proceso es un poco complicado, pero afortunadamente, ya existe una librería de Arduino que hace que sea muy fácil enviar texto a la pantalla sin preocuparse por los comandos de bajo nivel que de otro modo serían necesarios.

Utiliza el modo de 4 bits para mostrar texto, que sólo necesita siete pines digitales Arduino para controlar la pantalla. También necesita energía para la pantalla LCD y para la retroiluminación. Finalmente, usted controla el contraste de la pantalla utilizando el potenciómetro.

Conecte lo siguiente:

  1. Añade tu pantalla LCD y potenciómetro a tu protoboard.
  2. Conecte las clavijas de alimentación y de tierra de la pantalla LCD, que son las clavijas 15 y 16, respectivamente.
  3. Conecte la tierra y la alimentación de la luz de fondo de la pantalla LCD, que son los pines 1 y 2, respectivamente.
  4. Conecta las clavijas de control de tu LCD a las clavijas digitales de tu Arduino.16×2 Pantalla LCD PinArduino Digital Pin1 (a carril GND de la protoboard)2 (a carril +5V de la protoboard)324354657 (sin conexión)8 (sin conexión)9 (sin conexión)9 (sin conexión)10 (sin conexión)111112 (a carril GND de la protoboard)131214 (a pasador central del potenciómetro)15 (a carril +5V de la protoboard)16 (a carril GND de la protoboard)
  5. La clavija central del potenciómetro debe ir a la clavija 14 de la pantalla LCD y las otras dos clavijas del potenciómetro están conectadas a la alimentación y a tierra, en cualquier orden.

Ahora que ha conectado su LCD, ¡es hora de que haga algo interesante! Primero necesita cargar algún código para asegurarse de que la pantalla LCD está funcionando correctamente. Este código es la primera parte de su bosquejo del despertador. Usted se basa en él para añadir todas las demás funciones para su reloj.

Puede copiar el código del reloj de una sola vez, pero considere agregarlo en secciones, como se describe aquí. Esto facilita la resolución de problemas y la prueba del reloj en etapas, a medida que lo construye.

Introduce el siguiente código en el IDE, o descárgalo de la página web complementaria y súbelo a tu Arduino:

Capítulo 7: Reloj Arduino/// Un reloj despertador que utiliza la placa de conexión DS1307 RTC de Adafruit Industries/// y una pantalla LCD paralela 16x2#incluye <Wire.h> // Biblioteca de cables I2C para comunicarse con el DS1307 RTC#incluye "RTClib.h". // Las funciones de fecha y hora para el DS1307 RTC conectado#incluyen <LiquidCrystal.h> // Funciones de visualización para el LCD DisplayRTC_DS1307 rtc; // Crear un reloj en tiempo real llamado rtcLiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Crear un LCD llamado lcdvoid setup () { Wire.begin(); // Habilita la comunicación para el LCD rtc.begin(); // Habilita el RTC lcd.begin(16, 2); // Habilita el LCD lcd.print(" It's Alive!"); // Imprime un mensaje, centrado, al LCD para confirmar su retardo de trabajo(500); // Espera un momento para que podamos leerlo lcd.clear(); // Despeja el LCD}void loop((){}

Cuando se cargue este código, aparecerá el mensaje «It’s Alive» durante medio segundo en la pantalla LCD. Si no ves nada, o si la pantalla tiene caracteres confusos, has conectado algo incorrectamente. Vuelve a la tabla de cableado.

Las primeras tres líneas de este código incluyen las bibliotecas que se utilizan para su reloj. La primera incluye la librería I2C que permite la comunicación con el módulo RTC. I2C, pronunciado «eye-squared cee» o «eye-two-cee», es un enlace de comunicación para hablar entre circuitos integrados, en este caso tu Arduino y el chip DS1307 de Dallas.

También es útil para comunicarse con muchos otros accesorios, como los módulos GPS. Lo útil del I2C es que sólo requiere dos pines, más potencia y tierra. Esta librería hace la comunicación bastante fácil con la mayoría de los dispositivos I2C.

La siguiente biblioteca es la RTCLib. Es una versión de una librería escrita por JeeLab y modificada por Adafruit Industries para comunicarse con el módulo RTC. Se utiliza para obtener el tiempo del módulo RTC y utiliza la biblioteca I2C para negociar esa comunicación.

La última biblioteca es la biblioteca de pantallas LCD, que maneja la comunicación paralela con su pantalla. A diferencia de la biblioteca RTC que has añadido manualmente, está incluida como biblioteca estándar en la distribución de software de Arduino.

Después de incluir las librerías, el código crea dos objetos: un objeto de reloj llamado rtc y un objeto LiquidCrystal llamado lcd. Este objeto tiene parámetros que determinan que pines digitales usa el Arduino para comunicarse con el LCD.

Después de crear esos objetos, la función setup() pone las cosas en marcha. El I2C, RTCLib, y el lcd, todos tienen que estar habilitados, lo cual se hace con la función begin(). La función lcd.begin() toma dos parámetros, el número de columnas y el número de filas, que en su pantalla son 16 y 2. Una vez configurado esto, puede escribir mensajes en la pantalla simplemente usando la función lcd.print():

lcd.print(" It's Alive!");

Hay dos espacios al principio de este texto, que centran el mensaje de 11 caracteres dentro del espacio de 16 caracteres en la línea superior. Normalmente se controla la posición del texto con la función setCursor(), pero no se necesita aquí – una instrucción menos para poner en setup().

Después de un breve retardo para que pueda ver que se ha impreso en la pantalla, la función lcd.clear() borra todo el texto, listo para el bucle principal().