Arduino Mega - PC817-Optokoppler: 12V/24V-DC-Eingangssignal überwachen
Ein Arduino Mega hat 54 digitale Pins und ist damit das naheliegende Board, um es vor eine Schalttafel voller 12V-DC- und 24V-DC-Statusleitungen zu setzen - doch schon eine einzige dieser Leitungen direkt an einen Pin anzuschließen, würde das Board zerstören. Der PC817-Optokoppler ist das Bauteil, das dieses Problem löst: Er überträgt das Signal als Licht, sodass der Mega ein ganzes Rack industrieller Leitungen überwachen kann, ohne sie jemals elektrisch zu berühren. Und die Frage, die Sie eigentlich stellen, lautet selten „Liegt ein Signal an?“ - sondern „Läuft diese Pumpe, diese Heizung, diese Maschine gerade wirklich?“. Da der PC817 parallel zum Gerät abgreift statt in Reihe mit ihm, beantwortet er genau diese Frage, eine Maschine pro Pin. In dieser Anleitung behandeln wir:
- Was ein PC817-Optokoppler ist und warum das fertige Trennmodul in drei verschiedenen Eingangsspannungsversionen verkauft wird.
- Welche Version Sie für die zu überwachende Leitung brauchen und warum eine Schalttafel mit gemischten Spannungen mehr als ein Modul benötigt.
- Wie man ein PC817-Trennmodul mit dem Arduino Mega verdrahtet, wobei der nackte 4-Pin-Chip als optionaler Weg erhalten bleibt.
- Wie man das Modul parallel zu einer Lampe, einer Spule oder einem Motor anschließt, damit der Mega erkennt, ob dieses Gerät unter Spannung steht.
- Wie man herausfindet, ob Ihr Modul bei aktiver Leitung LOW oder HIGH meldet, und den Sketch mit einer einzigen Konstante umkehrt.
- Wie man den Arduino Mega programmiert, um einen galvanisch getrennten Digitaleingang zu lesen, und wie man dieselbe Idee auf mehrere Kanäle gleichzeitig erweitert.

