ESP8266ESP8266 - Einführung

Reedkontakt / Schalter abfragen

In diesem Artikel zeige ich Dir, wie Du den Zustand eines Schalters (Taster, Schalter oder auch Reedkontakt) auswerten kannst.

Bevor wir mit dem Aufbau der Schaltung und der Programmierung beginnen, hier zunächst die Liste der verwendeten Materialen:

Aufbau der Schaltung

Im ersten Schritt bauen wir uns nun unsere Schaltung auf dem Breadboard auf. Dabei verbinden wir 3,3V mit dem Button sowie mit dem digitalen Eingang D1. Zusätzlich müssen wir einen Pull-Down Widerstand verbauen, mit dem der Pin wieder auf LOW gezogen wird. Ich habe einen 10K-Ohm Widerstand mit GND und der geschalteten Seite des Buttons oder Reed-Kontakts verbunden.

Programmierung

int pinStatusGaragenTor = D1; 

void setup() 
{ 
  Serial.begin(115200); 
  pinMode(pinStatusGaragenTor, INPUT); 
} 

void loop() 
{ 
  if (digitalRead(pinStatusGaragenTor) == LOW) 
  { 
    Serial.println("Open"); 
  } 
  else 
  { 
    Serial.println("Closed"); 
  } 
}

Im Sketch wird in der Setup-Methode der pinMode auf Input (Eingabe) gesetzt. In der Loop-Methode fragen wir nun per digitalRead() den Zustand des Pins ab und können dann entsprechend reagieren. Im Beispiel erfolgen die Ausgaben per Serial Klasse.

Ich hoffe Dir gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

5 Gedanken zu „Reedkontakt / Schalter abfragen

  • Thomas

    Also einen DHT22 kann ich super betreiben, aber beim Schalter hört es anscheinend auf. Ich habe einfach einfach ein Kabel zum Test genommen und es zwischen 3v-Kontakt und D3 geführt. ganz einfach. aber es geht nicht. kannst Du helfen?

    Antwort
    • Matthias Korte

      Ja, das liegt vermutlich an einem noch fehlenden PullUp-Widerstand 🙁 Ich hatte den im Artikel völlig übersehen. Ich werde den Artikel spätestens zum Wochenende anpassen und ergänzen, dann klappts 🙂

      Antwort
  • Karl

    Öhm….

    Wenn er gegen Masse (0V) geschalten ist, ist es aber ein pull Down Widerstand, kein pull up.
    Oder verstehe ich das falsch?
    Es soll das Potential des IO Pins auf GND (0V) gezogen werden wenn der Taster nicht geschlossen ist.
    Also Pull-Down.

    Antwort
    • Matthias Korte

      Hallo Karl,

      natürlich vollkommen richtig, hier muss ein Pull-Down Widerstand verbaut werden! Ich habe den Artikel gerade aktualisiert, danke für Deinen aufmerksamen Hinweis!

      Viele Grüße,
      Matthias

      Antwort
  • Wie sieht es mit der Entprellung aus, wenn ich die Schaktung so aufbaue, erkennt der Sensor Signale, welche auch angeben wenn die Lokomotive noch gar nicht beim „Sensor“ ist?

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert