mikrocontroller.net

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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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:

Bewertung
0 lesenswert
nicht 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:

Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Jetzt funktionierts....blöder Fehler....
Vielen Dank!

von Joachim B. (jar)


Bewertung
0 lesenswert
nicht 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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.

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