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+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
---|---|
- |
|
- |
|
Collegamenti
Schema Elettrico
Codice
Nota
Puoi aprire il file
05_digital_dice.ino
nel percorsoelite-explorer-kit-main\fun_project\05_digital_dice
direttamente.Oppure copia questo codice nell’Arduino IDE.
Come funziona?
Ecco una spiegazione dettagliata del codice:
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.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.
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.
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.
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.
displayNumber()
:Questa funzione visualizza un numero sul tubo digitale. Invia il numero al tubo digitale attraverso il registro a scorrimento 74HC595.