Hallo,
ich habe gerade den Arduino entdeckt (Arduino Nano) und versuche gerade mich in hineinzuarbeiten.
Nach den ersten Versuchen versuche ich gerade einen Stromstoßschalter zu simulieren.
Dies versuchte ich mit folgenden Code:
// Hier werden Bibliotheken eingefügt:
#include <Bounce2.h> // Diese Bibliothek dient dem Entprellen von Tastern
// Hier werden Definitonen festgelegt:
#define Taster1 2 // Definiere den Ausdruck "Taster1" mit dem Wert "2" für Pin 2
#define LED1 13 // Definiere den Ausdruck "LED1" mit dem Wert "13" für Pin 13
Bounce debouncerTaster1 = Bounce(); // Lege debouncerTaster1 als Objekt an (damit der entprellte Wert weiterverabeitet werden kann)
// Hier werden globale Variablen festgelegt:
int TasterStatus = 0; // Variable "TasterStatus" wird mit dem Startwert "0" festgelegt
boolean LichtStatus = false; // Variable "Lichtstatus" wird mit dem Startwert "false" festgelegt
boolean TastenDruck = false; // Variable "TastenDruck" wird mit dem Startwert "false" festgelegt
void setup() // Hier werden grundsätzliche Startwerte eingestellt:
{
pinMode(LED1, OUTPUT); // Der Pin für die "LED1" (Pin 13) wird als Ausgang definiert
pinMode(Taster1, INPUT); // Der Pin für den "Taster1" (Pin 2) wird als Eingang definiert
debouncerTaster1.attach(Taster1); // debouncerTaster1 wird der Variablen "Taster1" zugewiesen
debouncerTaster1.interval(10); // debouncerTaster1 wird mit einer Intervallzeit von "10 ms" festgelegt
}
void loop() // Hier kommt der immer wieder durchlaufende Programmcode:
{
debouncerTaster1.update(); // Hiermit wird der Wert von "debouncerTaster1" upgedatet
int EntprellTaster1; // Hiermit wird die lokale Variable "EntprellTaster1" definiert
EntprellTaster1 = debouncerTaster1.read(); // Lese "debouncerTaster1" aus und schreibe den Wert in "EntprellTaster1"
if ((EntprellTaster1 == HIGH) && (TastenDruck == false)) // Wenn der Taster1 (Variable "EntprellTaster1" ist 1) gedrückt ist
{ // verarbeite den folgenden Block
LichtStatus = !LichtStatus; // Invertiere die Variable "LichtStatus"
TastenDruck = true; // Setze die Variabel "TastenDruck" auf "false"
}
else // Wenn der Taster1 (Variable "EntprellTaster1" ist 1) nicht gedrückt ist
{ // verarbeite den folgenden Block
TastenDruck = false; // Setze die Variable "TastenDruck" auf "false"
}
digitalWrite(LED1, LichtStatus); // Setze den Digitalausgang "LED1" (Pin 13) auf den Wert Lichtstatus
}
Leider funktioniert dies nur unzuverlässig. Ich drücke die Taste und der Zustand der LED wechselt, oder auch nicht.
Kann mir wer sagen, was ich falsch gemacht habe?
Danke für die Geduld, die ihr einen Anfänger entgegen bringt.
Gruß
Alamar
