#define TASTERPIN 2
#define RESETPIN 4
int LED_PINS[] = {8, 9, 10, 11};
void setup() {
Serial.begin(9600);
pinMode(TASTERPIN, INPUT_PULLUP);
for (int i = 0; i < 4; i++) {
pinMode(LED_PINS[i], OUTPUT);
}
pinMode(RESETPIN, INPUT_PULLUP);
}
void loop() {
bool tasterstatus = digitalRead(TASTERPIN);
static bool vorherigerTasterstatus = HIGH;
static int zaehlwert = 0;
if (digitalRead(RESETPIN) == LOW) { //RESETPIN aktiviert?
zaehlwert = 0 ;
digitalWrite(LED_PINS[0], LOW);
digitalWrite(LED_PINS[1], LOW);
digitalWrite(LED_PINS[2], LOW);
digitalWrite(LED_PINS[3], LOW);
}
delay (50);
if (zaehlwert == 15 && tasterstatus == LOW && vorherigerTasterstatus == HIGH){ //Überlauf
zaehlwert = 0;
digitalWrite(LED_PINS[0], LOW);
digitalWrite(LED_PINS[1], LOW);
digitalWrite(LED_PINS[2], LOW);
digitalWrite(LED_PINS[3], LOW);
Serial.print("Zählwert: ");
Serial.println(zaehlwert);
vorherigerTasterstatus = LOW ;
}
if (tasterstatus == LOW && vorherigerTasterstatus == HIGH ) {
zaehlwert ++; // Zählwert erhöhen
Serial.print("Zählwert: ");
Serial.println(zaehlwert);
delay (50); //Entprellen nach Druck
}
vorherigerTasterstatus = tasterstatus;
// Überprüfen, ob der Taster gedrückt wurde
switch (zaehlwert)
{
case 0:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], LOW);
digitalWrite(LED_PINS [2], LOW);
digitalWrite(LED_PINS [3], LOW);
break;
case 1:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 2:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], HIGH);
break ;
case 3:
digitalWrite(LED_PINS[0], HIGH);
break ;
case 4:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], LOW);
digitalWrite (LED_PINS[2], HIGH);
break ;
case 5:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 6:
digitalWrite(LED_PINS [0], LOW);
digitalWrite (LED_PINS [1], HIGH);
break ;
case 7:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 8:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], LOW);
digitalWrite(LED_PINS [2], LOW);
digitalWrite(LED_PINS [3], HIGH);
break ;
case 9:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 10:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], HIGH);
break ;
case 11:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 12:
digitalWrite(LED_PINS [0], LOW);
digitalWrite(LED_PINS [1], LOW);
digitalWrite(LED_PINS[2], HIGH);
break ;
case 13:
digitalWrite(LED_PINS [0], HIGH);
break ;
case 14:
digitalWrite(LED_PINS [0], LOW);
digitalWrite (LED_PINS[1], HIGH);
break ;
case 15:
digitalWrite(LED_PINS[0], HIGH);
break ;
}
}