Hola a todos, hoy les mostraré cómo crear una «ruleta digital» combinando el supermini microcontrolador ESP32-C3 con el clásico contador de diez años CMOS CD4017.
Cuando se presiona el botón, el ESP32 envía un "pulso de reloj" al IC CD4017, lo que provoca que los LEDs se iluminen de forma cíclica. Al soltar el botón, se activa un efecto de desaceleración realista hasta que se detiene en un resultado aleatorio, y se informa de la posición final mediante un monitor serie o a través de Wi-Fi.
Creanme, este proyecto implica mucho diseño de hardware, codificación en Arduino, PHP, bases de datos, diseño y impresión en 3D, entre otras cosas.
Vídeo:
https:// youtu.be/5jVFR7KSNmgArtículo completo del blog:
https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Requisitos de los componentes
Para este proyecto, necesitamos:
🔗1 x microcontrolador ESP32-C3 Super Mini Plus:
https://s.click.aliexpress.com/e/_ c2zUTvyj
🔗2 contadores decimales CMOS CD4017:
https://s.click.aliexpress.com/e/_ c33qzzRt🔗2 transistores NPN 2N2222:
https://s.click.aliexpress.com/e/_ c4OwNvnZ🔗 Resistores de 3x220 Ω:https://s.click.aliexpress.com/e/_ c41SucJd
🔗1 x 10kΩ resistencia:https:// s.click.aliexpress.com/e/_c41SucJd
🔗1 interruptor de botón:
https://s.click.aliexpress.com/e/_ c3cfuN6J🔗1 x interruptor SPDT:
https://s.click.aliexpress.com/e/_ c4FRHRaX 🔗LED rojo 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 condensador de 10mfd (opcional)
🔗https://s.click.aliexpress.com/e/_ c4okFfef:1 x batería LiPo.
🔗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/_ c4KGEDh5Imprimir la carcasa con una impresora 3D.
Diagrama de circuito.
¡El cableado de este proyecto es realmente muy sencillo!
* Conecte el pin 8 del ESP32 al pin de reinicio del IC #1 (pin 15).
* Conecte el pin 10 del ESP32 al pin de reloj del IC #1 (pin 14).
* Conecte el pin 9 del ESP32 a un interruptor de botón con una resistencia de pull-up.
* Conecte el pin 0 del ESP32 al LED de indicación de Wi-Fi con una resistencia de limitación de corriente.
Para el resto de las conexiones, por favor, consulta el diagrama del circuito que aparece en la pantalla.
Para que las cosas sean más fáciles, he diseñado una PCB personalizada para ti.
Funciones principales
Inicialmente, construí este proyecto de ruleta LED utilizando un IC temporizador 555 y varios contadores de diez años CD4017 CMOS. El temporizador 555 se usa como oscilador de reloj, generando una señal que acciona el contador decimal 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 salida (Q0
Para obtener más información sobre los ICs, consulte mi tutorial número 26 "Módulo generador de pulsos 555 y su funcionamiento", el enlace está en la descripción a continuación.
El principal inconveniente de este diseño inicial es que tengo que procesar el conteo manualmente. Quiero un sistema que agregue los números automáticamente, y que el ganador lo determine el propio sistema. Mi objetivo no es crear una rueda de apuestas, sino un juego de ruleta simple que pueda jugar con mi hijo.
Para lograr este objetivo, el ESP32-C3 Super Mini se ha convertido en la opción perfecta. Es compacto y tiene una función de Wi-Fi integrada.
Así es, no utilicé el temporizador IC 555, sino que cambié a la placa ESP32-C3 para generar un «pulso de reloj» para uno de los IC CD4017. Cuando se presiona el botón, el pulso se vuelve cada vez más rápido. La luz corre alrededor del círculo, creando una sensación de «giro». Al soltar el botón, el giro no se detiene inmediatamente. Por el contrario, aumenta gradualmente
Código
Ahora veamos la lógica que impulsa todo el programa.
Como se mencionó anteriormente, el sistema depende de muchos componentes, código de Arduino, PHP, base de datos MySQL, etc. Mi repositorio de GitHub contiene dos versiones del código: una con servidor y otra sin él. Si no necesitas guardar los resultados en el servidor, puedes simplemente subir el «Código_Sin _wi-fi» a tu placa ESP32.
Pero, en este tutorial, voy a demostrar todas las funciones de la configuración.
Ahora, vamos a revisar el código uno por uno.
En el código de Arduino, necesitas introducir el SSID y la contraseña de la red, y configurar la IP y la URL del servidor para que coincidan con el directorio donde se encuentra el archivo PHP.
No es necesario modificar otras partes del código, a menos que desee agregar nuevas funcionalidades a las ya existentes.
Cuando abres la ruleta, el ESP32 primero intenta conectarse al servidor a través de Wi-Fi. Una vez establecida 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 supera el umbral de parada. Esto produce un efecto de flujo continuo natural antes de que la sec
Una vez que la rueda LED se detenga, el ESP32-C3 enviará la posición ganadora al servidor remoto. Este proceso continuará mientras el jugador siga jugando.
Además del código, también he incluido un archivo «MySQL_DB.sql», que necesita ser importado al servidor MySQL.
Para llevar a cabo esta operación, abra phpMyAdmin, vaya a la pestaña "Importar", haga clic en el botón "Seleccionar archivo" y, a continuación, seleccione el archivo "MySQL_DB.sql". Luego, haga clic en el botón "Ir" para importar la tabla. Para verificar si la importación ha sido exitosa, haga clic en el nombre de la tabla y compruebe que la estructura de la misma se muest
Para configurar el servidor web, necesitamos hacer algunos cambios en el archivo PHP descargado 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 el archivo en el directorio del servidor web.
Para comprobar que todo funciona correctamente, abra el archivo «Player_Results_Display.php» en el navegador web y asegúrese de que la tabla de clasificación se muestre correctamente.
Demostración de placa de pan
Ahora, la lógica del hardware ya está lista y el servidor ha sido configurado, por lo que podemos realizar una prueba rápida en la placa de prototipos para verificar la funcionalidad del sistema.
Vamos a seguir presionando el botón y ver si el monitor serie ha registrado la pulsación. Como podemos ver, el código HTTP 200 se muestra en el monitor serie, lo que indica que la comunicación con el servidor ha sido exitosa. En la página de la tabla de clasificación, podemos confirmar que el servidor ha registrado la pulsación del botón. La página web se actualiza automáticamente cada 5 segundos, mostrando en tiempo real las últimas puntuaciones de
Esta página incluye cuadros de puntuación uno al lado del otro para el «Jugador 1» y el «Jugador 2», que muestran la puntuación en tiempo real de cada jugador, las victorias, las derrotas, los empates y el total de partidas.
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 su 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 parte superior, que se utiliza para alojar todos los LEDs. -La parte inferior, que contiene todos los componentes electrónicos y
-Un pequeño bloque, que incluye un LED de indicador de Wi-Fi azul, un módulo de carga de batería, un interruptor SPDT de encendido/apagado, y orificios para el cable de la antena y el interruptor de botón.
Yo corto el modelo en Bambu Studio y lo imprimo con mi nueva impresora 3D Bambu A1.
Por último, utilicé colores acrílicos para pintar el cuerpo principal del proyecto. El acabado dorado realmente mejoró la apariencia de la impresión. Después de que la pintura se secara, instalé todos los LED en la parte superior y soldé sus cables negativos en forma de "diez pares".
Soldadura
Ahora, comencemos a ensamblar todos los componentes electrónicos. Primero, dediquemos un tiempo a comprobar la calidad de la PCB fabricada. He estado utilizando PCBWay durante casi seis años y me encanta el producto final que ofrecen.
Vamos a soldar primero todos los resistores a la placa, y luego soldaremos todos los transistores.
Porque presto especial atención a mis IC y microcontroladores, nunca los soldo directamente a la placa. Para los IC, siempre uso soportes de IC, y si no hay soportes, utilizo conectores de pines hembra. Esto evita la soldadura directa y facilita el reemplazo. Solo soldo todos los componentes uno por uno a la PCB.
Para alimentar la placa de circuito, necesitamos integrar un módulo de carga y algunos componentes adicionales. Comencé instalando el interruptor SPDT y, a continuación, el LED de indicador de Wi-Fi azul. Luego, pegué súper bien el módulo de carga de batería más pequeño del mundo al bloque y lo fijé con este pequeño bloque blanco. Por último, uní los indicadores de carga siguiendo el diagrama de circuito que
Los dos orificios restantes albergan la antena y los interruptores de botón. Por último, una vez que todos los componentes estén en su lugar, pegaré los bloques de plástico en las ranuras de la base.
Esta es la apariencia de la placa de circuito después de que haya soldado todos los cables que se conectarán a los LED. Para los LED del 1 al 10, se utiliza el GND2 universal; para los LED del 11 al 20, se utiliza el GND1 universal.
Al soldar los LED a la placa, asegúrese de hacerlo en el orden correcto para evitar que el número físico de los LED no coincida con el enviado al servidor. Siga las instrucciones en la pantalla para seguir el orden correcto. Si solda los LED de forma incorrecta por error, puede modificar la matriz en el código de Arduino para adaptarse a los cambios.En mi configuración
Estoy usando baterías recargables de 3,7 V para alimentar todo. Pero, si lo desea, puede soldar un convertidor de voltaje de 220 V a 5 V o un cable USB a los orificios de + 5 V y -VE de la placa.
Una vez que todo esté listo, lo único que quedará por hacer es pegar la parte inferior a la parte superior.
Demostración final
El hardware está listo, ¡es hora de divertirse! Encienda el dispositivo y espere a que el LED azul se encienda. Cuando se encienda, confirmará la conexión Wi-Fi con el servidor. Presione el botón para comenzar el seguimiento LED. Su puntuación se puede ver en cualquier dispositivo conectado a la misma red (PC o dispositivo móvil).
Gracias.
De nuevo, gracias por revisar mi publicación. Espero que te ayude.
Artículo completo del blog: https:// diyfactory007.blogspot.com/2026/05/Roulette.html
Etiketler
Model Kaynağı



