Wir empfehlen:
- Das Tutorial Arduino Mega - Taster, denn das Lesen eines PC817 nutzt denselben Trick mit dem internen Pull-up wie das Lesen eines Tasters.
- Das Tutorial Arduino Mega - Endschalter, falls die zu überwachende 24V-DC-Leitung ein Schalter am anderen Ende eines langen Kabels ist.
- Das Tutorial Arduino Mega - Relais, da ein Relais das ausgangsseitige Gegenstück zu dem ist, was wir hier auf der Eingangsseite tun.
Benötigte Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den PC817-Optokoppler
Der PC817-Optokoppler, auch als Fotokoppler oder Opto-Isolator verkauft, steckt in einem 4-Pin-DIP-Gehäuse, wobei Pin 1 durch einen Punkt oder eine Kerbe markiert ist. Im Inneren befindet sich eine Infrarot-LED, die über eine isolierende Lücke hinweg einem Fototransistor gegenübersteht: Wenn Strom durch die LED fließt, schaltet ihr Licht den Transistor ein, sodass das Signal als Licht statt als Strom übertragen wird. Genau deshalb bleiben die beiden Seiten elektrisch getrennt, und deshalb kann eine industrielle 24V-DC-Leitung einen Pin des Arduino Mega steuern, ohne den Mega zu gefährden.
Das sind die Werte, auf die es beim Entwurf ankommt:
| Parameter | Wert |
|---|---|
| Gehäuse | 4-Pin-DIP |
| LED-Durchlassspannung (Vf) | etwa 1,2 V typisch, 1,4 V max. |
| LED-Durchlassstrom (If) | 20 mA Dauerstrom max., normaler Bereich 5-20 mA |
| Kollektor-Emitter-Spannung (VCEO) | 35 V max. |
| Kollektorstrom (IC) | 50 mA max. |
| Kollektor-Verlustleistung | 150 mW |
| Isolationsspannung | 5000 Vrms für 1 Minute |
| Stromübertragungsverhältnis (CTR) | 50% bis 600% je nach Klasse (A 80-160%, B 130-260%, C 200-400%, D 300-600%) |
| Schaltgeschwindigkeit | Anstieg etwa 4 us, Abfall etwa 3 us |
| Betriebstemperatur | -30 C bis +100 C |
Kaum jemand verdrahtet diesen Chip heute noch nackt, und bei einem Mega mit Dutzenden von Kanälen sollten Sie das auf keinen Fall tun. Stattdessen kaufen Sie ein PC817-Optokoppler-Trennmodul: denselben Chip auf einer kleinen Platine, auf der Vorwiderstand, Status-LED, Schraubklemmen für die getrennte Seite und eine Stiftleiste für die Mega-Seite bereits bestückt sind. Der Rest dieses Tutorials befasst sich mit diesem Modul, der nackte Chip bleibt als optionaler Weg gegen Ende erhalten.
Welches PC817-Optokopplermodul brauche ich?
Hier ist der Punkt, den die Produktangebote verschweigen. Der auf das Modul gelötete Widerstand wurde für eine bestimmte Eingangsspannung gewählt und kann nichts anderes sein, daher werden die Module als drei separate Varianten verkauft. Sie kaufen nicht „ein PC817-Modul“ - Sie kaufen das Modul, das zu der Leitung passt, die Sie überwachen wollen.
Gehen Sie von dieser Leitung aus rückwärts vor:
- Eine 24V-DC-Leitung - ein SPS-Ausgang, eine Maschinen-Statuslampe, eine Schützspule, ein Ventilmagnet: Nehmen Sie das 24V-Optokopplermodul. Das ist die Variante, die ein Mega vor einer Industrieschalttafel fast immer braucht.
- Eine 12V-DC-Leitung - Kfz-Verkabelung, Alarmzentralen, 12V-Lampen- und Hupenschaltungen: Nehmen Sie das 12V-Optokopplermodul.
- Ein 3,3V- oder 5V-Logiksignal - ein anderer Mikrocontroller, eine Sensorplatine, die Niederspannungs-Steuerplatine in einem netzbetriebenen Gerät: Nehmen Sie das 3-5V-Optokopplermodul.
Die falsche Variante ist der eine Kauffehler, der Sie Hardware oder einen Nachmittag kostet:
- Ein 12V-Modul an einer 24V-Leitung lässt etwa den doppelten vorgesehenen Strom durch seine interne LED fließen und beschädigt sie. Die Platine kann sich nicht selbst schützen - der Widerstand darauf ist für diese Spannung schlicht zu klein.
- Ein 24V-Modul an einer 12V-Leitung bewirkt das Gegenteil und steuert die LED zu schwach an. Nichts brennt durch, aber der Ausgang schaltet möglicherweise verspätet, nur manchmal oder gar nicht. Ein Kanal, der stillschweigend „inaktiv“ meldet, während die Maschine läuft, ist schlimmer als ein Kanal, der gar nichts meldet.
Mit einem Modul müssen Sie keine Widerstände berechnen. Die Wahl der Variante IST diese Berechnung – bereits für Sie durchgeführt und fest verlötet.
※ Notiz:
Die 3-5V-Variante ist in dieser Liste kein Außenseiter. Ein 5V-DC- oder 3,3V-DC-Signal lohnt sich zu trennen, wann immer die beiden Schaltungen aus getrennten Netzteilen versorgt werden, an entgegengesetzten Enden eines langen Kabels sitzen oder sich einen Schaltschrank mit etwas Störträchtigem wie einem Motortreiber teilen. Bei der galvanischen Trennung geht es darum, den Massepfad zu unterbrechen, nicht nur darum, eine hohe Spannung zu überstehen.
Mehrkanalmodule haben eine Variante für die ganze Platine
Hier tappt ein Mega-Projekt leicht in die Falle, denn der Mega ist genau das Board, für das man Mehrkanalmodule kauft. PC817-Trennmodule gibt es in Versionen mit 1, 2, 4 und 8 Kanälen, und die Spannungsvariante gilt für die gesamte Platine und nicht für jeden einzelnen Kanal: Ein 8-Kanal-24V-Modul besteht aus acht identischen 24V-Eingangsstufen. Niemand verkauft eine Platine mit sechs 24V-Kanälen und ein paar 5V-Kanälen, denn das würde zwei verschiedene Widerstände unter einer Artikelnummer bedeuten.
Wenn die Schalttafel vor dem Mega also gemischte Spannungen hat - etwa sechs 24V-DC-Statuslampen plus eine 5V-Logikleitung von einer Steuerung im selben Schrank - ist die Antwort nicht ein 8-Kanal-Modul. Die Antwort ist ein 8-Kanal-24V-Modul für die Lampen und ein separates 3-5V-Modul für die Logikleitung, die an verschiedenen Mega-Pins landen. Das klingt verschwenderisch, bis Sie sich daran erinnern, welches Board Sie in der Hand halten: Mit 54 digitalen Pins kostet es nichts außer Pins, die Sie ohnehin nie benutzt hätten, zwei oder drei Module nebeneinander zu betreiben, und es ist die einzige Möglichkeit, eine gemischte Schalttafel abzudecken, ohne einen Kanal zu schwach anzusteuern oder einen anderen zu grillen.
Schaltplan
Für diesen ersten galvanisch getrennten Kanal verwenden wir den Digitalpin 2 des Arduino Mega. Ein einzelner Kanal braucht nichts weiter als einen gewöhnlichen Digitalpin mit einem nutzbaren internen Pull-up, und Pin 2 ist beim Testen auf einem Breadboard leicht zu erreichen. Sobald Sie über einen Kanal hinausgehen, verlegen Sie die ganze Gruppe stattdessen in den dedizierten Digitalblock 22-53 des Mega - eine zusammenhängende Bank von 32 Allzweck-Pins entlang der Doppelstiftleiste -, was genau der Mehrkanal-Sketch weiter unten auf dieser Seite tut.
※ Notiz:
Die Masse des 12V-DC- / 24V-DC-Kreises darf NICHT mit GND des Arduino Mega verbunden werden. Die beiden Massen getrennt zu halten, ist der ganze Sinn des PC817-Optokopplers. Wenn Sie sie verbinden, schaltet der PC817 zwar weiterhin, aber die Trennung ist verloren, und ein Fehler auf der Industrieseite kann den Mega erreichen.
Verdrahtung des PC817-Optokoppler-Trennmoduls
Alles auf der linken Seite der folgenden Tabelle gehört zur getrennten Seite; alles auf der rechten Seite gehört zum Arduino Mega. Die beiden Schraubklemmen nehmen die Spannung auf, für die Ihre Variante gebaut wurde - das 24V-Modul braucht dort eine 24V-DC-Leitung, das 12V-Modul eine 12V-DC-Leitung -, und es gibt nichts zu berechnen, weil der Widerstand bereits auf der Platine sitzt.
| Modulklemme / Pin | Verbunden mit |
|---|---|
| IN+ (Schraubklemme) | der Signalleitung, mit der Spannung, für die Ihre Modulvariante gebaut ist |
| IN- (Schraubklemme) | nur der Masse dieses 12V-DC- / 24V-DC-Kreises |
| VCC (Stiftleiste) | Arduino Mega 5V |
| GND (Stiftleiste) | Arduino Mega GND |
| OUT / DO (Stiftleiste) | Arduino Mega Digitalpin 2 |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
※ Notiz:
Die Pinanordnung fertiger PC817-Trennmodule ist nicht standardisiert - sie variiert je nach Hersteller. Manche Platinen beschriften die Ausgangsleiste mit VCC / GND / OUT, andere verwenden DO oder OUT1..OUT8, und einige vertauschen die Reihenfolge der Schraubklemmen. Lesen Sie immer den Bestückungsdruck auf Ihrem eigenen Modul, bevor Sie es mit dem Arduino Mega verdrahten.
Bei einem Mehrkanalmodul gehen die Pins OUT1..OUTn einfach an aufeinanderfolgende Pins des Mega-Blocks 22-53 - 22, 23, 24 und so weiter -, während das einzelne VCC/GND-Paar die ganze Platine versorgt. Bevor Sie dem vertrauen, was diese Pins melden, lesen Sie den Abschnitt unten darüber, wie herum der Ausgang Ihres Moduls arbeitet: Das ist ein herstellerspezifisches Detail, kein kanalspezifisches.
Das Modul parallel zum überwachten Gerät anschließen
Die obige Tabelle geht von einem Signal aus, das bereits an einem Klemmenpaar anliegt. An einer echten Maschine haben Sie das selten. Was Sie haben, ist ein Gerät, das entweder unter Spannung steht oder nicht, und die Aufgabe besteht darin, dem Mega mitzuteilen, welcher Zustand vorliegt. Dazu legen Sie den Eingang des Moduls ÜBER das Gerät - parallel zu ihm.
※ Notiz:
Schalten Sie den Moduleingang niemals in Reihe mit dem Gerät. In Reihe wird der gesamte Laststrom der Lampe, Spule oder des Motors durch die interne LED des Optokopplers gezwungen, die für 20 mA ausgelegt ist - der PC817 wird in dem Moment zerstört, in dem das Gerät einschaltet. Die Eingangsseite ist ein Abgriff, der neben der Last sitzt, niemals ein Glied in der Kette, die sie versorgt.
Nehmen wir die Aufgabe, für die dieses Board gekauft wird: eine Schalttafel mit einer Reihe von 24V-DC-Statuslampen - RUN, FAULT, HEATER, PUMP - und ein Mega hinter der Tür, der protokollieren soll, welche davon leuchten. Sie setzen ein 24V-Modul mit so vielen Kanälen ein, wie es Lampen gibt, und jeder Abgriff besteht aus denselben drei Verbindungen:
| Abgriffpunkt | Verbunden mit |
|---|---|
| Geschaltete (+)-Klemme der Lampe | der IN+-Schraubklemme dieses Kanals |
| Rückleiter-(-)-Klemme der Lampe | der IN--Schraubklemme desselben Kanals |
| OUT-Pin dieses Kanals | einem Pin des Blocks 22-53 des Arduino Mega |
In diesem Abgriff gibt es keinen Widerstand. Das 24V-Modul trägt bereits den richtigen für eine 24V-Lampe, und genau deshalb musste die Variante passen. Was Sie dennoch wörtlich nehmen müssen, ist „desselben Kanals“: Vier Lampen bedeuten vier Schraubklemmenpaare und vier Mega-Pins, und Sie verbinden die IN--Klemmen verschiedener Kanäle nicht miteinander, um einen Draht zu sparen, denn jeder Abgriff behält den Massebezug der Lampe, zu der er gehört. Nur die Mega-Seite ist gemeinsam. Manche Mehrkanalplatinen führen ihre Eingangsmasse laut Bestückungsdruck tatsächlich zusammen - wenn Ihre das tut, ist sie nur dort verwendbar, wo alle abgegriffenen Lampen wirklich einen gemeinsamen Rückleiter haben. Auch wird in der Schalttafel nichts aufgetrennt oder umverlegt: Der Abgriff hängt über der vorhandenen Lampe und zieht etwa 10 mA, was im Vergleich zu dem, was eine Lampe, eine Schützspule oder ein Ventil ohnehin aufnimmt, nichts ist, sodass sich die Schalttafel genau wie zuvor verhält. Die Messung ist rein lesend.
Das macht die Messung auch ehrlich. Da der Abgriff der Lampe selbst folgt, meldet er den tatsächlichen Zustand des Geräts - auch wenn die SPS es einschaltet, während niemand hinschaut, und auch wenn die Maschine einen Einschaltbefehl erhält und nie anläuft. Betriebsstundenzähler, Stillstandsprotokolle und Warnungen wie „Ist die Pumpe tatsächlich angelaufen?“ ergeben sich daraus ganz von selbst.
Vier Details entscheiden, ob der Abgriff funktioniert:
- Polarität. Die Eingangsseite ist eine LED und leitet nur in eine Richtung. Vertauschen Sie IN+ und IN-, schaltet der Kanal nie ein - kein Schaden, nur eine Leitung, die für immer inaktiv meldet. Prüfen Sie vor dem Verdrahten, welche Klemme des Abgriffs positiv ist.
- Induktive Lasten brauchen eine Freilaufdiode. Eine Schützspule, ein Magnetventil, ein Relais oder ein Motor erzeugt beim Abfallen eine große Gegenspannungsspitze, und die Eingangs-LED des PC817 ist in Sperrrichtung nur für 6 V ausgelegt. Setzen Sie eine gewöhnliche Diode antiparallel direkt über die Klemmen IN+ und IN- - Kathode der Diode an IN+, Anode der Diode an IN-. Im Normalbetrieb ist sie in Sperrrichtung gepolt und tut nichts; bei einer Spitze leitet sie und begrenzt die Sperrspannung auf deutlich unter ein Volt. Eine 1N4148 eignet sich für einen kleinen Abgriff, eine 1N4007 für einen stärkeren.
- Halbleiterausgänge mit Leckstrom liefern Fehlmessungen. SPS-Transistorausgänge, Triac-Ausgänge und LED-Lampentreiber lassen oft auch im ausgeschalteten Zustand etwas Strom durch, und genug Leckstrom lässt die PC817-LED gerade so weit leuchten, dass es registriert wird. Das Symptom ist unverkennbar: Ein Kanal, der LIVE meldet und nie wieder auf inaktiv zurückgeht. Setzen Sie einen Ableitwiderstand von etwa 4,7 kOhm bis 10 kOhm über dieselben IN+ / IN--Klemmen, damit der Leckstrom über ihn statt über den Optokoppler abfließt.
- Nur Gleichspannung. Der PC817-Eingang ist eine einzelne LED und reagiert daher nur auf eine Polarität; er ist das falsche Bauteil zum Erfassen einer Wechselspannungsleitung, die einen Optokoppler braucht, dessen Eingangsstufe zwei antiparallele LEDs enthält.
Eine ehrliche Einschränkung sollten Sie im Hinterkopf behalten: Dies sagt Ihnen, dass das Gerät unter Spannung steht, nicht, dass es seine Aufgabe erfüllt. Ein festgefressener Pumpenmotor oder ein durchgebranntes Heizelement nimmt trotzdem Strom auf und wird am Mega trotzdem als LIVE angezeigt.
Optional: Denselben Eingang aus dem nackten Chip aufbauen
Wenn Sie lieber den rohen 4-Pin-DIP löten, statt eine Platine zu kaufen, bietet der Chip dieselbe Trennung ohne Widerstand, LED oder Klemmen. Die Pins 1 und 2 bilden die getrennte Seite: Pin 1 ist die Anode, die über einen Vorwiderstand von der überwachten Leitung gespeist wird, und Pin 2 ist die Kathode, die mit der Masse dieses Kreises verbunden wird und niemals mit dem Mega. Die Pins 3 und 4 bilden die Mega-Seite: Pin 3 ist der Emitter, verbunden mit Mega-GND, und Pin 4 ist der Kollektor, verbunden mit Digitalpin 2.

