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.

 

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.

4 Gedanken zu „Reedkontakt / Schalter abfragen

  • 18. September 2018 um 20:36
    Permalink

    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
    • 19. September 2018 um 6:35
      Permalink

      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
  • 27. Dezember 2018 um 22:56
    Permalink

    Ö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
    • 30. Dezember 2018 um 19:25
      Permalink

      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

Schreibe einen Kommentar

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

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere