Digital Read

Hallo zusammen,

ich baue mir grade einen kleinen Controller zur Steuerrung. Dabei habe ich mir kleine Druckschalter gekauft. Diese Verfügen über zwei Anschlüsse. Einen setze ich auf 3.3V und den anderen an den jeweiligen Pin. Das ganze läuft über einen Nodemcu. Jetzt habe ich jedoch das Problem, dass per Digital Read die Werte sich nicht wieder zurück auf 0 Stellen. Soll heißen einmal gedrückt bleibt der Wert auf 1. Dies kann ich nur verändern, wenn ich das Kabel dann wieder auf GND ziehe. Erstaunlicherweise tritt dieses Problem nicht an Pin D8 auf. Dort funktioniert es wie es soll. Mache ich jetzt etwas falsch oder hat der Chip dort ein Problem? Das Problem tritt ebenfalls an mehreren Modellen mit dem ESP8266 Chip auf.

Hier mal ein Testcode, den ich zum isolieren des Problems genommen habe:

int schalter_pin_links = D7;
int schalter_pin_rechts = D8;
int schalter_links = 0;
int schalter_rechts = 0;

void setup() {
  Serial.begin(9600);
  pinMode(schalter_pin_links, INPUT);
  pinMode(schalter_pin_rechts, INPUT); 

}

void loop() {
  
    schalter_links = digitalRead(schalter_pin_links);   
    schalter_rechts = digitalRead(schalter_pin_rechts);   

      Serial.print(" Schalter Links: ");
      Serial.println(schalter_links);
      Serial.print(" Schalter Rechts: ");
      Serial.println(schalter_rechts);
    delay(400);
}

Ein Eingang mit Taster braucht zwingend einen Pullup oder Pulldown.
Diese kannst du mit pinMode() aktivieren, oder extern anbauen

Siehe auch: https://github.com/esp8266/Arduino/blob/master/doc/reference.md#digital-io

Okay, das wusste ich noch nicht. Über GND gezogen funktioniert es dann auch. Vielen Dank