Arduino Nano ESP32 - PC817 Optokoppler: 12V/24V DC-Eingangssignal überwachen
Viele Geräte, die in einer kleinen Hausautomatisierung oder einer netzunabhängigen Anlage landen, arbeiten bereits mit 12V oder 24V: ein Solarladeregler mit einer „Last ein“-Statusleitung, ein 12V-Klingeltransformator, eine Tor- oder Garagensteuerung, ein Sirenenausgang einer Alarmzentrale. Jedes davon direkt an einen Pin des Arduino Nano ESP32 anzuschließen, würde das Projekt sofort beenden. Ein PC817-Optokopplermodul sitzt dazwischen und überträgt die Information als Licht statt als Strom, sodass die Platine die Leitung beobachten kann, ohne sie jemals zu berühren. Meistens lautet die eigentliche Frage nicht „Liegt an diesem Leitungspaar eine Spannung an?“, sondern „Hat sich das Gerät tatsächlich eingeschaltet?“ - und dasselbe Bauteil beantwortet sie, denn die Leitung, die Sie beobachten, ist die Leitung, die das Gerät speist.
In dieser Anleitung lernen wir, wie man den PC817-Optokoppler mit dem Arduino Nano ESP32 verwendet. Im Detail lernen wir:
- Wie ein PC817-Optokoppler einen 12V- oder 24V-Stromkreis elektrisch vom Arduino Nano ESP32 getrennt hält.
- Welche der drei Modulvarianten - 3-5V, 12V oder 24V - zu dem Signal passt, das Sie beobachten möchten, und was schiefgeht, wenn Sie eine andere einsetzen.
- Wie man ein PC817-Optokopplermodul mit dem Arduino Nano ESP32 verdrahtet.
- Wie man in weniger als einer Minute herausfindet, ob das eigene Modul Active Low oder Active High liest, und den Sketch mit einer einzigen Konstante umstellt.
- Wie man das Modul parallel zu einem Gerät anschließt, damit die Platine erkennen kann, ob dieses Gerät gerade ein- oder ausgeschaltet ist.
- Wie man einen Sketch für den Arduino Nano ESP32 schreibt, der meldet, ob der isolierte Eingang Spannung führt.

