#include "OneButton.h"
int TASTER = 13;
// Array für die LEDs
int LED[5] = {3, 4, 5, 6, 7};
// Name des Tasters
OneButton NameTaster(TASTER, true);
// LEDs sind beim Start ausgeschaltet
bool Status = LOW;
void setup()
{
// LEDs als OUTPUT setzen
for (int i = 0; i <= 5; i++)
{
pinMode(LED[i], OUTPUT);
}
pinMode(TASTER, INPUT_PULLUP);
// Aktionen dem Modus des Tasters zuordnen
NameTaster.attachClick(einKlick);
NameTaster.attachDoubleClick(DoppelKlick);
NameTaster.attachLongPressStop(langerDruckStopp);
/*
Anzahl der Millisekunden bei den jeweiligen Aktionen festlegen
Standardwerte:
PressTicks: 1000
ClickTicks: 600
DebounceTicks: 50
wenn die Standardwerte gesetzt werden sollen
können die nächsten Zeilen auskommentiert werden
*/
NameTaster.setPressTicks(800);
NameTaster.setClickTicks(400);
NameTaster.setDebounceTicks(50);
}
void loop()
{
// Taster alle 10 Millisekunden abfragen
NameTaster.tick();
delay(10);
}
void einKlick()
{
/*
Status == true (1) -> einschalten
Status == false (0) -> ausschalten
Status umkehren
*/
Status = !Status;
for (int i = 0; i <= 5; i++)
{
// aktuelle LED i ein- oder ausschalten
digitalWrite(LED[i], Status);
}
}
void DoppelKlick()
{
for (int i = 0; i <= 4; i++)
{
// aktuelle LED i einschalten
digitalWrite(LED[i], HIGH);
delay(200);
// aktuelle LED i ausschalten
digitalWrite(LED[i], LOW);
}
// ...und zurück
for (int i = 4; i >= 0; i --)
{
// aktuelle LED i einschalten
digitalWrite(LED[i], HIGH);
delay(200);
// aktuelle LED i ausschalten
digitalWrite(LED[i], LOW);
}
}
void langerDruckStopp()
{
// alle LEDs blinken 5-mal
// d -> Anzahl der Durchläufe
for (int d = 0; d <= 6; d++)
{
// einschalten
for (int i = 0; i <= 4; i++)
{
digitalWrite(LED[i], HIGH);
}
delay(200);
// ausschalten
for (int i = 0; i <= 4; i++)
{
digitalWrite(LED[i], LOW);
}
delay(200);
}
}
Letzte Aktualisierung: