Relais Modul mit Arduino ansteuern

Relais

Relais Modul mit Arduino ansteuern

Kategorien: Arduino

RelaisEin Relais ist im Bereich Hausautomation, dem Internet of Things, eines der wichtigsten Elemente.
Es ist ein elektronisch angesteuerte Schalter, der einen viel größeren Strom fließen lassen kann, als es technisch von einem Mikrocontroller aus möglich wäre.

Wollen wir beispielsweise eine Schreibtischlampe über einen Arduino ein- oder ausschalten, so schalten wir mit einem kleinen Steuerstrom das Relais, welches dann den Stromkreis der Schreibtischlampe schaltet.

Wie auch ein Optokoppler, ist es ein Bauteil, welches unterschiedliche Stromkreise galvanisch voneinander trennen kann.

Eine galvanische Trennung ist sehr wichtig, wenn man Geräte in einem Stromkreis ansteuern möchte, dessen Stromspannung sehr hoch ist.
In erster Linie für das eigene Leben, denn ab 50V Wechselspannung (AC) oder 120 V Gleichspannung (DC) kann es für einen erwachsenen Menschen lebensgefährlich werden. (Bei Kindern gilt jeweils der halbe Wert.)

Außerdem sind natürlich auch die restlichen Bauteile nicht für so hohe Spannungen ausgelegt und würden sofort zerstört werden.

Um ein Relais anzusteuern braucht es nicht viel. Wir brauchen lediglich einen Transistor, zwei Widerstände und eine Diode.
Damit bauen wir eine Transistorschaltung auf, um den Schaltstrom des Mikrocontrollers so weit zu verstärken, dass dieser kräftig genug ist, es sauber schalten zu können.

Die Diode wird als Schutz-, oder auch Freilaufdiode genannt, eingesetzt.
Sie schützt die Schaltkontakte  und die elektronischen Bauteile, insbesondere den Transistor vor einer möglichen Überspannungsspitze beim Abschalten des Relais.

An dieser Stelle gehe ich nicht weiter darauf ein, warum das so ist. Wer es aber detailliert wissen möchte, der sollte unter dem Stichwort Freilaufdiode und elektromagnetischer Induktion nachlesen.

Es gibt für den Arduino und den Raspberry Pi schon fertige Boards, auf denen so ein Relais auf einfachste Weise angesteuert werden kann.
Und, je nach Umfang, gibt es diese auch mit bis zu 16 Stück pro Karte.

Die hier verwendete 1 Kanal Relaiskarte 5V/230V könnt Ihr günstig über unseren Shop beziehen.

 

1 Kanal Relaiskarte 5V/230V

Unsere hier benutzte Karte hat ein Relais verbaut und veranschaulicht so gut den elektronischen Aufbau.

1 Kanal-Relaiskarte

Bild anklicken zum Vergrößern

Wir sehen hier auf der linken Seite den Ausgang – also der Stromkreis, der vom Controller aus angesteuert werden soll, mittig das blaue Relais und auf der rechten Seite sehen wir von Oben nach Unten drei Widerstände, einen Transistor und eine Diode, so wie eine rote und eine grüne LED und die drei Anschlüsse, die an den Mikrocontroller angeschlossen werden.

Ohne die LEDs würden noch zwei Vorwiderstände wegfallen und übrig bleibt der Transistor, ein Widerstand und die Freilaufdiode zur Ansteuerung des Relais.

Auf dem Relais ist aufgedruckt, welche Lasten es maximal schalten kann.
Wir können damit also maximal 10 A  unter 250 VAC (Wechselspannung) oder 30 VDC (Gleichspannung) schalten.

 

1 Kanal-Relaiskarte

Bild anklicken zum Vergrößern

Auf der Unterseite sehr schön zu erkennen ist, dass hier die Sicherheitsabstände so weit stimmen.

Auf der rechten Seite ist der Ausgang. Da hier ja bis zu 10 A fließen können, müssen die Leiterbahnen entsprechend dick sein um nicht durch Überlast zu schmelzen.
Da der mittlere Kontakt – dieser schaltet ja das Relais – in den Niedervoltbereich reicht, wurde dieser Bereich mittels Ausfräsen der Platine geschützt, damit im schlimmsten Falle die hohe Spannung nicht überspringen kann.
Dies macht man meist um entweder die Sicherheit zu erhöhen, oder wenn der Sicherheitsabstand zwischen den unterschiedlichen Stromkreisleiterbahnen nicht eingehalten werden kann.