Da der Nano ESP32 klein ist und WLAN an Bord hat, eignet er sich hervorragend für einen kleinen, ständig laufenden Monitor: Verstauen Sie ihn in einem 12V-Solarschrank oder neben einer Torsteuerung und lassen Sie ihn Ihrem Handy melden, ob der Tormotor wirklich angelaufen ist.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Sie kaufen ein Modul - dasjenige, dessen Eingangsspannung zu dem Signal passt, das Sie beobachten wollen. Der nächste Abschnitt klärt, welches das ist.
Über den PC817-Optokoppler
Der PC817, auch als Photokoppler oder Opto-Isolator verkauft, ist ein 4-poliges DIP-Bauteil, das zwei Dinge in einem Kunststoffgehäuse vereint: eine Infrarot-LED und einen Fototransistor, die sich über einen isolierenden Spalt gegenüberstehen. Fließt Strom durch die LED, schaltet ihr Licht den Fototransistor ein. Das Signal überquert den Spalt als Licht, niemals als Strom - genau deshalb bleiben die 12V- bzw. 24V-Seite und die Seite des Arduino Nano ESP32 elektrisch getrennt.
Ein PC817-Optokopplermodul ist dieser Chip bereits auf einer kleinen Platine montiert, mit ab Werk bestücktem Vorwiderstand, Schraubklemmen auf der isolierten Seite, einer Status-LED und Stiftleisten auf der Platinenseite. Dieser bestückte Widerstand ist der Grund, warum die Module in Varianten verkauft werden, und auch der Grund, warum für Sie nichts mehr zu berechnen bleibt.
| PC817-Optokoppler | |
|---|---|
| Gehäuse | 4-poliges DIP, Pin 1 durch einen Punkt oder eine Kerbe markiert |
| Durchlassspannung der Eingangs-LED | typisch etwa 1,2V, max. 1,4V |
| Durchlassstrom der Eingangs-LED | normaler Bereich 5-20mA, max. 20mA |
| Kollektor-Emitter-Spannung am Ausgang | max. 35V |
| Kollektorstrom am Ausgang | max. 50mA |
| Kollektor-Verlustleistung | 150mW |
| Isolationsspannung | 5000Vrms für 1 Minute |
| Stromübertragungsverhältnis (CTR) | 50% bis 600% je nach Rang |
| Schaltgeschwindigkeit | etwa 4us Anstieg, 3us Abfall |
| Betriebstemperatur | -30C bis +100C |
Funktionsweise
Die beiden Hälften des Moduls berühren sich nie. IN+ und IN- gehören zum externen 12V- oder 24V-Stromkreis. VCC, GND und OUT gehören zum Arduino Nano ESP32.
Wenn am mit OUT verbundenen Pin der interne Pull-up des Arduino Nano ESP32 aktiviert ist, ergeben sich folgende Messwerte:
- Das externe 12V- oder 24V-Signal ist VORHANDEN: Die interne LED leuchtet, der Fototransistor leitet, er zieht den Pin auf GND, und der Pin liest LOW.
- Das externe 12V- oder 24V-Signal FEHLT: Die LED ist dunkel, der Fototransistor sperrt, der Pull-up hält den Pin oben, und der Pin liest HIGH.
Der Messwert ist also invertiert: LOW bedeutet, dass die Leitung Spannung führt. Das ist für den Optokoppler selbst gesicherte Physik, und so verhalten sich die meisten Module. Einige Hersteller setzen jedoch eine invertierende Stufe auf die Ausgangsseite des Moduls, sodass OUT dem Eingang folgt, statt ihm entgegengesetzt zu sein - und nichts auf der Verpackung verrät, welche Variante Sie in der Hand halten. Weiter unten gibt es einen Ein-Minuten-Test dafür, und der Sketch lässt sich mit einer einzigen Konstante umstellen.
Die Massen getrennt halten
Die Isolation besteht nur, solange die beiden Massen getrennt bleiben. Verbinden Sie NICHT den Minuspol der 12V- oder 24V-Versorgung - die Leitung, die an IN- landet - mit dem GND des Arduino Nano ESP32. Wenn Sie sie verbinden, schaltet das Modul trotzdem und der Sketch gibt trotzdem das Richtige aus, sodass nichts falsch aussieht - aber der Spalt, der die Platine geschützt hat, ist weg, und ein Fehler auf der 24V-Seite hat nun einen direkten Weg in den Nano ESP32.
Die Ausgangsseite läuft mit 3,3V
Der Arduino Nano ESP32 ist eine 3,3V-Platine, und seine Pins sind nicht 5V-tolerant wie die eines klassischen ATmega-Arduino. Das spielt hier weniger eine Rolle, als es klingt, solange Sie zwei unabhängige Entscheidungen gedanklich auseinanderhalten:
- Welche Variante Sie kaufen, wird durch das zu beobachtende Signal bestimmt. Eine 24V-Statusleitung eines Solarreglers erfordert das 24V-Modul - und das gilt unabhängig davon, ob die auslesende Platine mit 3,3V, 5V oder etwas anderem läuft. Die Eingangsseite erfährt nie, welche Platine auf der anderen Seite des Spalts sitzt.
- Die Ausgangsseite des Moduls wird immer von dieser Platine versorgt. Ihr VCC kommt vom 3,3V-Pin des Nano ESP32 und ihr GND vom GND der Platine, egal welche Eingangsvariante Sie gekauft haben.
Die zweite Regel ist wichtig, weil der Fototransistor ein einfacher Schalter nach GND ist: Was auch immer die Eingangsseite führt - 12V, 24V - die höchste Spannung, die OUT jemals liefern kann, ist die, mit der seine Ausgangsseite versorgt wird. Kommt diese von 3,3V, ist der Pin konstruktionsbedingt sicher. Versorgen Sie VCC des Moduls stattdessen aus einer 5V-Schiene, liefert OUT 5V und belastet den Nano ESP32, obwohl die Eingangsseite völlig in Ordnung ist - die richtige Variante zu kaufen schützt Sie davor nicht, denn es sind getrennte Entscheidungen. Das Aktivieren des internen Pull-ups an D2 funktioniert aus demselben Grund: Er bezieht sich auf die eigene 3,3V-Schiene der Platine.
Welches PC817-Optokopplermodul brauche ich?
Das Modul wird mit bereits bestücktem Vorwiderstand geliefert, und jeder Widerstand ist nur für eine Eingangsspannung korrekt. Deshalb werden diese Platinen als drei separate Varianten verkauft. Hier wird nichts berechnet - Sie kaufen die Variante, die zu dem Signal passt, das Sie beobachten möchten.
| Zu beobachtendes Signal | Modulvariante | Typische Quellen |
|---|---|---|
| 3,3V- oder 5V-Logik | 3-5V-Modul | ein Sensorausgang, ein anderer Mikrocontroller, die Niederspannungs-Steuerplatine in einem Gerät |
| 12V DC | 12V-Modul | ein Ausgang einer Tor- oder Garagentorsteuerung, ein Klingeltransformator, Wohnmobil- und Kfz-Schaltungen |
| 24V DC | 24V-Modul | eine Statusleitung eines Solarladereglers, ein Ausgang einer Alarmzentrale, ein SPS-Ausgang |
Beide Arten, hier danebenzuliegen, sollten Sie vor der Bestellung kennen:
- Ein 12V-Modul an einer 24V-Leitung. Sein Widerstand wurde für 12V dimensioniert, daher fließt etwa der doppelte vorgesehene Strom durch die interne LED. Das Modul wird heiß, lässt nach und fällt schließlich aus. Das ist der Fehler, der Sie das Bauteil kostet.
- Ein 24V-Modul an einer 12V-Leitung. Jetzt wird die LED zu schwach angesteuert. Der Ausgang schaltet möglicherweise verspätet, nur manchmal oder überhaupt nicht - und Sie verbringen den Abend damit, dem Sketch die Schuld zu geben.
Die Wahl der Variante ist beim Modul das Gegenstück zur Dimensionierung eines Widerstands: eine einzige Kaufentscheidung, getroffen bevor irgendetwas verdrahtet wird, und die einzige, die hier wirklich zählt.
Überspringen Sie auch die 3-5V-Variante nicht, nur weil 3,3V und 5V Spannungen sind, die der Nano ESP32 direkt verarbeiten könnte. Ein Logikpegel-Signal verdient seine Isolation immer dann, wenn die beiden Schaltungen aus getrennten Versorgungen laufen, an entgegengesetzten Enden eines langen Kabels sitzen oder eine von ihnen elektrisch verrauscht ist - ein Motortreiber oder die Niederspannungs-Steuerplatine tief in einem netzbetriebenen Gerät. Bei Isolation geht es darum, den Massepfad zwischen zwei Schaltungen zu unterbrechen, nicht nur darum, eine hohe Spannung zu überstehen.
Schaltplan
Verdrahtung des PC817-Optokopplermoduls

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Schrauben Sie das externe 12V- oder 24V-Signal an die Klemme IN+ und die Masse desselben externen Stromkreises an die Klemme IN-. Auf der Platinenseite verbinden Sie VCC des Moduls mit 3,3V, GND mit GND und OUT mit Pin D2 des Arduino Nano ESP32. Es muss kein Widerstand hinzugefügt und nichts neu berechnet werden - die gewählte Variante hat bereits den richtigen an Bord. Module mit 2, 4 oder 8 Kanälen funktionieren genauso: ein Paar Eingangsklemmen und ein OUT-Pin pro Kanal, jeder Kanal für sich isoliert.
Das Modul parallel zum Gerät verdrahten, niemals in Reihe
Der obige Schaltplan geht davon aus, dass das 12V- oder 24V-Signal bereits auf einem freien Leitungspaar anliegt und nur darauf wartet, gelesen zu werden. In einer echten Installation ist das selten der Fall - das Signal ist die Leitung, die bereits etwas ansteuert, und diese Leitung ist belegt. Nehmen Sie eine 12V-Tor- oder Garagentorsteuerung: Die Steuerung schließt ihren Ausgang, 12V liegen am Leitungspaar zum Motor an, das Tor fährt. Die Aufgabe besteht darin, den Arduino Nano ESP32 diesen Moment sehen zu lassen, ohne etwas daran zu verändern. Die Leitung führt 12V, also ist das hier das 12V-Modul.
Der Eingang des Moduls wird ÜBER das Gerät geschaltet, also parallel dazu. Nichts wird durchtrennt, nichts wird umgeleitet, die bestehende Verdrahtung bleibt genau, wo sie ist - Sie hängen lediglich zwei zusätzliche Drähte an Klemmen, die bereits vorhanden sind:
- Die positive, geschaltete Klemme des Geräts → IN+ am Modul.
- Die negative Rückleiterklemme des Geräts → IN- am Modul.
In diesen Abgriff gehört kein Vorwiderstand. Der eigene Widerstand des Moduls liegt bereits im Pfad - genau deshalb muss die Variante zu der Spannung passen, mit der das Gerät läuft.
Was Sie nicht tun dürfen, ist das Modul in Reihe mit dem Gerät zu schalten. In Reihe müsste der gesamte Laststrom des Tormotors durch die interne LED fließen, und ein für 20mA ausgelegtes Bauteil würde in dem Moment zerstört, in dem die Steuerung auslöst. Parallel ist die einzig richtige Anordnung.
Über den Klemmen zieht der Abgriff etwa 10mA. Das ist nichts im Vergleich zu dem, was eine Relaisspule, ein Magnetventil, eine Lampe oder ein Motor aufnimmt, sodass die Torsteuerung genau wie zuvor weiterarbeitet - die Messung ist rein lesend und nicht-invasiv.
Zwei Details entscheiden darüber, ob der Abgriff seinen ersten Schaltzyklus übersteht:
- Die Polarität ist wichtig. Die Eingangsseite ist eine LED und leitet nur in eine Richtung. Vertauschen Sie IN+ und IN-, geht nichts kaputt, aber es funktioniert auch nichts - das Modul schaltet einfach nie ein, und seine Status-LED bleibt dunkel. Ermitteln Sie vor dem Verdrahten, welche Seite des Abgriffs die positive ist.
- Induktive Lasten brauchen eine Klemmdiode. Eine Relaisspule, ein Schütz, ein Magnet, ein Ventil oder ein Motor erzeugt beim Abschalten eine große Gegenspannungsspitze, und die Eingangs-LED des PC817 ist in Sperrrichtung nur für 6V ausgelegt. Setzen Sie eine gewöhnliche Diode antiparallel direkt über die Eingangsklemmen - Kathode der Diode an IN+, Anode der Diode an IN-. Im Normalbetrieb ist diese Diode in Sperrrichtung gepolt und tut überhaupt nichts; bei einer Spitze leitet sie und begrenzt die Sperrspannung auf deutlich unter ein Volt. Eine 1N4148 reicht für einen kleinen Abgriff, eine 1N4007 für einen stärkeren.
Eine Grenze sollten Sie im Kopf behalten: Der Eingang des PC817 ist eine einzelne LED, er reagiert also nur auf eine Polarität und ist das falsche Bauteil, um eine Wechselspannungsleitung zu erfassen - dafür braucht es einen Optokoppler, dessen Eingangsstufe zwei antiparallele LEDs enthält. Und wenn die abgegriffenen Klemmen zu einem Halbleiterausgang statt zu einem potentialfreien Kontakt oder einem Relais gehören, lesen Sie den Eintrag zum Leckstrom im Abschnitt Fehlerbehebung weiter unten, bevor Sie dem Messwert vertrauen.
Überwachen, ob die Torsteuerung tatsächlich ein- oder ausgeschaltet ist
Da der Abgriff über dem Gerät sitzt und nicht in dem Pfad, der es ansteuert, liest der Arduino Nano ESP32 den tatsächlichen Zustand des Geräts und nicht Ihre Absicht dafür. Jemand öffnet das Tor mit einem Handsender, und der Messwert folgt. Die Alarmzentrale steuert ihre Sirene selbstständig an, ohne jemanden zu fragen, und der Messwert folgt auch dem. Und wenn die Steuerung auslösen soll, an ihrem Ausgang aber nichts erscheint, bleibt der Messwert auf Ruhe - so erfahren Sie, dass das Tor nie angelaufen ist. Genau diese Lücke zwischen „ein Befehl wurde gesendet“ und „das Gerät ist tatsächlich gelaufen“ macht den Aufbau lohnenswert: Betriebsstundenzähler, Protokolle über Maschinenstillstandszeiten und eine über WLAN gesendete Warnung „Ist es tatsächlich angelaufen?“.
Seien Sie sich aber im Klaren darüber, was der Messwert wirklich bedeutet. Er sagt Ihnen, dass das Gerät unter Spannung steht, nicht dass es funktioniert - ein festgefressener Tormotor oder ein durchgebranntes Heizelement nimmt trotzdem Strom auf und wird trotzdem als eingeschaltet gemeldet.
Wenn Sie es lieber aus dem nackten Chip aufbauen

