int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;
int led7 = 8;
int led8 = 9;
int pins[8] = {2, 3, 4, 5, 6, 7, 8, 9};
int buzzer = 10;
int buttonLower = A2;
bool stateButtonL;
bool previousStateButtonL;
int buttonHigher = A1;
bool stateButtonH;
bool previousStateButtonH;
int previousRandNr;
int randNr;
int score;
String message;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
pinMode(led8, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(buttonLower, INPUT_PULLUP);
pinMode(buttonHigher, INPUT_PULLUP);
previousStateButtonL = digitalRead(buttonLower);
previousStateButtonH = digitalRead(buttonHigher);
randomSeed(analogRead(A0));
Serial.begin(9600);
}
void loop() {
makeRandNr(previousRandNr);
turnon(randNr);
while(message == ""){
buttonPressed(previousStateButtonL, previousStateButtonH);
}
higherLower(message, previousRandNr, randNr);
Serial.println("Your score is " + String(score));
previousRandNr = randNr;
message = "";
}
int makeRandNr(int previousRandNr){
randNr = random(9);
while (randNr == previousRandNr){
randNr = random(9);
}
Serial.println(randNr);
return randNr;
}
void buttonPressed(bool previousStateButtonL, bool previousStateButtonH){
stateButtonL = digitalRead(buttonLower);
stateButtonH = digitalRead(buttonHigher);
if (stateButtonL != previousStateButtonL){
Serial.println("lower pressed");
message = "loweron";
}
else if(stateButtonH != previousStateButtonH){
Serial.println("higher pressed");
message = "higheron";
}
delay(200);
previousStateButtonL = stateButtonL;
previousStateButtonH = stateButtonH;
}
void higherLower(String message, int previousRandNr, int randNr){
Serial.println(message);
Serial.println(previousRandNr);
Serial.println(randNr);
if (message == "loweron" && randNr < previousRandNr){
score ++;
}
else if (message == "higheron" && randNr > previousRandNr){
score ++;
}
else{
score --;
}
}
void turnon(int number) {
for (int i = 0; i < 8; i++) {
if (i < number) {
Serial.println("The following led is turned on: " + String(i));
digitalWrite(pins[i], HIGH);
}
else {
digitalWrite(pins[i], LOW);
}
}
}
All the things work except for the score counter, sometimes it takes a point of even when i push the right button, does anyone know what i can do?