From 984031f95c227a062a32c4c2ca1fb5a0b4b2f9d0 Mon Sep 17 00:00:00 2001 From: Tilman Date: Fri, 18 Sep 2020 08:49:46 +0200 Subject: [PATCH] bugfix flare catch --- .../klingel_sender_nano_serial.ino | 36 ++++++++++--------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/klingel_sender_nano_serial/klingel_sender_nano_serial.ino b/klingel_sender_nano_serial/klingel_sender_nano_serial.ino index 266be1f..19d7054 100644 --- a/klingel_sender_nano_serial/klingel_sender_nano_serial.ino +++ b/klingel_sender_nano_serial/klingel_sender_nano_serial.ino @@ -1,33 +1,37 @@ int ledPin = LED_BUILTIN; int buttonPin = 2; // Button connected to D2 and GND - -unsigned long lowTime = millis(); -unsigned long highTime = millis(); -unsigned long difference = 0; +int flare_threshold = 30; bool active = false; void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); Serial.begin(9600); - Serial.println("Starting button test"); + Serial.println("Starting doorbell sensor"); } void loop() { int val = digitalRead(buttonPin); - if (val == LOW && active == false) { - lowTime = millis(); - difference = lowTime - highTime; - Serial.print("LOW "); - Serial.println(difference); - active = true; + if (val == LOW) { + delay(flare_threshold); // catch flares + val = digitalRead(buttonPin); + + if (val == LOW && active == false) { + Serial.println("RING"); + digitalWrite(ledPin, HIGH); + active = true; + delay(250); + } + else if (val == HIGH) { + Serial.print("flare (<"); + Serial.print(flare_threshold); + Serial.println(")"); + } } - else if (val == HIGH && active == true) { - highTime = millis(); - difference = highTime - lowTime; - Serial.print("HIGH "); - Serial.println(difference); + else { active = false; + digitalWrite(ledPin, LOW); } + }