Der Widerstand ist das Teil, um das sich das Modul für Sie gekümmert hat. Dimensionieren Sie ihn mit R = (Vin - 1.2) / 0.01 für einen LED-Strom von 10 mA: 3,3V DC braucht 220 Ohm, 5V DC braucht 390 Ohm, 12V DC braucht 1 kOhm und 24V DC braucht 2,2 kOhm bei 1/2 W. Diesen Wert richtig zu wählen, ist beim nackten Chip die Entsprechung zur Variantenwahl - lässt man 1 kOhm eingebaut, wenn ein Abgriff von 12V auf 24V wechselt, fließen etwa 23 mA durch eine 20-mA-LED.
An Pin 4 wird kein externer Pull-up-Widerstand benötigt - der Sketch aktiviert den internen des Mega.
Optokopplermodul: Active-HIGH oder Active-LOW?
Das ist der eine Punkt, über den die meisten beim ersten Mal stolpern, und bei einem Mega können Sie diesen Fehler auf zweiunddreißig Pins gleichzeitig machen, also klären Sie ihn, bevor Sie irgendeine Logik schreiben.
Beim nackten Chip ist die Antwort durch die Physik festgelegt. Der Kollektor geht an einen Digitalpin des Mega, der durch seinen internen Pull-up-Widerstand hochgezogen wird. Das bedeutet:
- Externes 12V-DC- / 24V-DC-Signal VORHANDEN → LED an → der Transistor leitet → der Mega-Pin liest LOW
- Externes 12V-DC- / 24V-DC-Signal NICHT VORHANDEN → LED aus → der Transistor sperrt → der Mega-Pin liest HIGH
Beim nackten Chip liest eine aktive Leitung also LOW. Bei einem Modul ist das nur der häufigste Fall. Manche Hersteller setzen eine invertierende Stufe auf die Ausgangsseite, sodass der Pin stattdessen dem Eingang folgt, und beide Arten werden unter derselben Beschreibung „PC817-Optokoppler-Trennmodul“ verkauft, ohne dass das Angebot sie unterscheidet. Messen Sie Ihres, statt es anzunehmen.
Die Prüfung dauert weniger als eine Minute:
- Verbinden Sie einen Kanal mit Pin 2 und laden Sie den Einkanal-Sketch unten hoch - er gibt den rohen Pegel des Pins neben dem daraus abgeleiteten Zustand aus.
- Lassen Sie die Eingangsschraubklemmen unbeschaltet und lesen Sie ab, was der serielle Monitor ausgibt.
- Legen Sie das Signal an die Eingangsklemmen an und lesen Sie erneut ab.
- Der rohe Wert, der bei anliegendem Signal erscheint, ist der aktive Pegel Ihres Moduls. Ist er LOW, ist der Sketch bereits korrekt.
- Gleichen Sie das mit der eigenen Status-LED des Moduls ab. Diese LED leuchtet, wenn die Eingangsseite unter Spannung steht, sie ist also Ihre verlässliche Referenz: LED an und Pin auf LOW bedeutet Active-LOW, LED an und Pin auf HIGH bedeutet Active-HIGH.
Stellt sich Ihre Platine als Active-HIGH heraus, müssen Sie nichts neu schreiben. Beide Sketches auf dieser Seite enthalten ganz oben eine Konstante:
Setzen Sie sie auf false, und jeder Kanal der Platine folgt, denn die Ausgangsstufe ist für alle gleich. Prüfen Sie jedoch jede Platine separat - wenn Sie ein 24V-Modul und ein 3-5V-Modul am selben Mega betreiben, können sie sich leicht unterscheiden.
Wie man den PC817-Optokoppler programmiert
Für den PC817-Optokoppler wird keine Bibliothek benötigt. Es ist ganz normales Lesen eines Digitaleingangs, und es sind drei Schritte nötig.
- Schritt 1 - den Pin als Eingang mit dem eingebauten Pull-up-Widerstand konfigurieren, damit der Pin auf einem definierten HIGH liegt, solange die externe Leitung spannungslos ist:
- Schritt 2 - den rohen Pegel des Pins mit digitalRead() lesen:
- Schritt 3 - diesen rohen Pegel in „die externe Leitung ist aktiv“ umwandeln, mithilfe der Polaritätskonstante, damit derselbe Sketch zu beiden Modularten passt:
Der Vergleich von signalActive mit seinem Wert aus dem vorherigen Schleifendurchlauf ist alles, was Sie brauchen, um den Moment zu erfassen, in dem eine 24V-DC-Leitung ein- oder ausschaltet.
Arduino Mega Code für den PC817-Optokoppler
Dieser erste Sketch überwacht einen einzelnen galvanisch getrennten Kanal an Pin 2 und gibt nur dann eine Zeile aus, wenn sich der Zustand der externen Leitung ändert. Er meldet den rohen Pegel des Pins zusammen mit dem Zustand, wodurch er sich als der oben beschriebene Polaritätstest eignet.
Schnelle Schritte
Befolgen Sie diese Schritte nacheinander.
- Wählen Sie die Modulvariante, die zu Ihrer Eingangsspannung passt - 3-5V, 12V oder 24V -, oder dimensionieren Sie einen Vorwiderstand, wenn Sie den Weg mit dem nackten Chip gehen.
- Verdrahten Sie das PC817-Trennmodul wie im Schaltplan gezeigt mit dem Arduino Mega und halten Sie die 12V-DC- / 24V-DC-Masse von der Mega-GND fern.
- Verbinden Sie den Arduino Mega über ein USB-Kabel mit Ihrem Computer.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das richtige Board (Arduino Mega) und den richtigen COM-Port.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den Arduino Mega hochzuladen.
- Öffnen Sie den seriellen Monitor.
- Schalten Sie die externe 12V-DC- / 24V-DC-Leitung einige Male ein und aus.
- Sehen Sie sich das Ergebnis im seriellen Monitor an.
Wenn Ihr serieller Monitor raw=HIGH anzeigt, während die Status-LED des Moduls leuchtet, haben Sie eine Active-HIGH-Platine - setzen Sie MODULE_ACTIVE_LOW auf false und laden Sie erneut hoch.
Arduino Mega Code zur gleichzeitigen Ein/Aus-Überwachung mehrerer Geräte
Die 54 digitalen Pins des Mega sind der Grund, dieses Board für die Aufgabe zu wählen. Sobald Sie über einen einzelnen Kanal hinausgehen, lassen Sie Pin 2 hinter sich und verlegen die Gruppe in den Block 22-53, wo die Kanäle nebeneinander auf der Doppelstiftleiste liegen. Der folgende Sketch überwacht vier galvanisch getrennte Leitungen an den Pins 22, 23, 24 und 25 - vier Statuslampen, vier Schützspulen oder vier SPS-Ausgänge, gelesen über ein 4-Kanal-Modul der Variante, die diese Leitungen erfordern (ein 4-Kanal-24V-Modul für eine Reihe von 24V-DC-Lampen), oder über vier nackte PC817-Chips mit jeweils eigenem Vorwiderstand. Die Polaritätskonstante wird einmal deklariert und auf jeden Kanal angewendet, weil die Ausgangsstufe eines Moduls bei allen Kanälen gleich ist.
Schnelle Schritte
- Verbinden Sie OUT1 bis OUT4 des 4-Kanal-Moduls mit den Pins 22, 23, 24 und 25 des Arduino Mega.
- Verbinden Sie VCC des Moduls mit 5V und GND des Moduls mit GND des Mega.
- Verbinden Sie jedes Paar Eingangsschraubklemmen mit einer der vier zu überwachenden Leitungen, alle mit der Spannung, für die diese Modulvariante gebaut ist.
- Laden Sie den Code hoch und öffnen Sie den seriellen Monitor.
- Legen Sie nacheinander Spannung an die Leitungen an und beobachten Sie, wie sich die Übersicht ändert.
Zusätzliches Wissen
Warum spielt die Pinanzahl beim Trennen von Eingängen eine so große Rolle? Weil sich galvanische Trennung nicht so skalieren lässt wie ein Bus. Ein I2C-Sensor liefert Ihnen ein Dutzend Messwerte über zwei Drähte, aber jede getrennte Leitung bedeutet einen PC817-Optokoppler und einen eigenen Digitalpin - es gibt bewusst keine gemeinsame Nutzung, da diese die Trennung aufheben würde. Eine 24V-DC-Schalttafel mit acht Statusleitungen braucht acht Pins, Punkt.
Genau hier hebt sich der Arduino Mega von kleineren Boards ab. Die Pins 22 bis 53 bilden einen durchgehenden 32-Pin-Block entlang der Doppelstiftleiste, physisch einander gegenüber angeordnet, sodass ein Flachbandkabel von einem 8-Kanal-PC817-Trennmodul direkt auf aufeinanderfolgende Pins passt, ohne Kabelsalat aus Jumperdrähten. Sie können vier solcher Module betreiben und haben immer noch Pins für eine Relaisplatine und ein Display übrig.
Drei praktische Hinweise, wenn Sie über einen Kanal hinauswachsen:
- Planen Sie Ihre Pinblöcke nach Spannung, denn die Module zwingen Sie dazu. Ein 24V-Modul und ein 12V-Modul sind unterschiedliche Produkte, eine gemischte Schalttafel braucht also von jedem eines - legen Sie fest, welche Pins zu welcher Platine gehören, solange es noch eine Zeichnung ist, nicht erst, wenn die Verdrahtung im Kabelkanal liegt.
- Prüfen Sie die Polarität jeder Platine, die Sie hinzufügen, nicht nur der ersten. Zwei Module, die im Abstand von Monaten gekauft wurden, können sich unterschiedlich verhalten, und genau diese Art von Fehler sieht eine Stunde lang wie ein Verdrahtungsfehler aus.
- Der PC817 schaltet in wenigen Mikrosekunden und bremst daher nichts aus. Langsam sein kann ein mechanischer Kontakt am anderen Ende der getrennten Leitung - ein prellendes Relais oder eine prellende Schützspule. Wenn Ihre Zählwerte zu hoch erscheinen, wenden Sie dieselbe Software-Entprellung an, die Sie für einen Taster oder einen mechanischen Schalter verwenden würden.
Typische Anwendungen für diese Schaltung an einem Mega sind die gleichzeitige Überwachung mehrerer 24V-DC-SPS-Ausgänge oder „Betrieb“/„Störung“-Lampenleitungen an einer Maschinenschalttafel sowie die Erkennung, ob eine 12V-DC- oder 24V-DC-Schütz- oder Magnetspule tatsächlich unter Spannung steht - worauf Sie dann mit einem Relais reagieren oder was Sie zusammen mit einem Türsensor am selben Board protokollieren können. Sobald die Abgriffe angebracht sind, ist der obige Sketch nur einen Schritt von dem entfernt, was man sich von einer Schalttafel tatsächlich wünscht: ein Betriebsstundenzähler für jede Maschine, eine Warnung, wenn die Pumpe eingeschaltet werden soll, ihre Lampe aber nie aufleuchtet, und ein Stillstandsprotokoll, das zeigt, welche Zelle der Linie ihre Schicht mit Warten verbringt.
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.