
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