// Bibliothek Bounce2 einbinden
#include "Bounce2.h"
// Bounce starten
// Namen des Objekts Bounce (TasterGedrueckt) festlegen
Bounce TasterGedrueckt = Bounce();
int LED = 7;
int TASTER = 8;
/*
setzt den Status
Status true -> LED an
Status false -> LED aus
beim Start soll die LED ausgeschaltet sein
*/
bool Status = false;
// Startzeit wird mit millis() ermittelt
unsigned long Startzeit;
// verstrichene Zeit in Millisekunden
unsigned long VerstricheneZeit;
float Sekunden;
int Minute;
void setup() {
pinMode(LED, OUTPUT);
/*
Namen des Objekts Bounce (TasterGedrueckt) dem Taster zuordnen (attach)
Zeitintervall einstellen
INPUT_PULLUP -> Eingangspegel auf HIGH setzen
*/
TasterGedrueckt.attach(TASTER, INPUT_PULLUP);
TasterGedrueckt.interval(20);
Serial.begin(9600);
}
void loop()
{
// Tasterstatus abfragen
if (TasterGedrueckt.update())
{
// Taster wurde gedrückt, das Signal ist gefallen
if (TasterGedrueckt.fell())
{
// LED ist aus ⇒ Status == false
if (Status == false) {
digitalWrite(LED, HIGH);
// Status auf true (an) setzen
Status = true;
// wenn Status == true -> Timer starten
if (Status) Startzeit = millis();
}
// LED ist an ⇒ Status == true
else if (Status == true)
{
digitalWrite(LED, LOW);
// Dauer des Einschaltens der LED berechnen
VerstricheneZeit = millis() - Startzeit;
Sekunden = VerstricheneZeit / 1000.0;
String AnzeigeSekunden = String(Sekunden);
AnzeigeSekunden.replace(".", ",");
// Sekunden anzeigen
Serial.println("Leuchtdauer: " + AnzeigeSekunden + " Sekunde(n)");
// Minuten berechnen und anzeigen
Minute = Sekunden / 60;
if (Minute > 0) {
Serial.print(" = " + String(Minute) + " Minute(n): ");
Sekunden = Sekunden - Minute * 60;
Serial.println(String(Sekunden) + " Sekunde(n)");
}
// Status auf false (aus) setzen
Status = false;
}
}
}
}Leuchtdauer der LED messen