Étape 3: Dice
Initialement, j’ai voulu commander un module fini dés (http://goo.gl/15SdVS) donc je me suis amusée à créer d’autres modules, mais le produit n’était pas présent dans l’entrepôt alors j’ai décidé de créer mon propre module de dés.
Afin d’économiser I/O ports sur mon Arduino, j’ai groupé les LEDs en 4 groupes. Les 4 groupes sont :
- En haut à droite et en bas à gauche
- En haut à gauche et en bas à droite
- Milieu gauche et milieu droit
- Une dernière au milieu
Ces 4 groupes devraient couvrir toutes les formes qui le dé roule de 1 à 6 la formule. Lorsqu’une touche est pressée, un nombre aléatoire est généré et les LEDs dans les groupes selon sont allumés.
int group1 = A0;<br>int group2 = A1; int group3 = A2; int group4 = A3; int buttonPin = 0; boolean currentButtonState = LOW; boolean previousButtonState = LOW; int ran = 0; int time = 2500;<br><br>void setup () { Serial.begin(9600); pinMode (group1, OUTPUT); pinMode (group2, OUTPUT); pinMode (group3, OUTPUT); pinMode (group4, OUTPUT); pinMode (buttonPin, INPUT); randomSeed(analogRead(0)); }<br><br>void loop() { currentButtonState = digitalRead(buttonPin); if (currentButtonState == HIGH && previousButtonState == LOW) { ran = random(1, 7); Serial.println(ran); if (ran == 1) { digitalWrite (group1, HIGH); delay (time); } if (ran == 2) { digitalWrite (group2, HIGH); delay (time); } if (ran == 3) { digitalWrite (group1, HIGH); digitalWrite (group2, HIGH); delay (time); } if (ran == 4) { digitalWrite (group2, HIGH); digitalWrite (group3, HIGH); delay (time); } if (ran == 5) { digitalWrite (group1, HIGH); digitalWrite (group2, HIGH); digitalWrite (group3, HIGH); delay (time); } if (ran == 6) { digitalWrite (group2, HIGH); digitalWrite (group3, HIGH); digitalWrite (group4, HIGH); delay (time); } } previousButtonState = currentButtonState; digitalWrite (group1, LOW); digitalWrite (group2, LOW); digitalWrite (group3, LOW); digitalWrite (group4, LOW); }