Conosciamo tutti i dadi e spesso giocavamo a LUDO o SANP SIDI (Snake & Ladders) usando i dadi. Dice è una scatola solida di tipo scudiero che contiene 6 numeri diversi su tutti i lati. Lanciamo i dadi su una superficie per ottenere un numero casuale durante i giochi. In questo progetto abbiamo provato a replicarlo con un dado digitale utilizzando la scheda arduino uno. Invece di lanciare i dadi, qui dobbiamo premere un pulsante per ottenere un numero casuale compreso tra 0 e 6.
Componenti richiesti
- Arduino UNO
- Display a sette segmenti (anodo comune)
- Premi i pulsanti
- Cavi di collegamento
- Tagliere per il pane
- Resistenza da 1 k
- Alimentazione elettrica
Schema del circuito e spiegazione
Come mostrato nel circuito dei dadi digitali sopra, arduino viene utilizzato per controllare l'intero processo. Nel circuito vengono utilizzati due pulsanti: uno per avviare i dadi e l'altro per reimpostare i dadi. Arduino legge questi due pulsanti ed esegue l'operazione. Un display a sette segmenti viene utilizzato per visualizzare il risultato del dado.
Arduino esegue continuamente la funzione rand () e memorizza il suo valore in una variabile temporanea. Quando si preme il pulsante dei dadi, il valore memorizzato viene calcolato e visualizzato su sette segmenti utilizzando il metodo appropriato (vedere la parte relativa alla programmazione dell'articolo).
Qui in questo circuito di dadi, un display a sette segmenti di anodo comune viene utilizzato per visualizzare i numeri di dadi, che è direttamente collegato ai numeri di pin digitali di arduino 6, 5, 4, 3, 2, 1, 0. E il pin dell'anodo comune di sette segmenti è collegato con una resistenza da +5 volt 220 Ohm. Sono inoltre collegati due pulsanti, vale a dire il pulsante a dadi e il pulsante di ripristino, che sono collegati ai pin digitali 14 (A0) e 15 (A1) rispetto alla massa.
Spiegazione del codice
La parte di programmazione di questo progetto gioca un ruolo molto importante per visualizzare il numero di dadi digitali casuali su un display a sette segmenti. Arduino non contiene alcuna libreria per il display a sette segmenti. quindi abbiamo creato l'intero codice senza utilizzare alcuna libreria.
Prima di tutto selezioniamo il pin digitale per il display a sette segmenti.
int pin = {6,5,4,3,2,1,0};
Dopo di ciò creiamo una matrice di 6 cifre di dadi, ovvero 1, 2, 3, 4, 5 e 6.
char digit = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Ora abbiamo dato indicazioni per utilizzare il pin arduino come output.
void setup () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (dadi, INPUT); pinMode (resett, INPUT); digitalWrite (dadi, HIGH); digitalWrite (resett, HIGH);
Per impostazione predefinita, inviamo un codice per visualizzare lo zero sul display a sette segmenti.
int temp = 0x40; for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; }
Ora eseguiamo la funzione rand () per ottenere un numero casuale.
int temp = rand ();
E quando premiamo il pulsante dei dadi, il programma mappa prima questo numero casuale e poi invia il numero al display a sette segmenti utilizzando l'operatore bit wise.
if (digitalRead (dice) == 0) {int k = temp% 6; temp = cifra; aspettare(); for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pin, temp1); temp = temp >> 1; } ritardo (200); }
E lo stesso per il pulsante di ripristino.
In questo programma inviamo un singolo bit alla volta. Qui applichiamo un ciclo for che viene eseguito 7 volte per inviare i dati a ciascun segmento uno per uno.