if (digitalRead(OUT6)==LOW) {
if (out6_on==false) {
out6_on=true;
Serial.println(" OUT6");
}
if (digitalRead(OUT6)==HIGH) {
out6_on=false;
}
Wenn OUT6 LOW wird und bleibt, soll die Schleife einmal durchlaufen werden.
Dazu setze ich das Bit out6_on auf true.
Wenn dann OUT6 wieder HIGH wird, wird out6_on false und das Spiel kann von vorne beginnen.
Das Ganze geht aber nur einmal, weil out_on nicht mehr false wird.
Es läuft auf einem ESP32 C3.
Du musst halt an geeigneter Stelle deine Variable wieder auf false setzen.
Zeige uns den kompletten Sketch in Code-Tags, dann können wir auch weiter helfen.
Wobei ich nicht weiß ob " out6_on" eine Funktion hat, oder eine Hilfs-Variable ist.
Fakt ist aber durch AND abfragen schafft man ca. 40% der verschalteten IF Abfragen weg.
Das ist grundsätzlich in jeder Sprache so. Weshalb ich halt lieber eine Hilfs-Variable nutze.
Vielleicht magst du ja if, auch sogar komplizierte Bedingungen.
Ich nicht.
Ein Leben ohne diese ist viel schöner.
Viel flacher
Gradliniger.
Weniger Denken, weniger Irrtümer.
Und wenn Du davon 4 mit 3 Variablen hast, musst Du erstmal nachdenken, warum die eine oder andere Stelle im Code nicht mehr funktioniert.
Hatte ich grade die Tage.
Und ich kann eigentlich ganz gut mit mehreren Variablen umgehen.
Das ordentilche Einrücken ist in C /C++ nicht notwendig (anders ist es in Python) . Man kann sogar den ganzen Sketch in eine Zeile schreiben.
Ordentliches einrücken wie es STRG+T automatisch in der ArduinoIDE macht macht die Blockbildung mit {} besser sichtbar und man findet leichter Fehler bei denen Sketchteile in der falschen Bedingung hängen.
Es ging auch nicht ums einrücken als solches.
Aber wenn man immer mal wieder dafür sorgt, dass der Code durchformatiert wird, dann sieht man - so wie hier - dass Mensch sich vertan hat
@my_xy_projekt mein Post war nicht an Dich gerichtet sondern an den TO. Ich wollte Dich nur zitieren und die Sache besser erklähren.
War nicht achtsam.
Grüße Uwe