Achtet gut darauf, wenn Ihr billige Karten kauft, denn sonst spielt Ihr mit Eurem Leben.

 

Mit dem Arduino verbinden

 

1 Kanal-Relaiskarte

Zum Vergrößern Bild anklicken

An den Kontakten auf der rechten Seite zwischen den beiden LEDs verbinden wir den GND-Anschluss mit dem GND-Anschluss des Arduinos, um einen gemeinsamen Massepunkt zu erzeugen.

Den VCC-Anschluss verbinden wir mit dem 5V-Ausgangspin des Arduinos, um die Schaltung dauerhaft mit Spannung zu versorgen.

Je nachdem, welches Relais auf Eurer Karte verbaut ist, kann es sein, dass es schaltet, wenn an dem Anschlusspin “IN” GND anliegt, oder wenn auf dem Pin “+5V” anliegt.

Um herauszubekommen, ob Ihr später das Relais mit “LOW” (GND), oder mit “HIGH” schalten könnt, verbindet den Pin “IN” zuerst mit dem “GND” am Arduino, dann an “+5V”.

 

Relais Check

Zum Vergrößern Bild anklicken

So sieht der Testaufbau aus. Das gelbe “IN”-Kabel können wir bequem in die +5V-Schiene, oder in die GND-Schiene stecken.

 

Relais Check

Zum Vergrößern Bild anklicken

An “Pin 1” und “Pin 2” schließen wir ein Multimeter an und stellen es auf “V” um die Spannung zu messen.
Das gelbe “IN”-Kabel steckt in “+5V”. Es schaltet nicht, die grüne Kontroll-LED bleibt aus und das Multimeter bleibt auch auf 0.

 

Relais Check

Zum Vergrößern Bild anklicken

Wir haben das “IN”-Kabel jetzt mit der Masse (GND) verbunden. Es zieht hörbar mit einem Klicken an, die grüne Kontroll-LED leuchtet auf und der Wert auf dem Display des Multimeters steigt langsam an. Die beiden Kontakte sind also geschlossen.

 

Funktionsweise

 

1 Kanal-Relaiskarte

Zum Vergrößern Bild anklicken

Im nicht geschalteten Zustand sind die untere und die mittlere der drei linken Schrauben  miteinander verbunden (siehe Foto).
Sobald aber ein Signal anliegt und das Relais durchgeschaltet ist, werden die obere und die mittlere Schraube verbunden.

Auf der Rückseite der Relaiskarte ist dies auch wunderschön mit dem Schaltsymbol des Relais abgebildet:

Relaiskarte

Zum Vergrößern Bild anklicken

Nicht geschaltet sind hier der mittlere und der untere Pin, geschaltet würde die Mitte nach Oben springen und somit wäre die Mitte und Oben geschaltet.

Es handelt sich hierbei um ein so genanntes Wechsler-Relais.
Es ist eigentlich genau das gleiche wie ein normales Schließer-Relais, wenn man einen der beiden Kontakte (unterer, oder oberer) sowieso nicht nutzen würde.
Aber so ist es möglich, beispielsweise einen Stromkreis zu unterbrechen und einen anderen gleichzeitig einzuschalten.

Mit einem einzigen Schließer-Relais ist das nicht machbar.

 

Lampe einschalten

Wollen wir nun beispielsweise eine Lampe, die dauerhaft Aus ist, einschalten, so müssen wir die Lampe an einer Leitung unterbrechen und das Relais-Modul mit dem unteren und dem mittleren Pin verbinden.

Somit ist gewährleistet, dass kein Strom fließt, so lange Ihr nicht via Mikrocontroller einen Steuerimpuls an das Relais-Modul sendet und dieses schaltet.

Soll es schalten, so zieht das Relais magnetisch an und dadurch wird der obere Pin und der mittlere Pin verbunden und der Strom kann durch das Relais fließen und schließt damit den zweiten Stromkreis und die Lampe geht an.

Machen wir einen Testaufbau:

Relais Test-Stromkreis

zum Vergrößern Bild anklicken

