Mit einem Relais schaltet dein Arduino Dinge, die er selbst nie berühren dürfte: eine Pumpe an 24 V, eine Lampe am Stromnetz, die Heizung im Terrarium. Das Relais trennt beide Welten galvanisch. Zwischen der Spule auf der Steuerseite und den Kontakten auf der Lastseite gibt es keine elektrische Verbindung, nur ein Magnetfeld und einen Anker. Dafür verlangt die Spule mehr Strom, als ein Pin liefern kann, und sie wehrt sich beim Abschalten mit einer Spannungsspitze.
Wie die Transistorstufe für eine Relaisspule grundsätzlich funktioniert, steht unter NPN-Transistor als Low-Side-Schalter. Hier geht es um das Ganze: ein gängiges 5-V-Relais am Arduino Uno, die Lastseite, den ESP32 und die fertigen Relaismodule mit ihren Eigenheiten.
Schaltplan
- K1, SRD-05VDC-SL-C: das verbreitete blaue 5-V-Relais. Spule 70 Ω, Kontakt als Wechsler (COM, NO, NC) für 10 A bei 250 V~ oder 30 V=.
- T1, BC337-40: schaltet die Spule gegen Masse. Ein Pin allein schafft die 71 mA nicht.
- R1, 2,7 kΩ: Basiswiderstand. R2, 10 kΩ: hält T1 beim Booten gesperrt.
- D1, 1N4148: Freilaufdiode, Kathode an +5 V. Sie nimmt den Spulenstrom beim Abschalten auf.
- F1, 2 A träge: schützt die Leitungen auf der Lastseite. Ohne Sicherung brennt bei einem Kurzschluss im Gerät die Leiterbahn auf der Relaisplatine ab.
- Last: hier ein Verbraucher am 230-V-Netz zwischen L und N, geschaltet über COM und NO.
So funktioniert die Schaltung
Setzt das Programm D7 auf HIGH, fließt Basisstrom, T1 sättigt, und an der Spule liegen gut 4,8 V. Der Strom baut ein Magnetfeld auf, das den Anker anzieht: COM wechselt von NC zu NO, die Last bekommt Strom. Das dauert beim SRD-05 bis zu 10 ms. Mehr Spannung als nötig schadet nicht; der Hersteller garantiert das Anziehen ab 75 % der Nennspannung, also ab 3,75 V.
Geht D7 auf LOW, sperrt T1. Die Spule will ihren Strom von 71 mA aber nicht abrupt aufgeben (Induktion). Ohne D1 würde die Spannung am Kollektor so weit steigen, bis der Strom irgendwo weiterfließen kann, im Zweifel durch den Durchbruch des Transistors. Mit D1 fließt er im Kreis durch Spule und Diode weiter und klingt langsam ab. Der Kollektor steigt dabei nur auf etwa 5,7 V. Der Anker fällt ab, sobald der Strom auf etwa ein Zehntel gesunken ist.
Der Kontakt arbeitet völlig unabhängig von der Steuerseite. Er darf Wechselspannung, Gleichspannung oder ein Audiosignal schalten, solange Strom und Spannung in seinem Rahmen bleiben.
Dimensionierung
1. Spulenstrom. Mit 70 Ω Spulenwiderstand an 5 V:
Das ist fast doppelt so viel, wie ein Pin des ATmega328P als absolute Grenze verträgt (40 mA). Ein Transistor ist Pflicht. Die 71 mA kommen aus dem 5-V-Pin des Uno; an USB stehen dort etwa 500 mA zur Verfügung, abzüglich des Bedarfs des Boards.
2. Basiswiderstand. Mit hFE,min = 200, dem Übersteuerungsfaktor 4 und dem Strom durch R2 (Rechenweg wie im Artikel zum Low-Side-Schalter):
Der nächstkleinere E12-Wert ist 2,7 kΩ. Durch R1 fließen dann 1,56 mA, in die Basis knapp 1,5 mA.
Transistor als Schalter
- Kollektorstrom
- 100 mA
- Nötiger Basisstrom
- 3 mA
- Rechnerisch
- 867 Ω
- Nimm (E12, abgerundet)
- 820 Ω
- Basisstrom damit
- 3,17 mA
- Übersteuerung damit
- 3,2
- Verlust im Transistor
- 32,2 mW
- Belastung des Pins
- 3,17 mA bei 3,3 V
IB = ü · IC / hFE,min und RB = (USt − UBE) / IB, abgerundet auf E12, damit eher etwas mehr Basisstrom fließt. Der Übersteuerungsfaktor ü treibt den Transistor sicher in die Sättigung: hFE sinkt bei großem Strom, in der Kälte und im gesättigten Betrieb. Verlust im Transistor P = UCE(sat) · IC + UBE · IB, nur im eingeschalteten Zustand ohne Schaltverluste. Vorgaben 2N2222A: hFE ≥ 100 bei 150 mA; UCE(sat) ≤ 0,3 V bei 150 mA, ≤ 1 V bei 500 mA (Datenblatt). Ein Pull-down RPD (10 bis 100 kΩ) hält den Transistor gesperrt, solange der Pin beim Start noch offen ist.
3. Grenzwerte. T1 setzt mit 0,2 V Sättigungsspannung 0,2 V · 71 mA ≈ 14 mW um, erlaubt sind 625 mW. Gesperrt sieht er höchstens 5,7 V, erlaubt sind 45 V. D1 führt beim Abschalten kurz 71 mA; die 1N4148 verträgt dauerhaft 200 mA.
4. Kontakte und Last. Die 10 A auf dem Relais gelten für ohmsche Last. Schwierige Lasten brauchen Reserve:
- LED-Lampen und Netzteile ziehen beim Einschalten für wenige Mikrosekunden zweistellige Ampere, um ihre Kondensatoren zu laden. Die Kontakte können dabei verschweißen. Ein Relais für 16 A mit Einschaltstromangabe ist die sichere Wahl.
- Motoren und Magnetventile an Gleichspannung ziehen beim Öffnen einen Lichtbogen, der bei Gleichstrom nicht von selbst erlischt. Halbiere hier die zulässige Last, und setze auch auf der Lastseite eine Freilaufdiode direkt an die Last.
- Relaismodule haben schmale Leiterbahnen und knappe Abstände. Mehr als 5 A ohmsche Last solltest du ihnen nicht zumuten.
Für eine 230-V-Last mit 300 W fließen 300 W / 230 V ≈ 1,3 A: F1 mit 2 A träge passt.
Code
const int RELAIS = 7; // D7 → R1 → Basis T1
void setup() {
digitalWrite(RELAIS, LOW); // erst Pegel setzen, dann Ausgang
pinMode(RELAIS, OUTPUT);
}
void loop() {
digitalWrite(RELAIS, HIGH); // Pumpe 10 s an
delay(10000);
digitalWrite(RELAIS, LOW); // 50 s aus
delay(50000);
}
Schalte ein Relais nicht im Takt einer PWM. Der Anker ist zu träge, und die Kontakte überleben laut Datenblatt nur etwa 100 000 Schaltspiele unter Last.
Bauteilliste
| Bezeichner | Wert/Typ | Hinweis |
|---|---|---|
| K1 | SRD-05VDC-SL-C | 5 V, 70 Ω; Kontakt 10 A 250 V~ / 30 V= |
| T1 | BC337-40 | 800 mA, 45 V; Anschlüsse C-B-E |
| R1 | 2,7 kΩ | am ESP32: 1,5 kΩ |
| R2 | 10 kΩ | Basis nach Masse |
| D1 | 1N4148 oder 1N4007 | Kathode an +5 V |
| F1 | 2 A träge, 5 × 20 mm, mit Halter | an die Last anpassen |
Varianten
Am ESP32. Die Spule bleibt an 5 V (vom USB-Anschluss oder dem VIN-Pin), denn ein 5-V-Relais zieht an 3,3 V nicht sicher an: 3,3 V liegen unter der Anzugsspannung von 3,75 V. Der Low-Side-Schalter braucht an der Basis ohnehin nur 0,8 V, also genügt der 3,3-V-Pin. Nur R1 ändert sich: (3,3 V − 0,8 V) / 1,5 mA ≈ 1,67 kΩ, gewählt 1,5 kΩ.
Fertiges Relaismodul. Die verbreiteten Module enthalten Transistor, Diode und oft einen Optokoppler:
Zwei Dinge musst du dazu wissen. Erstens ist der Eingang aktiv low: Der Arduino zieht IN nach Masse, damit Strom durch die LED des Optokopplers fließt. HIGH heißt aus. Zweitens trennt der Optokoppler nur dann wirklich, wenn du die Brücke zwischen VCC und JD-VCC abziehst: Dann versorgst du JD-VCC und GND aus einem eigenen Netzteil und verbindest vom Arduino nur VCC und IN. Am ESP32 wird es knapp: Bei vielen Modulen liegt eine Anzeige-LED (etwa 2 V) in Reihe mit der LED des Optokopplers (etwa 1,2 V). An 3,3 V bleibt für den Widerstand kaum etwas übrig, das Modul schaltet unzuverlässig. Nimm Module, die ausdrücklich für 3,3 V ausgelegt sind.
Schneller abfallen. Die Freilaufdiode verlängert die Abfallzeit, weil der Strom langsam abklingt. Eine Z-Diode mit 12 V in Reihe zu D1 lässt den Kollektor auf 5 V + 12 V + 0,7 V ≈ 17,7 V steigen; der Strom bricht dann viel schneller zusammen. Der BC337 verträgt das. Mehr dazu unter Induktive Lasten schnell abschalten.
Ohne Mechanik. Für häufiges Schalten oder lautloses Arbeiten nimmst du ein Halbleiterrelais; für Gleichstromlasten genügt oft ein MOSFET als Low-Side-Schalter.
Typische Fehler
- Relais klickt, Arduino startet neu: Der Einschaltstrom der Spule oder Störungen vom Lastkreis lassen die 5 V einbrechen. Einen Elko mit 100 µF an die Relaisversorgung, die Lastleitungen weit weg von den Signalleitungen führen.
- Diode verpolt: Sie schließt die Versorgung über T1 kurz, sobald er einschaltet. T1 wird heiß oder stirbt, das Relais zieht nicht an.
- Modul schaltet „falsch herum“: Der Eingang ist aktiv low. Im Programm umdrehen und vor
pinModeden Pin auf HIGH setzen, sonst klickt das Relais beim Start kurz. - Kontakte kleben: Einschaltstrom der Last zu hoch, typischerweise bei LED-Lampen und Schaltnetzteilen. Größeres Relais oder Einschaltstrombegrenzung.
- Relais zieht am ESP32 nicht an: Spule an 3,3 V statt 5 V, oder ein 5-V-Modul ohne eigene Versorgung an JD-VCC.
Selbsttest
Warum kann ein Arduino-Pin das SRD-05 nicht direkt schalten?
Die Spule braucht 71 mA, ein Pin verträgt höchstens 40 mA.
Was passiert beim Abschalten ohne Freilaufdiode?
Die Spule erzeugt eine hohe Spannungsspitze am Kollektor, die den Transistor durchbrechen und zerstören kann.
Welche Spannung erreicht der Kollektor mit Freilaufdiode?
Etwa 5 V + 0,7 V = 5,7 V.
Warum funktioniert ein 5-V-Relais nicht zuverlässig an 3,3 V?
Es zieht laut Datenblatt erst ab 75 % der Nennspannung sicher an, also ab 3,75 V.
Wozu dient die Brücke JD-VCC auf einem Relaismodul?
Sie verbindet die Spulenversorgung mit VCC. Ziehst du sie ab und versorgst die Spule getrennt, trennt der Optokoppler Arduino und Relaisseite galvanisch.