ArduDado: simuliamo un lancio di dado con Arduino

Informatica Taranto

Il progetto di questo post simula il lancio di un dado, ottenendo il classico punteggio che può variare da 1 a 6

I catodi (i pin più corti per intenderci) di ciascun led sono collegati insieme fra loro, e devono essere inviati al pin GND della board Arduino, invece gli anodi dei led vanno collegati alle singole uscite del nostro Arduino.

Se state saldando i led tenete presente che, essendo una vista da sotto, la destra e la sinistra sono invertite.

Tra ogni uscita e i nostri led va saldata una resistenza da 220 Ω.

Con la funzione random viene generato un numero casuale fra 1 e 6 e il valore viene memorizzato nella variabile “score”.
In funzione di tale numero, con l’istruzione switch case viene acceso un gruppo di led corrispondente alla rappresentazione del numero che è stato generato. Il processo avviene molto velocemente, in modo ciclico, per cui i led sembrano sempre accesi, con una luminosità intermedia.
Per tentare la sorte, ovvero “lanciare il dado”, si preme il pulsante:

il ciclo si arresta, e rimangono accesi i soli led che corrispondono al punteggio generato in quell’istante.
Dopo due secondi il loop riparte, e si può lanciare di nuovo, premendo ancora il pulsante.

Di seguito c’è il codice da trasferire tramite copia e incolla nell’IDE di arduino:

unsigned int score=0;
bool puls=0;

void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(2, INPUT);
}
void loop()
{
score=random(1,7);
switch (score) {
case 1:
digitalWrite(7,HIGH);
break;
case 2:
digitalWrite(10,HIGH);
digitalWrite(13,HIGH);
break;
case 3:
digitalWrite(10,HIGH);
digitalWrite(7,HIGH);
digitalWrite(13,HIGH);
break;
case 4:
digitalWrite(13,HIGH);
digitalWrite(8,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
break;
case 5:
digitalWrite(8,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(13,HIGH);
digitalWrite(7,HIGH);
break;
case 6:
digitalWrite(13,HIGH);
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
break;
}
puls = digitalRead(2);
if (puls==1){ delay(2000);
}
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}

Se vi volete cimentare nella realizzazione del vostro ArduDado buon divertimento… La foto del mio è qui sotto.

Fonte: raffaeleilardo.it

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

 

GDPR - Utilizziamo Google Analytics

Conferma, se accetti di essere monitorato da Google Analytics. Se non accetti il monitoraggio, puoi comunque continuare a visitare il nostro sito web senza che alcun dato venga inviato a Google Analytics. Leggi la nostra Privacy Policy

Su questo sito utilizziamo strumenti nostri o di terze parti che memorizzano piccoli file (cookie) sul tuo dispositivo. I cookie sono normalmente usati per permettere al sito di funzionare correttamente (cookie tecnici), per generare statistiche di uso/navigazione (cookie statistici) e per pubblicizzare opportunamente i nostri servizi/prodotti (cookie di profilazione). Possiamo usare direttamente i cookie tecnici, ma hai il diritto di scegliere se abilitare o meno i cookie statistici e di profilazione. Abilitando questi cookie, ci aiuti ad offrirti una esperienza migliore con noi.