Anfängeralarm. Digitale Pins - wie richtig verbinden?
Hallo Forum!
Ich bin erst vor kurzer Zeit auf NodeMCU gestoßen und habe mich etwas eingelesen.
Die Programmierung ist kein Problem, aber elektrotechnisch bin ich komplett unterbelichtet
und bräuchte etwas grundlegende Hilfe bei einem an sich ganz einfachen Projekt.
Ich habe ein Device (Details egal), an dem eine zweipolige Miniklinke hängt.
Der eine Pol GND, der andere Pol liefert je nach Zustand 0V (aus) oder 3V (an).
Ich möchte einfach nur mit einem der digitalen Pins des NodeMCU diesen Zustand auslesen.
Hab ganz viel gegoogelt und sehe vor lauter Schaltbildern und Pull-up-pull-down usw nicht
mehr durch und will natürlich nichts aus Versehen wegblasen.
Einfach an einen Pin und an GND des NodeMCU anschließen oder muss ich etwas beachten,
Widerstände dazwischen bauen oder sonst was...?
Zweiter Schritt:
Angenommen das besagte Device liefert nur 2,5V. Könnte knapp werden für ein HIGH am
NodeMCU, oder? Ich las HIGH wird ab etwa 2,475V erkannt... Was kann ich dazwischen hängen,
um eine eindeutigere Spannung zu erhalten? Ich lese immer nur was von Voltage Dividern, also
quasi das Gegenteil von dem, was ich hier brauche...
Der ADC ist übrigens keine Option, am Ende geht es nämlich um mehr als nur ein Device.
Vielen Dank für Eure Hilfe!
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Hannes,
vielen Dank für Deine ausführliche Antwort.
Den ersten Absatz verstehe ich, den letzten auch ;-)
Alles dazwischen ist vermutlich für meine Frage auch nicht so relevant bzw mir auch klar.
Ich habe einen technischen Beruf, ich weiß was das Ding tut, LOW, HIGH usw, ich weiß was digital
ist und wie man das Ding programmiert. Nur nicht, wie man es elektrotechnisch richtig verkabelt.
Dein erster Absatz scheint meine Frage zu beantworten, nur nochmal für mich Doofi zur Sicherheit.
Nehmen wir mal an ich habe ein 3V Netzteil. Das soll nichts betreiben externes betreiben und auch nicht
den NodeMCU. Ich will es einfach nur an den NodeMCU anschließen um zu gucken: Ist das Netzteil an oder aus?
Dann kann ich das ohne zusätzliche Bauteile so tun wie ich völlig dilletantisch aufgemalt habe?
Und Zusatzfrage: 3V, AN, klar, das gibt ein HIGH. Wenn es aber aus ist, 0V, gibt das dann bei der Verkabelung
ein LOW oder ist der Pin dann 'floating'....?
Anhang 33973
Liste der Anhänge anzeigen (Anzahl: 1)
Eine andere, einfache und sichere Lösung ist, den Ausgang deines Netzteils/Gerätes mit einem passenden Widerstand (ca. 500-1000 Ohm) an einen Optokoppler (ein ganz gewöhnlicher Typ 817 genügt) anzuschließen. Der Ausgang des Optokopplers wird (ebenfalls mit einem Widerstand, ca. 1000 Ohm) zwischen Input-Pin und GND des µC geschaltet.
Ist dein Netzteil eingeschaltet (3V), schaltet der Optokoppler durch, verbindet den Pin mit GND und zieht ihn auf low. Den Eingang programmierst du mit internem Pullup-Widerstand. Ist das Netzteil aus, wird der Pin damit auf high gezogen.
Vorteil dieser Lösung:
- Sie funktioniert auch, wenn deine Spannung des Netzteils geringer/höher ist als 3 V (ggf. brauchst du einen kleineren/größeren Widerstand am Optokoppler-Eingang).
- Die beiden Geräte sind stromtechnisch getrennt. Ein Kurzschluss im Netzteil, der plötzlich 230 V auf die Leitung bringt (oder irgendeine ähnliche Katastrophe), würde nur den Optokoppler zerstören, nicht aber den Mikrocontroller.
Und so sieht das aus:
Anhang 33974
Beachte:
- Zwischen GPIO-Pin und Optokoppler sollte noch ein Schutzwiderstand von 1000 Ohm.
- Hier steht 5 V, wo du 3 V hast und statt eines Mikrocontrollers wurde hier ein Raspberry Pi mit 3,3 Volt Spannung für die Pins verwendet das Prinzip ist aber identisch.