Eine LED, einen Vorwiderstand (470 Ohm) und eine 9V-Blockbatterie simuliert unsere Tischlampe.

Jetzt müssen wir es in diesen Stromkreis einbauen, damit wir die LED mit unserem Mikrocontroller ein- und ausschalten können.

Relais Test-Stromkreis 1

zum Vergrößern Bild anklicken

Wir unterbrechen den Stromkreis an einer Stelle und verbinden ihn mit den beiden oberen Anschlüssen unseres Relais.

 

Relais Test-Stromkreis 2

zum Vergrößern Bild anklicken

Nehmen wir jetzt den gelben Draht der mit dem “In”-Pin verbunden ist und stecken diesen testweise in die GND-Schiene, so schaltet das Relais (die grüne Kontroll-LED auf der Platine geht an).
Der zweite Stromkreis der LED mit der Batterie ist jetzt geschlossen und der Strom kann fließen. Die “Lampe” leuchtet.

 

Lampe aussschalten

Wollen wir beispielsweise den umgekehrten Weg gehen und eine Lampe oder etwas anderes ausschalten, was dauerhaft eingeschaltet ist, so können wir das mit unserem Relais auch machen, da es ja ein Wechsler-Relais ist.

Relais Test-Stromkreis 3

zum Vergrößern Bild anklicken

Wir müssen dazu den aufgetrennten Stromkreis unserer Lampe wieder mit dem Relais verbinden, diesmal nehmen wir aber die beiden unteren Anschlüsse unseres Relais, da diese ja miteinander verbunden sind, wenn das Relais stromlos ist.

Die grüne LED leuchtet weiterhin, auch wenn Ihr den Strom von Eurem Arduino unterbrecht.

Relais Test-Stromkreis 5

zum Vergrößern Bild anklicken

Wenn wir jetzt wieder den gelben Draht nehmen, der am “IN”-Pin hängt mit der GND-Schiene verbinden, so schaltet es. Die grüne Kontroll-LED auf der Platine leuchtet, und unsere beiden Pins des Relais, das mit der “Lampe” verbunden ist, wird stromlos geschaltet.

Unsere “Lampe” erlischt.

 

Mit dem Arduino verbinden

Jetzt verbinden wir unser Relais mit dem Arduino. Das ist nun ein Kinderspiel, da wir ja bereits alles verbunden haben.
Lediglich der gelbe Draht des “IN”-Pins, den wir zum testen unseres Relais genutzt hatten (wir waren quasi selbst der Mikrocontroller in den beiden Tests), stecken wir nun auf Pin 8 auf unseren Arduino.

Jetzt brauchen wir nur noch ein Programm, was sozusagen unsere Hand von eben simuliert und das gelbe Kabel entweder mit GND, oder mit +5V verbindet.

Dazu gibt es den Befehl “LOW” der “GND” darstellt und “HIGH”, der “+5V” darstellt.
Damit können wir in unserem Programm das Relais ein- oder ausschalten.

Dieser kleine Arduino-Sketch schaltet das Relais abwechselnd ein und wieder aus. Dazwischen macht es mittels des Delay-Befehls immer eine Sekunde Pause (1 s = 1000 ms).
In der setup()-Funktion teilen wir dem Controller mit, dass der Pin 8, an dem ja das gelbe Kabel des IN-Pins verbunden ist, ein Ausgang ist. Das heißt, der Controller weiß dann, dass er ein LOW- oder ein HIGH-Signal zum Pin 8 schicken muss.

 

 

Relais_Steckplatine

zum Vergrößern Bild anklicken

 

In dem kurzen Video könnt Ihr sehen, dass die ausgeschaltete LED erst einschaltet, wenn das Relais eingeschaltet (Mikrocontroller sendet ein HIGH) wird. Dieses erkennt man, an der grünen Kontroll-LED auf dem Board.
Beide blinken synchron.

 

In diesem Video haben wir den Pin des Relais-Moduls getauscht, so dass die LED von Beginn an leuchtet, also eingeschaltet ist, auch wenn das Relais ausgeschaltet ist (Mikrocontroller sendet ein LOW, oder es ist gar kein Strom vorhanden).
Im ausgeschalteten Zustand ist ja dieser untere Pin mit dem mittleren kontaktiert.

