Hola a todos, hoy voy a mostrarles cómo hice una "Rueda de Ruleta Digital" combinando el microcontrolador ESP32-C3 Super Mini con los contadores de década CMOS clásicos CD4017.
Cuando se presiona el botón, el ESP32 envía "pulsos de reloj" al IC CD4017, lo que hace que los LEDs hagan un ciclo. Al soltar el botón, se desencadena un efecto de desaceleración realista hasta que se detiene en un resultado aleatorio y reporta la posición final usando el Monitor Serie o a través de Wi-Fi.
Confíen en mí, hay mucho que hacer con el diseño de hardware de este proyecto, la codificación de Arduino, PHP, bases de datos, diseño y impresión en 3D, y mucho más.
Vídeo:https://youtu.be/5jVFR7KSNmg
Publicación completa del blog:https://diyfactory007.blogspot.com/2026/05/Roulette.html
Componentes necesarios.
Para este proyecto necesitamos:
🔗 1 x Microcontrolador ESP32-C3 Super Mini Plus:https://s.click.aliexpress.com/e/_c2zUTvyj
🔗 2 x Contadores de Década CMOS CD4017:https://s.click.aliexpress.com/e/_c33qzzRt
🔗 2 x 2N2222 Transistores NPN:https://s.click.aliexpress.com/e/_c4OwNvnZ
🔗 3 x 220Ω Resistores:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1 x Resistor de 10kΩ:https://s.click.aliexpress.com/e/_c41SucJd
🔗 1 x Interruptor de botón pulsador:https://s.click.aliexpress.com/e/_c3cfuN6J
🔗 1 x Interruptor SPDT:https://s.click.aliexpress.com/e/_c4FRHRaX
🔗 LEDs rojos de 18 x 5 mm:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 2 LEDs verdes de 5 mm:https://s.click.aliexpress.com/e/_c2RpNzh9
🔗 1 x LED azul de 3 mm:https://s.click.aliexpress.com/e/_c306Pzbh
🔗 1 x 10mfd Capacitor (opcional)
🔗 1 x Batería LiPo:https://s.click.aliexpress.com/e/_c4okFfef
🔗 1 x Módulo de carga de batería (opcional):https://s.click.aliexpress.com/e/_c3EJLcZh
🔗 1 x Indicador de nivel de batería:https://s.click.aliexpress.com/e/_c4KGEDh5
Y una impresora 3D para imprimir la carcasa.
Diagrama de circuito.
¡El cableado de este proyecto es realmente sencillo!
* Conecte el Pin-8 del ESP32 al pin de Reinicio (Pin 15) del IC#1.
* Conecte el Pin-10 del ESP32 al pin de reloj (Pin 14) del IC#1.
* Conecte el Pin-9 del ESP32 al interruptor de botón con un resistor de pull-up.
* Conecte el Pin-0 del ESP32 al LED del Indicador Wi-Fi con un resistor limitador de corriente.
Para el resto del cableado, echa un vistazo al diagrama del circuito en la pantalla.
Para hacer las cosas aún más fáciles, he diseñado una PCB personalizada para ti.
Funcionalidad básica.
Originalmente, construí este proyecto de ruleta LED utilizando un IC temporizador 555 y un par de contadores de década CMOS CD4017. El temporizador 555 funciona como un oscilador de reloj, generando una señal que impulsa el contador de década 4017. La salida del PIN-3 del IC555 se alimenta al PIN-14 del IC4017. Cada vez que el IC4017 recibe un pulso, incrementa el conteo y activa el siguiente pin de
Para saber más sobre los ICs, por favor echa un vistazo a mi tutorial no. 26 "Módulo Generador de Pulso 555, Cómo Funciona", el enlace está en la descripción a continuación.
El principal inconveniente de este diseño inicial es que tenía que manejar el conteo manualmente. Quería un sistema en el que los números se agregaran automáticamente y el ganador fuera determinado por el propio sistema. Mi objetivo no es construir una rueda de juego, sino más bien un juego de ruleta simple que pueda disfrutar jugando con mi hijo.
Para lograr eso, el ESP32-C3 Super Mini resultó ser la elección perfecta. Es compacto y viene con capacidad Wi-Fi integrada.
Así que, en lugar de usar el IC temporizador 555, cambié a la placa ESP32-C3 para generar "pulsos de reloj" para uno de los IC CD4017. Cuando se presiona el botón, los pulsos se vuelven cada vez más rápidos. La luz corre alrededor del círculo, creando la sensación de un "giro". Cuando se suelta el botón, el giro no se detiene inmediatamente. En cambio, aumenta gradualmente
El Código
Ahora vamos a echar un vistazo a la lógica que impulsa todo el espectáculo.
Como se mencionó anteriormente, el sistema se basa en muchos componentes, código de Arduino, PHP, base de datos MySQL y mucho más. Mi repositorio de GitHub contiene dos versiones del código: una con un servidor y la otra sin él. Si no necesitas que los resultados se guarden en un servidor, puedes simplemente cargar el "Código_Sin_Wi-Fi" en tu placa ESP32.
Sin embargo, para este tutorial, demostraré la funcionalidad completa de la configuración.
Ahora, vamos a revisar los códigos uno por uno.
En el código de Arduino, necesitarás introducir el SSID y la contraseña de tu red, así como configurar la IP y la URL del servidor para que coincidan con el directorio donde residirán tus archivos PHP.
Ningunas otras partes del código necesitan ser modificadas a menos que quieras añadir nuevas características a la funcionalidad existente.
Cuando enciendes la ruleta, el ESP32 primero intenta conectarse al servidor a través de Wi-Fi. Una vez que se establece la conexión, los jugadores pueden comenzar el juego. Al presionar el botón, se acelera la secuencia de LED al reducir el retraso, mientras que al soltar el botón, se ralentiza al aumentar el retraso, hasta que se supera un umbral de parada. Esto crea un efecto de movimiento libre natural antes
Una vez que la rueda LED se detiene, el ESP32-C3 envía la posición ganadora a un servidor remoto. Este proceso continúa mientras los jugadores siguen jugando.
Además del código, he incluido un archivo "MySQL_DB.sql" que necesita ser importado en tu servidor MySQL.
Para hacer esto, abra phpMyAdmin, vaya a la pestaña "Importar", haga clic en el botón "Elegir archivo" y seleccione el archivo "MySQL_DB.sql". Luego, haga clic en el botón "Ir" para importar las tablas. Para verificar que la importación fue exitosa, haga clic en los nombres de las tablas y compruebe que las estructuras de las tablas aparezcan correctamente.
Para configurar el servidor web, necesitamos hacer algunos cambios en los archivos PHP descargados de mi repositorio de GitHub. Abra "Connection.php" y actualice el nombre de host, el nombre de usuario, la contraseña y el nombre de la base de datos en el archivo. Luego, arrastre y suelte los archivos en un directorio de su servidor web.
Para verificar que todo está funcionando correctamente, abra el archivo "Player_Results_Display.php" en un navegador web y confirme que la tabla de clasificación aparece correctamente.
Demostración de placa de prototipo
Ahora que la lógica del hardware está lista y el servidor está configurado, podemos realizar una prueba rápida en una placa de prototipos para verificar la funcionalidad del sistema.
Vamos a seguir adelante y presionar el botón para ver si el monitor serie registra la presión. Como podemos ver, se muestra un código HTTP 200 en el monitor serie, lo que indica una comunicación exitosa con el servidor. En la página de la tabla de clasificación, podemos confirmar que el servidor ha registrado la presión del botón. La página web se actualiza automáticamente cada 5 segundos, mostrando las últimas puntuaciones de ambos
La página incluye tarjetas de puntuación lado a lado para "Jugador 1" y "Jugador 2", que muestran las puntuaciones en vivo, las victorias, las derrotas, los empates y el total de partidos jugados por cada jugador.
Cuando haces clic en el botón "Nuevo juego", la página se reinicia y el sistema actualiza el recuento de victorias, derrotas o empates del jugador en función de la puntuación actual.
Imprimición 3D.
Usando Microsoft 3D Builder, diseñé el modelo 3D de este proyecto.
El diseño consta de tres partes:
- La sección superior, que alberga todos los LEDs.
- La sección inferior, que contiene todos los componentes electrónicos y
- Un pequeño bloque que alberga un LED indicador de Wi-Fi azul, un módulo de carga de batería, un interruptor SPDT de encendido/apagado, además de orificios para el cable de la antena y el interruptor de botón de presión.
Corté el modelo en Bambu Studio y lo imprimí usando mi nueva impresora 3D Bambu A1.
Finalmente, usando colores acrílicos pinté el cuerpo del proyecto. El acabado dorado realmente mejoró la apariencia de la impresión. Después de que la pintura se secara, instalé todos los LEDs en la sección superior y soldé sus patas negativas juntas en "pares de diez".
Soldeo
Ahora, comencemos a ensamblar todos los componentes electrónicos. Primero, tómese un momento para inspeccionar la calidad de la PCB fabricada. He estado utilizando PCBWay durante casi seis años, y me encanta el producto final que entregan.
Comencemos soldando todas las resistencias a la placa, seguido de todos los transistores.
Porque tengo especial cuidado con mis CIs y microcontroladores, nunca los soldo directamente a la placa. Para los CIs, siempre uso una base de CI y, si no hay una base disponible, uso cabeceras de pines hembra. Esto evita la soldadura directa y facilita el reemplazo. Uno por uno, soldé todos los componentes a la PCB.
Para alimentar la placa, necesitamos integrar el módulo de carga y algunos componentes adicionales. Comencé instalando el interruptor SPDT seguido del LED indicador de Wi-Fi azul. Luego, pegué con súper pegamento el módulo de carga de batería más pequeño del mundo al bloque y lo aseguré con este pequeño bloque blanco. Finalmente, pegué con súper pegamento el indicador de carga según el diagrama de circuito en pantalla
Los dos orificios restantes acomodan la antena y el interruptor de botón. Finalmente, una vez que todos los componentes estuvieron en su lugar, pegué el bloque de plástico en la ranura en la parte inferior de la base.
Así es como se ve la placa después de que terminé de soldar todos los cables que se conectarán a los LEDs. Para los LEDs 1 al 10, use GND2 común y para los LEDs 11 al 20, use GND1 común.
Cuando soldes los LEDs a la placa, asegúrate de soldarlos en el orden correcto para evitar que los números físicos de los LEDs no coincidan con lo que el código envía al servidor. Sigue las instrucciones en pantalla para el orden correcto. Si accidentalmente soldas los LEDs incorrectamente, puedes modificar la matriz en el código de Arduino para acomodar el cambio.
En mi configuración, estoy alimentando todo con una batería recargable de 3,7V. Sin embargo, si lo prefieres, puedes soldar un convertidor de reducción de voltaje de 220V a 5V o un cable USB a los orificios de +5V y -VE en la placa.
Una vez que todo esté en su lugar, todo lo que queda es pegar la parte inferior a la parte superior.
Demo final
Con el hardware listo, ¡es hora de divertirse! Encienda la unidad y espere a que el LED azul se ilumine. Cuando se ilumine, confirmará el enlace Wi-Fi con el servidor. Presione el botón para comenzar el juego de luces del LED. Su puntuación se puede ver en cualquier dispositivo (PC o móvil) conectado a la misma red.
Gracias.
De nuevo, gracias por revisar mi publicación. Espero que te ayude.
Publicación completa del blog:https://diyfactory007.blogspot.com/2026/05/Roulette.html
标签
模型来源



















