Nota
¡Hola! ¡Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi & Arduino & ESP32 en Facebook! Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 junto a otros apasionados.
¿Por qué unirse?
Soporte de expertos: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Avances exclusivos: Accede anticipadamente a anuncios de nuevos productos y adelantos exclusivos.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.
Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo!
Dado Digital
Este código está diseñado para simular el lanzamiento de un dado utilizando un registro de desplazamiento 74HC595 y una pantalla digital de 7 segmentos. La simulación del lanzamiento del dado se activa agitando directamente el interruptor de inclinación. Al hacer esta acción, la pantalla digital cicla a través de números aleatorios entre 1 y 6, simulando el lanzamiento de un dado. Después de un breve intervalo, la pantalla se detiene mostrando un número aleatorio que representa el resultado del lanzamiento del dado.
Componentes necesarios
En este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
---|---|---|
Elite Explorer Kit |
300+ |
También puedes comprarlos por separado desde los enlaces a continuación.
INTRODUCCIÓN DEL COMPONENTE |
ENLACE DE COMPRA |
---|---|
- |
|
- |
|
Cableado
Esquema
Código
Nota
Puedes abrir el archivo
05_digital_dice.ino
bajo la rutaelite-explorer-kit-main\fun_project\05_digital_dice
directamente.O copia este código en Arduino IDE.
¿Cómo funciona?
Aquí hay una explicación detallada del código:
Inicialización de variables:
dataPin
,clockPin
ylatchPin
: Pines para el 74HC595.buttonPin
: El pin digital donde está conectado el botón.numbers[]
: Un array para almacenar la codificación que representa los números del 1 al 6 en un tubo digital de ánodo común.Variables volátiles:
rolling
: Esta es una variable volátil que indica si el dado está rodando actualmente. Se declara como volátil ya que se accede tanto en la rutina de servicio de interrupción como en el programa principal.setup()
:Configura los modos para los pines relevantes. Configura el modo de entrada para el botón utilizando la resistencia de pull-up interna. Asigna una interrupción al botón, que llama a la función
rollDice
cuando cambia el estado del botón.loop()
:Verifica si
rolling
es verdadero. Si lo es, continúa mostrando un número aleatorio entre 1 y 6. Si el botón ha sido presionado durante más de 500 milisegundos, el rodado se detiene.rollDice()
:Esta es la rutina de servicio de interrupción para el botón. Verifica si el botón está presionado (nivel bajo). Si lo está, se registra el tiempo actual y comienza el rodado.
displayNumber()
:Esta función muestra un número en el tubo digital. Envía el número al tubo digital a través del registro de desplazamiento 74HC595.