#define TASTERPIN 2
#define LED_PIN 6
volatile bool buttonpressed = false;
void setup() {
Serial.begin(9600);
pinMode(TASTERPIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
//attachInterrupt(TASTERPIN, buttonPressedISR, FALLING);
attachInterrupt(digitalPinToInterrupt(TASTERPIN), buttonPressedISR, FALLING);
Serial.println("Ready");
}
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 buttonPressedISR (){
buttonpressed = !buttonpressed ;
}
void loop() {
static int zaehlwert = 0;
static int vorherigerZaehlwert = 0;
if (buttonpressed == true){
zaehlwert ++ ; // Zählwert erhöhen
Serial.print("Zählwert: ");
Serial.println(zaehlwert);
delay (50); //entprellen
//buttonpressed = false ;
}
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
}
}