Somit geht die LED aus, wenn das Relais anzieht (also ein HIGH-Signal vom Mikrocontroller erhält) und ausgeht, sobald es wieder stromlos ist.
Schön auch zu erkennen an der grünen Kontroll-LED die nun immer dann leuchtet, wenn die “Lampe” linksseitig ausgeschaltet wird.

Abschließend kann man sich nun überlegen, wie man ein Relais auf andere Arten schalten möchte. So ist es beispielsweise möglich, über einen Tastenbefehl am Computer via serieller Schnittstelle ein Relais einzuschalten und über einen anderen Tastenbefehl dieses wieder auszuschalten.

Ein weiterer Schritt wäre, dieses vielleicht drahtlos über eine gewisse Distanz zu machen. Beispielsweise via Bluetooth, WLAN, oder Funkwellen.

Und/oder wir schalten unser Relais nach einer gewissen Uhrzeit ein, oder aus.

Es gibt so viele Möglichkeiten. Viel Spaß beim herumexperimentieren 🙂


13 Comments

Rene

8. April 2022 at 5:36 pm

Hallo,
ich Steuer damit meinen Türöffner an. Funktioniert soweit, nur wenn der Arduino neu bootet (bei einem Sromausfall z.b.) dann schaltet für einen kurzen Moment das Reilai, was bedeutet die Tür geht auf. Was kann ich denn dagegen tun?

    Ronin

    8. April 2022 at 6:30 pm

    Hallo Rene,

    beim booten des Arduinos wird im setup() festgelegt, was Input Pins und Output Pins sind und ob diese LOW oder HIGH starten sollen, usw.

    Normalerweise schalten diese hier vorgestellten Relais und (Relais-Module), wenn “LOW” anliegt.
    Beim Booten startet der Arduino die Pins mit LOW – daher klackert das Relais ein Mal, bis in der Hauptschleife die Zeile auftaucht, in der es auf HIGH gesetzt wird.

    Erweitere Deine setup()-Funktion um folgende Zeile vor “pinMode()”:

    void setup() {
    digitalWrite(PINOUT_RELAY, HIGH);
    pinMode(PINOUT_RELAY, OUTPUT); // Initialisieren des Ausgangs
    }

    Das sollte das Problem behaben. Der Ausgang wird direkt auf “HIGH” gesetzt und somit schaltet das Relais auch nicht nach dem Bootvorgang.

    Viele Grüße,
    Michael

stern

11. November 2020 at 10:07 pm

hallo!
ja, bvor man so eine platine anschliesst und gar eine schaltung ätzt, sollte man sich mit den technischen daten beschäftigen. bin da auch gerade blauäugig reingefallen. alles funktioniert, aber wenn alle relais bei einer 4er karte (SSR) anziehen, bricht die versorgung zusammen…..

also mal die messung nachholen:
ein 4 er SSR modul zieht mit nano zusammen bei 5V: 0,081A also 0,400W

bei einer “normal”-relais-karte mit 4 relais : 5V 0,316A 1,57W

man sollte also schon min 1A und 2W als versorgung vorsehen und in dem fall entfällt die verwendung des arduino-5V ausgangs auf jeden fall!

Jirgel

12. Oktober 2020 at 9:33 pm

Ich wollte mit einen 8 Relais einen Reifeschrank bauen aber nach dem lese fürchte ich das es der Adurino nicht schaft 5 220 Verbraucher zu schalten

    Ronin

    13. Oktober 2020 at 9:48 am

    Hallo Jirgel,

    sicher schafft er das. Unter folgenden Bedingungen: Die Relais-Karte darf/kann nicht mit den 5V-Pin des Arduino betrieben werden, (sollte man generell auch bei den 1Kanal-Relais nicht machen, auch wenn es geht), sondern die Karte muss direkt die 5V Versorgungsspannung von einer (eigenen) Stromquelle bekommen.

    Ist das Netzteil ausreichend dimensioniert, kannst Du beides mit einem Netzteil betreiben. Andernfalls brauchts Du halt eine zweite Stromquelle.

    Mit dem Arduino schaltest Du lediglich den Ausgangspin HIGH oder LOW, an dem das entsprechende Relais auf der Relaiskarte anhängt. Dieses hängt aber an einer Ansteuerungselektronik auf der Relaiskarte (Transistor oder Optokoppler), die mit wenigen mA Schaltspannung aus dem Arduino den Stromkreis für die einzelnen Relais schaltet und somit den Relais genügend Strom zur Verfügung stellt, damit diese schalten.
    Daher brauchst Du auch eine eigene Stromversorgung für die Relaiskarte, damit alle (gleichtzeitig) geschalteten Relais genügend Strom bekommen.

    Viele Grüße,
    Michael

