Hallo zusammen,
ich habe ein seltsames Verhalten und komme dem nicht auf die Schliche.
Es geht um das Einschaltverhalten eines GPIOs als Ausgang.
Ich möchte das der Pin beim einschalten , booten und initialisieren auf HIGH
bleibt.
Ich sage gleich vorweg, das ich schon alle GPIOs getestet habe die
beim Booten einen externen PullUp haben dürfen.
Das ist gesichert, das ein PU dran kann.
Also ich habe einen Pullup an dem GPIO und wenn ich
nur den GPIO als Ausgang definiere und mit
pinMode(5, OUTPUT);
digitalWrite(5, HIGH);
im Sketch Setup setze, passiert folgendes.....
Strom an, der ESP8266 bootet, der GPIO bleibt dauerhaft auf HIGH wie es sein soll.
Er toggelt überhaupt nicht und bleibt brav und dauerhaft auf HIGH.
Nun will ich aber den GPIO bei einer Bedingung auf LOW setzen.
Das ganze mit :
void loop()
{
int SSR = digitalRead(0);
int Taster = digitalRead(2);
if ((Taster == 1) && (SSR == 1))
digitalWrite(5, LOW);
else digitalWrite(5, HIGH);
}
So und was passiert jetzt.....:
SSR und Taster sind beide LOW
Strom an..... der ESP bootet und toggelt von HIGH nach LOW und wieder auf HIGH.
Das soll er ja nicht....
Sobald die IF Abfrage drinnen ist, toggelt der Ausgang beim hochbooten.
Nehme ich die Abfrage
if ((Taster == 1) && (SSR == 1))
digitalWrite(5, LOW);
else digitalWrite(5, HIGH);
wieder raus, bleibt der Pin wieder Stabil auf HIGH.
Ich verstehe nicht, warum der Pin überhaupt toogelt,
wenn die If Bedinugung nicht erfüllt ist.
Aber der Ausgang macht durch die IF Abfrage beim booten des ESP High, Low, High.
..... ohne die Abfrage bleibt es beim High.
Die Funktion als solches Funktioniert, aber das 1malige Low zwischendrinn muss weg.
Woran kann die´s nur liegen, .... es es bei allen GPIOs das gleiche Verhalten.