#define aPin 7
#define bPin 8
#define cPin 2
#define dPin 3
#define ePin 4
#define fPin 6
#define gPin 5
#define PIN_BUTTON A0
const byte PIN_CHAOS = A5;
int On=0;
int Off;
void setup() {
randomSeed(analogRead(PIN_CHAOS));
pinMode(aPin, OUTPUT);
pinMode(bPin, OUTPUT);
pinMode(cPin, OUTPUT);
pinMode(dPin, OUTPUT);
pinMode(ePin, OUTPUT);
pinMode(fPin, OUTPUT);
pinMode(gPin, OUTPUT);
pinMode(PIN_BUTTON, INPUT_PULLUP);
}
void loop() {
int buttonState = digitalRead(PIN_BUTTON);
if (buttonState == LOW) {
rollTheDice(5, 200);
rollTheDice(3, 300);
rollTheDice(1, 400);
}
}
void rollTheDice(int count, int delayLength) {
for (int i = 0; i < count; i++) {
int number = random(1,7);
showNumber(number);
delay(delayLength);
}
}
void showNumber(int x){
if(On==1){Off=0;}
else{Off=1;}
switch(x){
case 1: one(); break;
case 2: two(); break;
case 3: three(); break;
case 4: four(); break;
case 5: five(); break;
case 6: six(); break;
}
}
void one(){
digitalWrite( aPin, Off);
digitalWrite( bPin, On);
digitalWrite( cPin, On);
digitalWrite( dPin, Off);
digitalWrite( ePin, Off);
digitalWrite( fPin, Off);
digitalWrite( gPin, Off);
}
void two(){
digitalWrite( aPin, On);
digitalWrite( bPin, On);
digitalWrite( cPin, Off);
digitalWrite( dPin, On);
digitalWrite( ePin, On);
digitalWrite( fPin, Off);
digitalWrite( gPin, On);
}
void three(){
digitalWrite( aPin, On);
digitalWrite( bPin, On);
digitalWrite( cPin, On);
digitalWrite( dPin, On);
digitalWrite( ePin, Off);
digitalWrite( fPin, Off);
digitalWrite( gPin, On);
}
void four(){
digitalWrite( aPin, Off);
digitalWrite( bPin, On);
digitalWrite( cPin, On);
digitalWrite( dPin, Off);
digitalWrite( ePin, Off);
digitalWrite( fPin, On);
digitalWrite( gPin, On);
}
void five(){
digitalWrite( aPin, On);
digitalWrite( bPin, Off);
digitalWrite( cPin, On);
digitalWrite( dPin, On);
digitalWrite( ePin, Off);
digitalWrite( fPin, On);
digitalWrite( gPin, On);
}
void six(){
digitalWrite( aPin, On);
digitalWrite( bPin, Off);
digitalWrite( cPin, On);
digitalWrite( dPin, On);
digitalWrite( ePin, On);
digitalWrite( fPin, On);
digitalWrite( gPin, On);
}