Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirsi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.

  • Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

Dado Digitale

Questo codice è progettato per simulare un lancio di dadi utilizzando un registro a scorrimento 74HC595 e un display digitale a 7 segmenti. La simulazione del lancio del dado viene attivata agitando direttamente l’interruttore inclinabile. Al compimento di questa azione, il display digitale scorre tra numeri casuali tra 1 e 6, simulando il lancio di un dado. Dopo un breve intervallo, il display si ferma, mostrando un numero casuale che rappresenta il risultato del lancio del dado.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Elite Explorer Kit

300+

Elite Explorer Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE COMPONENTI

LINK ACQUISTO

Arduino Uno R4 WiFi

-

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistenza

ACQUISTA

Interruttore a Inclinazione

-

74HC595

ACQUISTA

Display a 7 Segmenti

ACQUISTA

Collegamenti

../_images/05_dice_bb.png

Schema Elettrico

../_images/05_digital_dice_schematic.png

Codice

Nota

  • Puoi aprire il file 05_digital_dice.ino nel percorso elite-explorer-kit-main\fun_project\05_digital_dice direttamente.

  • Oppure copia questo codice nell’Arduino IDE.

Come funziona?

Ecco una spiegazione dettagliata del codice:

  1. Inizializzazione delle variabili:

    dataPin, clockPin, latchPin: Pin per il 74HC595. buttonPin: Il pin digitale a cui è collegato il pulsante. numbers[]: Un array per memorizzare la codifica che rappresenta i numeri da 1 a 6 su un tubo digitale ad anodo comune.

  2. Variabili volatili:

    rolling: Questa è una variabile volatile che indica se il dado sta attualmente rotolando. È dichiarata volatile poiché viene acceduta sia nella routine di servizio degli interrupt sia nel programma principale.

  3. setup():

    Imposta le modalità per i pin rilevanti. Imposta la modalità input per il pulsante utilizzando il resistore pull-up interno. Assegna un interrupt al pulsante, che chiama la funzione rollDice quando lo stato del pulsante cambia.

  4. loop():

    Controlla se rolling è true. Se lo è, continua a visualizzare un numero casuale tra 1 e 6. Se il pulsante è stato premuto per più di 500 millisecondi, il rolling si ferma.

  5. rollDice():

    Questa è la routine di servizio degli interrupt per il pulsante. Controlla se il pulsante è premuto (livello basso). Se lo è, il tempo corrente viene registrato e il rolling inizia.

  6. displayNumber():

    Questa funzione visualizza un numero sul tubo digitale. Invia il numero al tubo digitale attraverso il registro a scorrimento 74HC595.