Skip to content

Instantly share code, notes, and snippets.

@SimonHaasnoot
Created December 16, 2015 19:33
Show Gist options
  • Save SimonHaasnoot/d7bfb14ae4efe7e810e7 to your computer and use it in GitHub Desktop.
Save SimonHaasnoot/d7bfb14ae4efe7e810e7 to your computer and use it in GitHub Desktop.
ArduinoBinairSpel.ino
int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;
int led5 = 13;
int button = 4;
int buttonState = LOW;
int lastButtonState = LOW;
int counter = 0;
int timerTimeout = 2000;
long timer = -1;
int antwoord;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(button, INPUT);
// willekeurig getal genereren adhv poort
randomSeed(analogRead(1));
Serial.begin(9600);
}
void startTimer(){
timer = millis() + timerTimeout;
}
bool isTimerFinished(){
return millis() >= timer && timer >= 0;
}
void stopTimer(){
timer = -1;
}
void loop() {
buttonState = digitalRead(button);
int willekeurig = random() %15 + 1;
antwoord = willekeurig;
// led 1 gaat aan als het getal hoger/gelijk is dan 8
if(willekeurig >= 8){
digitalWrite(8, HIGH);
willekeurig -= 8;
}
// led 2 gaat aan als het getal hoger/gelijk is dan 4
if(willekeurig >= 4){
digitalWrite(9, HIGH);
willekeurig -= 4;
}
// led 3 gaat aan als het getal hoger/gelijk is dan 2
if(willekeurig >= 2){
digitalWrite(10, HIGH);
willekeurig -= 2;
}
// led 4 gaat aan als het getal gelijk is aan 1
if(willekeurig == 1){
digitalWrite(11, HIGH);
willekeurig -= 1;
}
startTimer();
while (!isTimerFinished()) {
// Update the current button state each loop
buttonState = digitalRead(button);
if (buttonState == HIGH && lastButtonState == LOW) {
counter++;
Serial.println(counter);
startTimer();
lastButtonState = HIGH;
} else if(buttonState == LOW && lastButtonState == HIGH) {
lastButtonState = LOW;
startTimer();
}
delay(50);
}
stopTimer();
if(counter == antwoord){
digitalWrite(13, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(3000);
digitalWrite(13, LOW);
}
if (counter != antwoord){
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
delay(500);
counter = 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment