¿De qué trata esta práctica?
Es un sistema que permite controlar nueve LEDs mediante un teclado matricial o cuatro pulsadores. Además, mide la temperatura y la humedad del ambiente con un sensor DHT22 y muestra los resultados en una pantalla gráfica GLCD.
Las cuatro opciones de control
Enciende los nueve LEDs a la vez.
Apaga todos los LEDs.
Enciende los LEDs uno a uno hasta completar los nueve.
Enciende un LED cada vez y desplaza la luz al siguiente.
Esquema general del sistema
Procesa las instrucciones
Iluminación
Información
Temperatura y humedad
1. Arduino Mega 2560
Es el cerebro del circuito. Recibe información de los pulsadores y el teclado, procesa las órdenes y controla los LEDs, el sensor y la pantalla.
2. Los nueve LEDs
Son pequeñas luces que se encienden y apagan según la orden recibida. Cada LED tiene asignado un pin digital y necesita una resistencia limitadora de corriente.
3. Teclado matricial 4x4
Tiene 16 teclas organizadas en cuatro filas y cuatro columnas. Permite introducir órdenes al Arduino. En este programa se utilizan las teclas 1, 2, 3 y 4.
4. Sensor DHT22
Es un sensor que mide la temperatura en grados Celsius y la humedad relativa en porcentaje. El programa realiza una lectura cada dos segundos.
5. Pantalla GLCD ST7920
Es una pantalla gráfica de 128 × 64 píxeles. Muestra la temperatura, la humedad y el número del modo que está funcionando.
6. Pulsadores físicos
Son cuatro botones que realizan las mismas funciones que las teclas 1, 2, 3 y 4 del teclado matricial.
Conexiones de los componentes
LEDs
Pulsadores
Teclado matricial
Sensor DHT22
Pantalla GLCD ST7920
Cómo funciona el programa
Se ejecuta una sola vez al encender Arduino. Configura los LEDs, los pulsadores, el sensor y la pantalla.
Es el bucle principal. Se repite continuamente para leer las entradas, medir el ambiente y actualizar los LEDs y la pantalla.
Comprueba si se ha pulsado una tecla o un botón físico y selecciona el modo correspondiente.
Guarda el modo elegido, reinicia el paso de la secuencia y actualiza los LEDs.
Lee temperatura y humedad cada 2.000 milisegundos.
Controla las secuencias 3 y 4 usando millis(), sin detener el resto del programa.
Dibuja los valores del sensor y el número de secuencia en la pantalla.
Prueba las secuencias de LEDs
Selecciona un modo y pulsa «Siguiente paso» para simular la secuencia.
Selecciona un modo.
¿Qué es millis()?
Es una función que indica cuántos milisegundos han pasado desde que Arduino comenzó a funcionar. Se utiliza para controlar el tiempo sin parar el programa con delay().
Ejemplo: 200 ms = 0,2 segundos.¿Qué son las librerías?
Son archivos que añaden funciones ya preparadas para controlar componentes.
- Keypad: controla el teclado.
- DHT: permite leer el sensor.
- U8g2: controla la pantalla GLCD.
Código Arduino completo
Este es el programa de la práctica, organizado para que puedas consultarlo y copiarlo.
Antes de compilar
Instala las librerías Keypad, DHT sensor library de Adafruit y U8g2 desde el Gestor de bibliotecas del Arduino IDE. También puede ser necesaria la librería Adafruit Unified Sensor.