Nota
Ciao, benvenuto nella Community SunFounder dedicata agli appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri entusiasti.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche grazie al supporto del nostro team e della community.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotto e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Giveaway Festivi: Partecipa a concorsi e promozioni durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!
Lezione 44: Dado Digitale
Questo progetto simula il lancio di un dado utilizzando un display OLED. La simulazione viene attivata scuotendo l’interruttore a vibrazione, facendo scorrere i numeri da 1 a 6 sul display, proprio come nel lancio di un dado reale. Dopo un breve intervallo, il display si ferma mostrando un numero scelto casualmente che rappresenta il risultato del lancio.
Componenti Necessari
Per questo progetto sono richiesti i seguenti componenti.
È sicuramente conveniente acquistare l’intero kit, ecco il link:
Nome |
COMPONENTI INCLUSI |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
Puoi anche acquistare i componenti singolarmente dai link riportati di seguito.
Introduzione al Componente |
Link Acquisto |
---|---|
Arduino UNO R3 o R4 |
|
- |
|
Collegamenti

Codice
Nota
Per installare la libreria, apri il Library Manager dell’Arduino IDE, cerca «Adafruit SSD1306» e «Adafruit GFX», quindi installale.
Analisi del Codice
Una panoramica dettagliata del codice:
Inizializzazione delle variabili:
vibPin
: Pin digitale collegato al sensore di vibrazione.Variabili volatili:
rolling
: Flag volatile che indica lo stato del lancio del dado. È dichiarata volatile perché viene utilizzata sia nel programma principale che nella routine di interrupt.setup()
:Configura il pin del sensore di vibrazione come input. Assegna un interrupt al sensore per attivare la funzione
rollDice
al cambiamento di stato. Inizializza il display OLED.loop()
:Controlla continuamente se
rolling
è attivo; in tal caso, mostra numeri casuali da 1 a 6. Il ciclo si ferma se la vibrazione dura più di 500 millisecondi.rollDice()
:Routine di interrupt del sensore di vibrazione. Avvia il lancio del dado memorizzando il tempo corrente al momento della vibrazione.
displayNumber()
:Visualizza sul display OLED il numero selezionato.