Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
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.
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.
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-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment