Schreib das mal ungefähr so:
bool leseWert;
leseWert=digitalRead(kp);
if(leseWert==HIGH)
{
.....
.....
}
Deine Methode _müsste_ eigentlich auch funktionieren, aber aus Erfahrung weiss ich: manchmal funktioniert es eben nicht.
Schreib das mal ungefähr so:
bool leseWert;
leseWert=digitalRead(kp);
if(leseWert==HIGH)
{
.....
.....
}
Deine Methode _müsste_ eigentlich auch funktionieren, aber aus Erfahrung weiss ich: manchmal funktioniert es eben nicht.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
Ich finde persönlich, bool sollte man nur mit TRUE oder FALSE verwenden, nicht mit high oder low, auch wenn es logisch äquivalent ist.
stattdessen gehen aber sicherlich auch die Datentypen char oder byte für leseWert problemlos mit deinem Code, und sie benötigen in C(++) auch denselben Speicher.
Auc hwenn es hier vermutlich nicht die Ursache ist,
Digitalsignale haben 3 Spannungszustände.
Low, nicht Definiert und High.
Momentan ist der Ausgang High wenn der Eingang High ist und wenn der Eingang Low und nicht definiert ist ist der Ausgang Low.
Kehrt man die Befehlslogik um, ist der Ausgang nur Low wenn der Eingang low ist.
Sonst ist er High.
Ein Versuch würde zeigen ob es was bringt oder nicht.Code:if (digitalRead(kp) == LOW){ digitalWrite (rot, HIGH); digitalWrite (gruen, LOW); } else { digitalWrite (rot, HIGH); digitalWrite (gruen, HIGH); }
Hallo,
danke, für die vielen Antworten. Ich werde das alles mal nach und nach ausprobieren. Bin schon froh, dass ich in meinem Gedankengang also nicht so falsch lag.
Lesezeichen