Roland Holtbrügger

25. Mai 2020 at 10:56 am

hallo, ich bin Adruino Anfänger und bin auf diese Schaltung mit Relais gestoßen. Ich habe den Uno und ein 4-Relais Modul 5V mit Optokoppler. Ich will in Modellbahnhäuser einzelne Zimmer zeitversetzt beleuchten. Beispiel: Zimmer 1 sofort für 4 Minuten, dann 2 Minuten aus; Zimmer 2: 1 Minute später, Leuchtdauer 2 Minuten dann 1 Minute aus; Zimmer 3: 2 Minuten später, Leuchtdauer 2 Minuten, dann eine Minute aus; Zimmer 4: 1 Minute später, Leuchtdauer 1 Minute, dann eine Minute aus.
Diese Routine soll sich ständig wiederholen. Leider kann ich mit diesem Code, oder welche ich im Netz finde nichts anfangen. Vielleicht kann mir jemand helfen. Ich danke euch.

Schall und Rauch

15. Januar 2020 at 1:23 am

Nur mal eine Warnung vom Laien an Laien die mit dem Relais 230V schalten wollen: An der Unterseite des Relais liegen dann OFFEN 230V an, NICHT ANFASSEN! Das Teil muss in ein Schutzgehäuse verbaut werden.

PS: Habs gottseidank vorher mit Stromprüfer gecheckt. Als Comsumer-Elektronik gewöhnter Mensch könnte man da etwas blauäugig rangehen, sieht ja aus wie Spielzeug

Lieben Gruß!

Alain

1. Januar 2020 at 10:59 pm

Hallo Michael,
danke vielmals für das tolle Tutorial. Zum Ein- und Ausschalten einer 24V Pumpe habe ich mir genau diesen Relais-Baustein zugelegt. Beim Austesten schaltet das Relay beim ersten Starten des Programms ein, dann aber nicht mehr aus. Die im Skript hinzugefügte Kontroll-LED blinkt sauber. Woran kann das liegen? Hab das Relais an verschiedenen Ausgängen angeschlossen mit dem immer selben Fehler.

    Ronin

    2. Januar 2020 at 11:11 am

    Hallo Alain,

    hmmm, kleiner Tipp: Versuche einfach mal das Relais zu schalten ohne die Wasserpumpe. Kannst ja eine LED mit passendem Widerstand für die 24V dranklemmen und schauen, ob Du das Relais Ein- und Ausschalten kannst.
    Wenn das ohne Pumpe funktioniert, vermute ich mal, dass die Wasserpumpe möglicherweise zu viel Einschaltstrom braucht und die Kontakte des Relais “ankleben”.
    Im Datenblatt steht, dass bei 28V DC maximal 3A Induktive Last für rund 7ms anliegen dürfen.
    Du könntest den Stromkreis der Wasserpumpe öffnen und mit einem Multimeter schauen, wieviel Ampere beim Einschalten verbraten werden.

    Alternativ würde ich der Wasserpumpe einfach mal eine zusätzliche Freilaufdiode spendieren. Hier gilt mal probieren geht über studieren. Keine Ahnung, ob das Sinn macht, aber der Motor einer Wasserpumpe hat ja genau so eine Spule wie das Relais und hier wird der Anschluss zum Transistor/Arduino ja auch mit einer Freilaufdiode geschützt.

    Hoffe, das hilft Dir weiter. Viel Erfolg und viel Grüße,
    Michael

Wolfgang Gschwendtner

24. Dezember 2019 at 8:06 am

Hi,

Habe gleiches Relais und habe es durch diese Anleitung zu schalten gebracht.
(wollte vorher mit +5V schalten, aber GND schaltet.) Danke!!!

