int led1 = 1; //Benoemen Arduino poortaansluitingen
int led2 = 2;
int led3 = 3;
int led4 = 4;
int led5 = 5;
int led6 = 6;
int led7 = 7;
int led8 = 8;
int displayA = 9;
int displayB = 10;
int displayC = 11;
int knop = 12;
int displayD = 13;
int displayE = A1;
int displayF = A2;
int displayG = A3;
int getal; //Integer variabele *getal* --> globaal te gebruiken/uit te lezen waarde
void setup() //Declaren van de Arduino aansluitpinnen
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(knop, INPUT_PULLUP);
randomSeed(analogRead(0)); //Ruis op analoge poort A0 gebruiken om willekeruige getallen te verkrijgen
pinMode(displayA, OUTPUT);
pinMode(displayB, OUTPUT);
pinMode(displayC, OUTPUT);
pinMode(displayD, OUTPUT);
pinMode(A1, OUTPUT); //Analoogpoorten A1-A2-A3 bruikbaar maken als digitale poorten
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
}
void loop () { //Steeds herhaalde lus --> Stappen van programma doorlopen
if (digitalRead(knop)==LOW){ //Stappen binnen {} uitvoeren wanneer de drukknop wordt ingedrukt
int rollen; //benoemen integer variabele *rollen* --> in dit geval enkel uit te lezen binnen void loop()
rollen = random(4,8); //random getal tussen 4-8 kiezen en variabele *rollen* die waarde meegeven
while (rollen > 0){ //stappen binnen {} uitvoeren zolang dat variabele *rollen* groter is als 0
dobbelen(); //acties in void dobbelen() uitvoeren --> random getal kiezen + LEDS aansturen
delay(500); //Wacht 500ms
uitzetten(); //alle leds + display uitschakelen
rollen = rollen - 1; //1 aftrekken van variabele *rollen*
}
dobbelen(); //een laatste keer dobbelen
digitalWrite(led8, HIGH); //groene LED naast drukknop aanzetten
display(); //variabele *getal* uitlezen, afhankelijk van de waarde een bepaald getal op het display weergeven
delay(7500); //wacht 7,5 seconden
uitzetten(); //alle leds + display uitschakelen
}
}
void dobbelen(){ //functie voor het kiezen van een random getal + LEDS aansturen //
getal = random(1,7); //willekeurige waarde tussen 1 en 7 kiezen + waarde meegeven aan variabele *getal*
if(getal == 1) digitalWrite(led7, HIGH); //Aansturen van de LEDs afhankelijk van variabele *getal*
if(getal == 2){digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
}
if(getal == 3){digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led7, HIGH);
}
if(getal == 4){digitalWrite(led1, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led6, HIGH);
}
if(getal == 5){digitalWrite(led1, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
}
if(getal == 6){digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
}
}
void uitzetten(){ //functie voor het uitschakelen van alle LEDs + het display
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
digitalWrite(led8, LOW);
digitalWrite(displayA, LOW);
digitalWrite(displayB, LOW);
digitalWrite(displayC, LOW);
digitalWrite(displayD, LOW);
digitalWrite(displayE, LOW);
digitalWrite(displayF, LOW);
digitalWrite(displayG, LOW);
}
void display(){ //functie voor het aansturen van display
if(getal == 1){ digitalWrite(displayB, HIGH); //aansturen van het display afhankelijk van de waarde van variabele *getal*
digitalWrite(displayC, HIGH);
}
if(getal == 2){
digitalWrite(displayA, HIGH);
digitalWrite(displayB, HIGH);
digitalWrite(displayD, HIGH);
digitalWrite(displayE, HIGH);
digitalWrite(displayG, HIGH);
}
if(getal == 3){ digitalWrite(displayA, HIGH);
digitalWrite(displayB, HIGH);
digitalWrite(displayC, HIGH);
digitalWrite(displayD, HIGH);
digitalWrite(displayG, HIGH);
}
if(getal == 4){ digitalWrite(displayB, HIGH);
digitalWrite(displayC, HIGH);
digitalWrite(displayF, HIGH);
digitalWrite(displayG, HIGH);
}
if(getal == 5){ digitalWrite(displayA, HIGH);
digitalWrite(displayC, HIGH);
digitalWrite(displayD, HIGH);
digitalWrite(displayF, HIGH);
digitalWrite(displayG, HIGH);
}
if(getal == 6){ digitalWrite(displayA, HIGH);
digitalWrite(displayC, HIGH);
digitalWrite(displayD, HIGH);
digitalWrite(displayE, HIGH);
digitalWrite(displayF, HIGH);
digitalWrite(displayG, HIGH);
}
}