Der nackte 4-polige Chip und ein Widerstand ergeben dieselbe Schaltung ohne die Schraubklemmen - Sie übernehmen nur die Dimensionierung selbst. Halten Sie den Chip mit dem Punkt oder der Kerbe oben links und zählen Sie gegen den Uhrzeigersinn: Pin 1 Anode und Pin 2 Kathode bilden die Eingangs-LED, Pin 3 Emitter und Pin 4 Kollektor die Ausgangsseite. Das Signal über den Widerstand an Pin 1, Pin 2 ausschließlich zurück an die Masse des externen Stromkreises, Pin 3 an GND des Arduino Nano ESP32, Pin 4 an Pin D2. Dimensionieren Sie den Widerstand nach R = (Vin - 1.2) / 0.01, also etwa 10mA durch die LED: 220 Ohm bei 3,3V, 390 Ohm bei 5V, 1 kOhm bei 12V, 2,2 kOhm bei 24V - den letzten mit 1/2 W, die übrigen mit 1/4 W. Lassen Sie beim Wechsel von 12V auf 24V einen 1-kOhm-Widerstand eingesetzt, sieht die LED etwa 23mA, mehr als ihr Maximum von 20mA, und sie wird nachlassen und ausfallen: die Nacktchip-Version des Einsetzens der falschen Variante. Alles andere auf dieser Seite gilt unverändert.
Ist Ihr Optokopplermodul Active Low oder Active High?
Beide Arten sind im Handel, sie sehen auf dem Tisch identisch aus, und das Angebot, bei dem Sie gekauft haben, hat es mit ziemlicher Sicherheit nicht angegeben. Klären Sie es mit der Platine selbst, bevor Sie irgendeine Logik auf dem Messwert aufbauen:
- Verdrahten Sie das Modul wie oben und laden Sie den Sketch aus dem folgenden Abschnitt hoch, wobei die Eingangsklemmen vorerst spannungslos bleiben.
- Beobachten Sie einige Zeilen im Seriellen Monitor und notieren Sie, was er ausgibt, solange kein Signal am Eingang anliegt.
- Legen Sie Spannung an die Eingangsklemmen an. Die Status-LED auf dem Modul leuchtet immer dann, wenn seine Eingangsseite Strom zieht; nutzen Sie diese LED also zur Gegenprüfung - sie zeigt Ihnen, dass der Eingang tatsächlich unter Spannung steht, egal was der Pin meint.
- Notieren Sie, was der Serielle Monitor jetzt ausgibt. Was erscheint, während die Status-LED leuchtet, ist der aktive Zustand Ihres Moduls.
Wenn die Ausgabe der LED folgt - Ruhe, während sie dunkel ist, vorhanden, während sie leuchtet - ist Ihr Modul Active Low und der Sketch ist bereits richtig. Verlaufen die beiden genau entgegengesetzt, invertiert Ihr Modul auf der Platine. Öffnen Sie den Sketch, setzen Sie MODULE_ACTIVE_LOW auf false und laden Sie ihn erneut hoch. Diese eine Konstante ist das Einzige, was sich ändert; die Verdrahtung ist in Ordnung, und den Rest des Codes kümmert es nicht.
Wie man den PC817-Optokoppler programmiert
- Verwenden Sie die auf der Platine aufgedruckte Pinbezeichnung. Der Aufdruck des Arduino Nano ESP32 lautet D0, D1, D2 usw., und diese Nummern sind nicht die rohen GPIO-Nummern des darunterliegenden ESP32-S3. Schreiben Sie im Sketch D2, nicht 2, und der Arduino-Core ordnet es für Sie dem richtigen GPIO zu.
- Setzen Sie diesen Pin mit pinMode() als Eingang mit internem Pull-up. Zum Beispiel Pin D2:
- Lesen Sie den Pin mit digitalRead().
- Wandeln Sie diesen Rohpegel über eine einzige Konstante in ein einfaches true oder false um, damit ein Modul, das umgekehrt liest, Sie nur eine einzige Änderung statt einer Neuschreibung kostet.
- Sparen Sie sich die Bibliothekssuche. Für den PC817 gibt es keine Bibliothek, und es wird auch keine benötigt - das ist gewöhnliches Lesen eines digitalen Eingangs.
Arduino Nano ESP32 Code - PC817-Optokoppler
Schnelle Schritte
Befolgen Sie diese Anweisungen Schritt für Schritt:
- Wenn Sie den Arduino Nano ESP32 zum ersten Mal verwenden, lesen Sie wie man die Umgebung für den Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Verdrahten Sie das Modul wie im obigen Modul-Schaltplan gezeigt mit dem Arduino Nano ESP32 und verwenden Sie die Variante, die zu Ihrem Signal passt: das 3-5V-Modul für ein Logikpegel-Signal, das 12V-Modul für eine 12V-Leitung, das 24V-Modul für eine 24V-Leitung.
- Prüfen Sie noch einmal, dass die Masse des 12V- oder 24V-Stromkreises nirgendwo in die Nähe des GND des Arduino Nano ESP32 kommt.
- Verbinden Sie den Arduino Nano ESP32 über das USB-Kabel mit Ihrem Computer.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Board Arduino Nano ESP32 und den zugehörigen COM-Port aus.
- Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie dann auf die Schaltfläche Upload.
- Öffnen Sie den Seriellen Monitor und schalten Sie das externe 12V- oder 24V-Signal ein und aus.
- Wenn diese Zeilen entgegengesetzt zur Status-LED des Moduls verlaufen, haben Sie die Active-High-Variante: Setzen Sie MODULE_ACTIVE_LOW auf false und laden Sie den Sketch erneut hoch.
Von hier aus lässt sich der Sketch leicht erweitern. Lassen Sie ihn ein Relais umschalten, wenn die isolierte Leitung Spannung führt, zählen Sie, wie oft eine Torsteuerung über Nacht auslöst, oder senden Sie den Zustand aus einem Solarschrank heraus über WLAN.
Fehlerbehebung
Wenn der Messwert dem externen Signal nicht folgt, gehen Sie diese Prüfungen durch:
- Nichts ändert sich jemals und die Status-LED leuchtet nie: Die Eingangsseite wird überhaupt nicht angesteuert. IN+ und IN- sind wahrscheinlich vertauscht - der Eingang ist eine LED und leitet nur in eine Richtung - oder die Variante passt nicht zur Leitung, da ein 24V-Modul an einem 12V-Stromkreis zu schwach angesteuert wird und möglicherweise nie schaltet. Beim nackten Chip bedeutet dasselbe Symptom, dass der Chip verkehrt herum eingesetzt ist; Pin 1 ist der neben dem Punkt oder der Kerbe.
- Der Messwert ist genau umgekehrt - Ruhe, während das Gerät läuft, vorhanden, während es aus ist: Nichts ist falsch verdrahtet. Sie haben eines der Module, die auf ihrer Ausgangsseite invertieren, sodass OUT dem Eingang folgt, statt ihm entgegengesetzt zu sein. Bestätigen Sie das anhand der Status-LED mit der Prüfung im Abschnitt „Ist Ihr Optokopplermodul Active Low oder Active High?“ oben, setzen Sie dann MODULE_ACTIVE_LOW im Sketch auf false und laden Sie ihn erneut hoch.
- Der Messwert bleibt auf vorhanden, selbst wenn die Eingangsklemmen abgeklemmt sind: Die Platinenseite ist falsch verdrahtet. Prüfen Sie, ob OUT wirklich an D2 und VCC an 3,3V liegt. Beim nackten Chip sind Pin 3 und Pin 4 vertauscht - der Emitter (Pin 3) gehört an GND und der Kollektor (Pin 4) an D2.
- Der Messwert flackert: Der interne Pull-up ist wahrscheinlich nicht aktiviert. Prüfen Sie, ob der Sketch INPUT_PULLUP und nicht einfach INPUT verwendet; ein schwebender Eingang driftet von selbst, genau wie bei einem Taster.
- Der Messwert kehrt nie in den Ruhezustand zurück: Das abgegriffene Gerät hat wahrscheinlich einen Halbleiterausgang - einen SPS-Transistorausgang, einen Triac-Ausgang, einen LED-Lampentreiber - und diese lassen auch im ausgeschalteten Zustand einen kleinen Leckstrom fließen. Genug Leckstrom lässt die interne LED teilweise leuchten, und die Platine meldet das Gerät noch lange als eingeschaltet, nachdem es aufgehört hat. Setzen Sie einen Ableitwiderstand von etwa 4,7 kOhm bis 10 kOhm parallel zum Eingang des Moduls, über IN+ und IN-, damit der Leckstrom über ihn statt über den Optokoppler abfließt.
- Das Modul wird warm, oder der Messwert wird über Wochen unzuverlässig: Die Eingangsspannung liegt über dem, wofür diese Variante gebaut wurde - typischerweise ein 12V-Modul, das an einer 24V-Leitung hängt. Setzen Sie stattdessen die 24V-Variante ein. Beim nackten Chip ist der Vorwiderstand zu klein; überprüfen Sie ihn anhand der Werte im Abschnitt zum nackten Chip.
- Sie brauchen die tatsächliche Spannung, nicht nur vorhanden oder nicht vorhanden: Ein Optokoppler meldet nur ein oder aus. Um einen Pegel zu lesen, siehe Arduino Nano ESP32 - Spannung messen.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.