Aber: ich kann das Relais nur mittels anlegen einer Batterie (4,5V) schalten. Wenn ich die 5V Versorgung einer USB Verbindung nehme, flackern nur kurz die LEDs.
Benötigt das Relais steuerungsseitig so viel Leistung, dass USB nicht ausreicht?

(Hintergrund: Würde gern eine 220V Lampe schalten, sobald Gerät mit USB Anschluss eingeschaltet wird.)

Danke für Tipps 🙂

lg
Wolfgang

    Ronin

    24. Dezember 2019 at 3:19 pm

    Hallo Wolfgang,

    freut mich, dass Dir meine Anleitung weitergeholfen hat.

    Zu Deiner Frage: Das Relais benötigt zum sauberen durchschalten rund 100 mA (so weit ich das noch in Erinnerung habe). Es kann daher sein, dass Dein USB-Port nicht genug Strom für Arduino, Relais und LED und evtl. weitere Dinge die dranhängen zur Verfügung stellen kann, damit das Relais geöffnet bleibt. (USB 1.0 liefert bspw. nur 100 mA am Port, solltest Du “gereifte” Hardware verwenden. Ab USB 2.0 sinds 500 mA, die denoch eng werden können.) Die Spannung bricht dann schlagartig ein, wenn das Relais schalten will und somit flackert die LED, weil nach dem Ausschalten ja wieder genug Strom da ist und das Relais wieder versucht zu schalten.

    Aus eigener Erfahrung kann ich Dir sagen, dass ich das mehr als ein Mal hatte. Vor allem die Relais-Karten mit mehr als einem Relais sind ohne externe Beschaltung schon nah am Limit, bzw. das 8er sogar drüber, wenn man mehr als eines gleichzeitig schalten will.

    Um eine plausible Antwort treffen zu können, wäre es mal sinnvoll zu messen, wie viel Strom der USB-Port abgibt und ob es für die Schaltung reicht.
    Dann würdest Du zuerst im Batteriebetrieb ein Multimeter in die VCC-Leitung zum Arduino einbinden und messen, wie hoch der Strombedarf bei angezogenem Relais ist und das Ganze dann nochmal mit der VCC-Leitung die vom USB-Port kommt.

    Aber beim USB-Port kommst Du nur dran, wenn Du beispielsweise ein altes USB-Kabel auf der Arduino-Anschlußseite zerlegst und dann schwarz in GND steckst und zwischen rot und VCC-Pin des Arduinos das Multimeter klemmst.

    Generell an dieser Stelle (für alle) die obligatorische Warnung: Obacht vor 230V AC. Es kann mitunter lebensgefährlich sein. Daher genau beachten was man wie tut. (Eine Warnung, das man es gar nicht tun sollte als nicht authorisierte Elektrofachkraft erspare ich mir, denn wir alle wissen, dass wir uns eh nicht daran halten. 🙂 )

    Viele Grüße, Michael

Albin Nüssler

10. Dezember 2019 at 1:42 am

Hallo
Haben Sie ein Beispiel Arduino-Sketch Code und Verkabelung – Layout. Wo ich ein Relais mit einem Taster einschalten und mit dem selben Taster wieder ausschalten kann?

Mit freundlichen Grüssen

    Ronin

    10. Dezember 2019 at 2:57 pm

    Hallo Albin,

    kein fertiges Sketch-File, aber wenn Du aus der Arduino-IDE unter den Beispielsskripten “Digital” das “Debounce” verwendest, hast Du bereits eine fertige Tastenabfrage.
    Statt jetzt in der Schleife bei Tastendrucke eine LED auf Pin 13 ein- und auszuschalten, hängst Du einfach den Steuerpin des Relais an den Pin 13 dran und fertig.
    if (buttonState == HIGH) {
    ledState = !ledState; <- Relais einschalten } Sollte problemlos funktionieren. Verkabelung ist ganz einfach. Wird im Beispielscript oben beschrieben. Brauchst nur einen Button und einen Widerstand. Je nachdem ob nun der Buttonstatus HIGH oder LOW ist, wird das Relais geschaltet. Wie Du das Relais, oder das Relais-Modul anschließt, kannst Du hier nachlesen: Relais ansteuerrn mit Arduino

    Ich hoffe, es wird Dir bei Deinem Projekt weiterhelfen.

    Viele Grüße,
    Michael

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.