Tutorial ESP32 10/55 - Contador digital usando Display de Siete Segmentos 74HC595 - Kit de Aprendizaje IoT ESP32

Tutorial ESP32 10/55 - Contador digital usando Display de Siete Segmentos 74HC595 - Kit de Aprendizaje IoT ESP32

En este tutorial, crearemos un contador digital utilizando una pantalla de siete segmentos controlada por el microcontrolador ESP32. El contador incrementará de 0 a 9 y luego decrecerá de nuevo a 0, proporcionando una visualización clara del proceso de conteo. También exploraremos cómo encender segmentos individuales y mostrar letras en la pantalla de siete segmentos.

ESP32_Animte7Segment-segmentos

Este proyecto utiliza un registro de desplazamiento 74HC595 para controlar la pantalla, lo que nos permite gestionar eficientemente los segmentos sin usar demasiados pines GPIO en el ESP32. Al enviar valores binarios al registro de desplazamiento, podemos iluminar los segmentos correspondientes para representar números y letras. Para una comprensión más profunda del proceso, puedes consultar el video (en el video a las 03:15).

ESP32_Animte7Segment-letras

Hardware Explicado

Los componentes principales de este proyecto incluyen el microcontrolador ESP32, un registro de desplazamiento 74HC595 y una pantalla de siete segmentos. El ESP32 es un microcontrolador potente con capacidades integradas de Wi-Fi y Bluetooth, lo que lo hace adecuado para proyectos de IoT. El 74HC595 es un registro de desplazamiento que nos permite controlar múltiples salidas utilizando solo unos pocos pines de entrada. Funciona tomando datos en serie y convirtiéndolos en salida paralela, lo cual es perfecto para controlar una pantalla de siete segmentos.

El display de siete segmentos consiste en siete LEDs individuales dispuestos en un patrón de figura ocho. Cada segmento se puede encender o apagar enviando el valor binario apropiado al registro de desplazamiento. Por ejemplo, para mostrar el número 0, todos los segmentos excepto el del medio (G) deben estar iluminados.

ESP32_Animte7Segment-contador-arriba-abajo
ESP32_Animte7Segment-contador-1

Detalles de la hoja de datos

Fabricante Texas Instruments
Número de parte 74HC595
Voltaje de lógica/IO 2 V a 6 V
Tensión de alimentación 2 V a 6 V
corriente de salida (por canal) 6 mA
Corriente de pico (por canal) 35 mA
Orientación sobre la frecuencia PWM Hasta 1 kHz
Umbrales de lógica de entrada 0.3 VCCa 0.7 VCC
Caída de tensión / RDS(on)/ saturación 0,2 V máx
Límites térmicos 125 °C
Paquete DIP-16
Notas / variantes Disponible en varios paquetes

  • Asegúrese de un suministro de voltaje adecuado (2 V a 6 V).
  • Limitar la corriente de salida para evitar el sobrecalentamiento.
  • Utiliza resistencias separadas para cada segmento para un brillo óptimo.
  • Ten cuidado con el cableado para evitar cortocircuitos y conexiones incorrectas.
  • Sigue el pinout cuidadosamente para evitar malconfiguración.

Instrucciones de cableado

ESP32-10-seven-segment-wiring

Comienza configurando tu protoboard. Conecta la línea de tierra (línea azul) y la línea de alimentación (línea roja). La tierra debe conectarse a la línea azul en un lado del protoboard, mientras que la alimentación debe conectarse a la línea roja en el lado opuesto. Usa un cable negro para conectar la tierra del ESP32 a la línea de tierra y un cable rojo para conectar el pin de 3.3V del ESP32 a la línea de alimentación.

A continuación, inserte el registro de desplazamiento 74HC595 en la placa de pruebas, asegurándose de que la muesca esté orientada correctamente. Conecte el pin 11 (DS) al pin 25 del ESP32, el pin 12 (SH_CP) al pin 26 y el pin 14 (ST_CP) al pin 27. Conecte el suelo (pin 8) del registro de desplazamiento a la línea de tierra y el pin 10 (MR) a la línea de alimentación para activar.

Para el display de siete segmentos, conecta los pines correspondientes a los segmentos (a-g) a los pines de salida del registro de desplazamiento. Usa una resistencia (220 ohmios) en serie para cada segmento para limitar la corriente. Asegúrate de tener conexiones adecuadas para el pin común, que puede ser unánodo o cátodo, según el tipo de display.

Ejemplos de Código y Tutorial

En la función de configuración, comenzamos definiendo los pines conectados al registro de desplazamiento como salidas. Esto asegura que nuestro ESP32 pueda controlar los datos que se envían a la pantalla.

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

Aquí, definimosSTcp,SHcp, yDScomo los pines conectados a ST_CP, SH_CP y DS del registro de desplazamiento, respectivamente. Configurar estos pines como salidas nos permite controlar el registro de desplazamiento.

El bucle principal del programa cuenta de 0 a 9, enviando los valores correspondientes a la pantalla utilizando elshiftOutfunción.

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
}

Este bucle incrementa elnumvariable, enviando el valor correspondiente de ladatArraya la pantalla cada segundo. ElshiftOutla función transmite los datos al registro de desplazamiento, que luego enciende los segmentos apropiados.

Demostración / Qué Esperar

Una vez que el cableado esté completo y el código esté cargado, deberías ver el display de siete segmentos contando de 0 a 9, haciendo una breve pausa antes de contar de regreso a 0. Cada número se mostrará durante un segundo. Si deseas acelerar el conteo, puedes ajustar la demora en el bucle (en el video a las 15:30).

Al manipular los segmentos de forma individual, recuerda enviar los valores binarios correctos para mostrar letras o segmentos específicos. Si la pantalla parece tenue, considera añadir resistencias individuales para cada segmento para asegurar un brillo constante en toda la pantalla.

Marcas de tiempo del video

  • 00:00 Comienzo
  • 1:53 Introducción a los siete segmentos
  • 4:38 Explicación del cableado
  • 13:15 Código de Arduino-1
  • 17:01 Seleccionando el puerto COM y la placa ESP32
  • 18:43 Demostración-1
  • 20:13 Mostrando un solo dígito
  • 21:38 Contador ascendente y descendente
  • 23:07 Activando y desactivando cada segmento
  • 24:53 Mostrando A, B, C, D, E y F

Imágenes

ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
Idioma: C++
¡Copiado!

Recursos y referencias

Archivos📁

No hay archivos disponibles.