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+

Elite Explorer Kit

También puedes comprarlos por separado desde los enlaces a continuación.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

Arduino Uno R4 WiFi

-

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

Interruptor de Inclinación

-

74HC595

COMPRAR

Pantalla de 7 segmentos

COMPRAR

Cableado

../_images/05_dice_bb.png

Esquema

../_images/05_digital_dice_schematic.png

Código

Nota

  • Puedes abrir el archivo 05_digital_dice.ino bajo la ruta elite-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:

  1. Inicialización de variables:

    dataPin, clockPin y latchPin: 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.