#define TASTERPIN 2
#define RESETPIN 4
#define LED_PIN 6
void setup() {
Serial.begin(9600);
pinMode(TASTERPIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
pinMode(RESETPIN, INPUT_PULLUP);
}
void blinkLED(int blinks) { //Funktion erhält einen Rückgabewert als Integer
for (int i = 0; i < blinks; i++) { //i mit 0 initialisiert -> wenn i kleiner als
//der Rückgabewert erhöhe i -> wenn i = blinks wird die schleife abgebrochen
digitalWrite(LED_PIN, HIGH);
delay(500);
digitalWrite(LED_PIN, LOW);
delay(500);
}
}
void loop() {
bool tasterstatus = digitalRead(TASTERPIN);
static bool vorherigerTasterstatus = HIGH;
static int zaehlwert = 0;
static int vorherigerZaehlwert = 0;
if (digitalRead(RESETPIN) == LOW) {
zaehlwert = 0 ;
vorherigerZaehlwert = 0 ;
}
// Überprüfen, ob der Taster gedrückt wurde
if (tasterstatus == LOW && vorherigerTasterstatus == HIGH) {
zaehlwert ++; // Zählwert erhöhen
Serial.print("Zählwert: ");
Serial.println(zaehlwert);
delay (50); //Entprellen nach Druck
}
vorherigerTasterstatus = tasterstatus;
delay (50); //Entprellen beim Loslassen
// Blinkt nur nach Zählwert Erhöhung :
if (zaehlwert > vorherigerZaehlwert) {
delay (500);
blinkLED(zaehlwert); // Unterfunktion zum
//Blinken wird aufgerufen
vorherigerZaehlwert = zaehlwert; // Aktualisiere den vorherigen Zähler
}
}