Forum: Mikrocontroller und Digitale Elektronik ESP8266 DigitalRead zeigt immer High an


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan (Gast)


Lesenswert?

Hallo,

als Einstieg wollte ich mit meinem ESP8266 und einem einfachen Taster 
eine LED zum leuchten bringen. Der digitalRead wirkt willkürlich. 
Manchmal wird beim Reset oder kurz nach dem Codehochladen 0 angezeigt 
und sobald der Taster gedrückt wurde, nur noch 1, egal ob gedrückt wird 
oder nicht. Meistens wird aber nur die ganze Zeit 1 angezeigt, egal ob 
ich den Schalter schließe oder nicht. Ich habe verschiedene Pins 
ausprobiert, sowie verschiedene Taster und habe auch die Taster-Jumper 
direkt ohne Taster verbunden, alles ohne Erfolg.

Hier mein Code:
int led = 12;
int taster = 14;
int stat = 0;

void setup() {

  Serial.begin(115200);
  pinMode(led, OUTPUT);
  pinMode(taster, INPUT);
}

void loop() {

  Serial.println(digitalRead(taster));

  if(digitalRead(taster)) {
    delay(400);
    digitalWrite(led, HIGH);
    delay(400);
    digitalWrite(led, LOW);
  }
  else digitalWrite(led, LOW);

}

Hier meine Schaltung: https://funduino.de/nr-06-taster-am-arduino

Vielen Dank für die Hilfe,
Gruß
Stefan

von Sascha W. (sascha-w)


Lesenswert?

Hallo,

die Pins haben keinen Pullup der standartmäßig aktiv ist. Benutze 
INPUT_PULLUP und schalte deinen Taster nach GND. Oder verwende einen 
externen Widerstand nach +3.3V oder GND je nachdem wie du den Taster 
anklemmst.

Sascha

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

es funktioniert leider immer noch nicht, die LED blinkt auch, obwohl ich 
die beiden Jumper nicht angeschlossen habe.
Code wurde nur in einer Zeile zu "pinMode(taster, INPUT_PULLUP);" 
geändert.
Schaltung siehe Bilder.

von Stefan ⛄ F. (stefanus)


Angehängte Dateien:

Lesenswert?

Deine Schaltung hat einen Pull-Down Widerstand, dessen oberes Ende in 
der Luft hängt. Verbinde mal die grün gezeichneten Löcher von deinem 
Steckbrett.

INPUT_PULLUP funktioniert so nicht, wenn schon muss es INPUT_PULLDOWN 
sein (falls der ESP dan kann, weiß ich jetzt nicht).

: Bearbeitet durch User
von Joachim B. (jar)


Lesenswert?

Stefan ⛄ F. schrieb:
> Verbinde mal die grün gezeichneten Löcher von deinem
> Steckbrett.

10-13 Kontakte nach rechts verschieben würde ja auch reichen

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Jetzt funktionierts....blöder Fehler....
Vielen Dank!

von Joachim B. (jar)


Lesenswert?

Stefan schrieb:
> ....blöder Fehler....

immerhin hast du nun eine Ahnung warum dort Farbe fehlt :)))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.