CURSO DE ELECTRÓNICA · ARDUINO

PRÁCTICA 3

Teclado 4x4 · GLCD · DHT22 · LEDs

Aprende cómo funciona el proyecto, qué hace cada componente y cómo está programado.

Arduino Mega 25609 LEDsPantalla ST7920
COMPONENTES PRINCIPALES5Elementos del proyecto
MODOS DE CONTROL4Funciones de los LEDs

¿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

Tecla 1 · Encender

Enciende los nueve LEDs a la vez.

Tecla 2 · Apagar

Apaga todos los LEDs.

Tecla 3 · Llenado progresivo

Enciende los LEDs uno a uno hasta completar los nueve.

Tecla 4 · Barrido

Enciende un LED cada vez y desplaza la luz al siguiente.

Esquema general del sistema

⌨️ Teclado 4x4 + Pulsadores
↓ Entradas
ARDUINO MEGA 2560
Procesa las instrucciones
↓ Salidas y comunicaciones
💡 9 LEDs
Iluminación
🖥️ GLCD
Información
🌡️ Sensor DHT22
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

Filas: 23, 25, 27, 29
Columnas: 31, 33, 35, 37

Sensor DHT22

DATA: Pin 41

Pantalla GLCD ST7920

CS / RS: Pin 50
SID / R/W: Pin 51
SCLK / E: Pin 53
Importante: los LEDs deben llevar resistencias limitadoras (por ejemplo, 220 Ω). Los pulsadores están configurados como INPUT, por lo que necesitan resistencias externas de polarización para evitar lecturas inestables. Comprueba también la alimentación y GND común.

Cómo funciona el programa

1. setup()

Se ejecuta una sola vez al encender Arduino. Configura los LEDs, los pulsadores, el sensor y la pantalla.

2. loop()

Es el bucle principal. Se repite continuamente para leer las entradas, medir el ambiente y actualizar los LEDs y la pantalla.

3. leerEntradas()

Comprueba si se ha pulsado una tecla o un botón físico y selecciona el modo correspondiente.

4. cambiarModo()

Guarda el modo elegido, reinicia el paso de la secuencia y actualiza los LEDs.

5. leerSensorDHT()

Lee temperatura y humedad cada 2.000 milisegundos.

6. actualizarAnimacionLeds()

Controla las secuencias 3 y 4 usando millis(), sin detener el resto del programa.

7. refrescarPantallaGLCD()

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.

1 / 5