#define BTN 1
#define LED_RED 4
#define LED_GREEN 5
#define TIME_DEBOUNCE 20
#define TIME_INTERVAL 2000
#define TIME_COUNT 250

boolean do_once = false;
boolean button_before = HIGH;
unsigned char counter_button = 0;
unsigned int counter_time_steps = 0;

void setup() {
  pinMode(LED_RED, OUTPUT);
  pinMode(LED_GREEN, OUTPUT);
  pinMode(BTN, INPUT_PULLUP);
  digitalWrite(LED_GREEN, LOW);
  digitalWrite(LED_RED, HIGH);

  Serial.begin(115200);
  Serial.println("Projekt: Frag mal einen Schalter und einen Taster ab");
  
  Serial.println("Auf die Plätze ...");
  delay(TIME_INTERVAL);
  Serial.print("ferti ...");
  delay(TIME_INTERVAL);
  Serial.println("los ");
  digitalWrite(LED_GREEN, HIGH);
  digitalWrite(LED_RED, LOW);
}


void loop() {
  while (counter_time_steps < TIME_COUNT) {
    if((digitalRead(BTN) == LOW) && (button_before == HIGH)) {
      button_before = LOW;
      counter_button++;
    }

    if((digitalRead(BTN) == HIGH) && (button_before == LOW)) {
      button_before = HIGH;
    }

    delay(TIME_DEBOUNCE);
    counter_time_steps++;
  }

  if(do_once == true) {
    do_once = false; 
    digitalWrite(LED_GREEN, LOW);
    digitalWrite(LED_RED, HIGH);
    Serial.println("Du hast den Taster ");
    Serial.print(counter_button);
    Serial.println(" Mal betätigt");
  }
}
esp:0
esp:1
esp:2
esp:3
esp:4
esp:5
esp:6
esp:7
esp:8
esp:9
esp:10
esp:18
esp:19
esp:GND.1
esp:3V3.1
esp:3V3.2
esp:GND.2
esp:RST
esp:GND.3
esp:GND.4
esp:5V.1
esp:5V.2
esp:GND.5
esp:GND.6
esp:GND.7
esp:GND.8
esp:GND.9
esp:RX
esp:TX
esp:GND.10
led1:A
led1:C
led2:A
led2:C
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r