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 33/55 - Dados digitales utilizando el kit de aprendizaje IoT ESP32 de SunFounder
En este tutorial, crearemos un dado digital utilizando una pantalla de siete segmentos y el ESP32 del kit de aprendizaje IoT de SunFounder. El proyecto te permitirá lanzar un dado virtual, generando números del 1 al 6 al presionar un botón. Esta es una forma fantástica de explorar las capacidades del ESP32 mientras aprendes sobre la interfaz con pantallas y botones. Para mayor claridad, asegúrate de revisar el video (en el video a las 0:00).
ESP32-33_dados-digitales-principal
Hardware Explicado
Los componentes principales de este proyecto incluyen el microcontrolador ESP32, un registro de desplazamiento 74HC595, una pantalla de siete segmentos y un botón pulsador. El ESP32 es un microcontrolador potente que integra Wi-Fi y Bluetooth, lo que lo hace adecuado para aplicaciones de IoT. El registro de desplazamiento 74HC595 nos permite controlar la pantalla de siete segmentos utilizando menos pines que conectando directamente cada segmento.
El display de siete segmentos muestra números y se controla enviando datos desde el registro de desplazamiento. El botón pulsador se utiliza para activar la tirada de dados, generando un número aleatorio que se mostrará. Cuando se presiona, el botón se conecta al pin 13 en el ESP32, que tiene una resistencia pull-up interna para mantenerlo en un estado alto cuando no está presionado.
Detalles de la hoja de datos
Fabricante
Texas Instruments
Número de pieza
74HC595
Voltaje de lógica/entrada y salida
2 V a 6 V
Tensión de alimentación
4.5 V a 5.5 V
Corriente de salida (por canal)
6 mA máx
Corriente de pico (por canal)
35 mA máx
Orientación sobre la frecuencia PWM
No aplicable
Umbrales de lógica de entrada
VIH≥ 2 V, VIL≤ 0.8 V
Caída de tensión / RDS(on)saturación
0.5 V máx
Límites térmicos
150 °C
Paquete
DIP-16
Notas / variantes
Comúnmente utilizado en pantallas digitales
Asegúrese de los niveles de voltaje adecuados (4.5 V a 5.5 V) para un funcionamiento confiable.
Limite la corriente de salida para evitar dañar el registro de desplazamiento.
Utiliza capacitores de desacoplamiento cerca de los pines de alimentación para estabilizar el voltaje.
Conecta correctamente el display de siete segmentos para evitar la mala representación de los números.
Verifique el cableado en busca de conexiones sueltas que puedan provocar un comportamiento inesperado.
Instrucciones de cableado
ESP32-33_digital-dice-wiring
Para cablear los dados digitales, comienza configurando las conexiones de energía. Conecta la tierra (línea azul) en tu placa de pruebas al pin de tierra en el ESP32 y asegúrate de que todos los puntos de tierra estén interconectados. A continuación, conecta un pin de 3.3V del ESP32 a la pista de energía (línea roja) en la placa de pruebas.
ESP32-33_esquema-de-dados-digitales
Para el registro de desplazamiento 74HC595, asegúrate de que el pin 1 esté conectado al riel de 3.3V y el pin 8 a tierra. Conecta el pin de salida de datos (DS) al pin 25 del ESP32, el pin de reloj de desplazamiento (SHCP) al pin 26, y el pin de reloj de almacenamiento (STCP) al pin 27. El botón de presión debe estar conectado entre el pin 13 del ESP32 y tierra, permitiendo que baje el pin cuando se presiona.
Ejemplos de código y guía paso a paso
En el código, primero definimos los pines utilizados para el registro de desplazamiento y el botón. El pin del botón se define comobuttonPiny está conectado al pin 13 en el ESP32. El array de datosdatArraycontiene las representaciones binarias de los números 0-9 para el display de siete segmentos.
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
const int buttonPin = 13;
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
En elsetup()función, configuramos el pin del botón en modo de entrada y los pines del registro de desplazamiento en modo de salida. Esto prepara los pines para leer la entrada del botón y para enviar datos a la pantalla.
La lógica principal del programa se encuentra en elloop()función. Verifica si se presiona el botón, genera un número aleatorio y llama a lashow_number()función para mostrar el número en el display de siete segmentos.
Elshow_number()la función envía el valor apropiado del array de datos al registro de desplazamiento, que luego controla los segmentos de la pantalla para mostrar el número generado. Esta función es crucial para la retroalimentación visual cuando se presiona el botón.
Pantalla LED 74HC595: Siete segmentos explicados
Demostración / Qué Esperar
Cuando la configuración esté completa y el código esté cargado, presionar el botón generará un número aleatorio entre 1 y 6, que se mostrará en la pantalla de siete segmentos. Si todo está conectado correctamente, la pantalla debería mostrar un número cada vez que se presione el botón. Ten cuidado con las entradas flotantes; asegúrate de que el botón esté correctamente conectado a tierra para evitar un comportamiento errático (en el video a las 1:30).
Marcas de tiempo del video
00:00 Comienzo
1:48 Introducción al proyecto
3:40 Explicación del cableado para dados digitales
Código Arduino para dados digitales explicado
19:19 Seleccionando la placa ESP32 y el puerto COM en el Arduino IDE
21:00 Demostración de Dados Digitales
22:15 Corrigiendo el código de Arduino
Imágenes
74HC595 Pantalla LED: Explicación de siete segmentos
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
74HC595 Pantalla LED: Explicación de siete segmentos
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
834-ESP32 Tutorial 33/55- Arduino code for digital dice