Oftmals will man auch Module mit höheren Spannung mit dem Raspberry Pi steuern. Für diesen Zweck können am Raspberry Pi Relais verwendet werden: Mittels eines niederspannigen Impulses wird der Relais-„Schalter“ umgelegt. Da der Pi nur maximal 5V (die GPIOs sogar nur 3.3V) verträgt bleibt ohne Relais das Risiko vorhanden, den Pi durchbrennen zu lassen. Hat man jedoch zwei voneinander getrennte Stromkreise kann das nicht passieren.
Wie man ein Relais mit dem Raspberry Pi steuert und was dabei beachtet werden muss zeige ich in diesem Tutorial.
Zubehör
- 5V Relais Modul
- Female – Female Jumper Kabel, ebay
- externer Stromkreis (z.B. Batterien) und eine Anwendung (bspw. Motoren)
Die Relais gibt es als 2er, 4er, 8er und sogar als 16er Module, je nachdem was man braucht. Um nicht zu viele GPIOs auf dem Pi zu „verschwenden“ lohnt sich bei mehr als 4 Kanälen die Anschaffung eines GPIO Port Expander.
Aufbau
Der Aufbau ist sehr simpel, da alle Pins beschriftet sind. Links (GND) kommt an Pin 6 des Pi’s (GND), der rechte Pin (VCC) kommt an 3V3 (Pin 1) des Pis. Je nachdem wie viele der Relais du steuern willst, musst du entsprechend viele GPIOs mit den IN Pins verbinden. Es empfiehlt sich ein kleiner Widerstand zwischen Pi und Relais zu setzen, ist aber bei 3V3 nicht unbedingt nötig.
Solltest du 5V statt 3.3V an VCC setzen, solltest du auf jeden Fall jeweils einen Widerstand (~1kΩ) zwischen die GPIOs und die IN Pins setzen.
Auf der anderen Seite sind an jedem Relais 3 Verbindungen (siehe Bild unten): Je nachdem ob am IN-Pin eine LOW (0V) oder HIGH (3.3V bzw. 5V) anliegt wird entweder der Schalter zwischen der Mitte und Rechts, bzw. Mitte und Links geöffnet. Falls du alle 3 Pins verbindest kannst du das Relais quasi als Switch verwenden, lässt du rechts oder links frei hat es einfach die Wirkung eines On/Off Schalters. Wo dabei VCC bzw. Ground angeschlossen werden (Mitte bzw. Rechts/Links) spielt keine Rolle.
Solltest du Geräte mit hohen Spannungen anschließen wollen, solltest du entweder genaustens wissen was du tust oder einen Elektriker fragen! 230V sind lebensgefährlich. Achte zusätzlich auf die Spezifikationen des Relais und nimm möglichst keine zwielichtigen China-Teile (das ist im Niedrigstrom-Bereich zwar egal, bei höheren Spannungen sollte man aber der Sicherheit zu Liebe den Euro mehr ausgeben und geprüfte Ware nehmen). Ich übernehme keine Haftung für Schäden!
Raspberry Pi Relais Steuerung
Auch die Steuerung ist nicht sonderlich schwierig, da nur GPIOs geschaltet werden müssen. Du kannst dafür C++ (wiringPi) oder Python verwenden. Ich verwende Python und habe GPIO 17 (Pin 11) verwendet.
sudo python
1 2 3 4 5 6 7 |
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern RELAIS_1_GPIO = 17 GPIO.setup(RELAIS_1_GPIO, GPIO.OUT) # GPIO Modus zuweisen GPIO.output(RELAIS_1_GPIO, GPIO.LOW) # aus GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an |
Liegen 0V am Relais Pin an, leuchtet die entsprechende LED, bei einem HIGH Pegel erlischt die LED. Möchtest du, dass bei einem HIGH Pegel das Relais öffnet musst du also den mittleren und linken Pin mit dem Stromkreis verbinden. Dabei ist die LED aus. Soll das Relais öffnen, wenn die LED auch brennt werden mittlerer und rechter OUT Pin verbunden.
Das war es auch schon. Mich würde interessieren, in welchen Anwendungen die Raspberry Pi Relais bei euch Benutzung finden?
145 Kommentare
Cool. Das habe ich für meine Weihnachtsbeleuchtung gesucht.
Danke!!!
Ich würde gerne unsere LED-Leisten im Wohnzimmer damit steuern.
Finde das Tutorial gut beschrieben, würde mich jedoch auch darüber freuen, wie in den anderen gewohnte Tutorials eine Beispielverkabelung oder Schaltpläne zu sehen, wie du das ganze wo angeschlossen hast.
Gruß!
Hi Tim,
nunja so ein einzelnes Relais hat nur VCC, GND und einen Pin, der das Relais schaltet, wobei alle beschriftet sind. Daher habe ich hier auf einen Schaltplan verzichtet.
Hallo,
Du hast nur eines wohl vergessen.
Alle diese Relais die ich kenne werden mit Masse geschaltet und das kann der PI nicht!
Also werden u. a. eine Transistor-Schaltung gebraucht.
Klaus
Hallo Klaus,
bei welchen Relais hast du es denn getestet? Eizelne Relais oder verbaute Module?
Bei den von mir verlinkten Relais Modulen ist eine Masse-Verbindung nicht nötig. Ich nehme an, dass in den Modulen die Verbindung zu Ground bereits eingebaut ist.
LG Felix
Hi,
ist zwar älter, aber auch deine verlinkten Relais schalten mit LOW Signal, steht auch in einer Rezession von 2016 so drin (> „was leider nirgends steht ist, daß die Teile Low-Aktiv sind. …“
Was meinst du auch mit „Masse-Verbindung“ ? Du hast das „Problem“ nicht verstanden 😉
Fakt ist, schließt man das Relais an einen GPIO an (der auch noch nicht konfiguriert sein muss), zeiht das Relais an, weil der GPIO ein „Low“ Signal hat …
Hallo Felix ,
ich habe 8 von den Relais die möchte ich über die Tastatur schalten z.B bei Taste 1 Relai 1 und 2 Relai 2…… .Ich bin nicht ganz so fit in Python bin Anfänger .
Hättest Du einen Tipp ,Danke für die Antwort.
Udo
Hi Udo,
schau dir mal diese beiden Tutorials an, der Einstieg ist wirklich einfach 🙂
Programmieren lernen am Raspberry Pi – Teil 1: Einführung
Raspberry Pi GPIO Erklärung für Beginner + Programmierung (Teil 2)
Dankeschön
Eine Super sache deine Tutorials
Bei mir reagiert das Relais garnicht. Woran könnte das liegen?
Was du testen kannst: Schließe ganz normal VCC (3.3V) und GND des Relais an den Pi an. Dann verbinde den Schalt-Pin des Relais erst an 3.3V und danach and GND. Die LED des Relais sollte einmal aufleuchten und einmal ausgeschaltet sein. Falls das nicht der Fall ist, ist entweder dein Relais kaputt oder es benötigt eine andere Spannung.
Mit 3,3V an VCC schaltet das Relais garnicht (ist ein 5V Relais) Aber auch mit 5V klappt es nicht. Ein Arduino an das Relais angeschlossen und es klappt.
Möglich, dass du ein anderes Relais benutzt. Ich habe aber mit allen getesteten 5V Relais die Erfahrung gemacht, dass auch 3.3V zum schalten ausreichen. Wenn aber auch 5V des Pi’s das Relais nicht schalten, muss das Problem wo anders liegen.
Mit 3,3V schaltet das Relais garnicht. Aber selbst mit 5V klappt es nicht. An einem arduino klappt es aber einwandfrei.
Hi Felix,
dich interessiert ja was wir mit dem Relais so anfangen.
Ich hab mir aus einer Heizmatte, einem Relais, einem DHT22 und ner Styroporbox einen Joghurtbereiter gebastelt.
Der PI muss für 7 stunden die Temperatur zw. 42 und 45 Grad Celsius halten, und das wars eigentlich schon. (wo ist eigentlich das Grad Symbol auf ner Tastatur)
Das alles mit sehr begrenzten Elektonik und Python Kentnissen.
Die meisten Zeilen sind bei Dir und Adafruit geklaut.
http://pastebin.com/uFeBRZxJ
Ich beschäftige mich jetzt seit knapp 2 Wochen mit Python, ein zwei Rätsel kommen immer wieder auf, aber meistens klappts.
P.s. wie bau ich da denn nen abbruch durch benutzer ein…
Also durch tastendruck oder ctrl irgendwas
STRG + C 😉
Hi Hauschi,
dein Projekt klingt wirklich interessant, gut möglich, dass ich in Zkunft so etwas auch baue 🙂
PS: Grad Zeichen (°) oben links neben der 1 auf der Tastatur.
Oh man strg c….
Ich hab mir hier allen möglichen mist mit keyinterrupt auf englisch durchgelutscht und mein englisch ist wirklich für fachbezogenes nicht ausgelegt, eher um ein bier zu bestellen
Nochmal zum KeyboardInterrupt:
Hab noch mit „try: / except KeyboardInterrupt“ gespielt
Habs jetzt so hinbekommen, daß er bei strg+c noch das relais auf low stellt bzw den gpio cleanup ausführt
Nicht daß man abbruch macht und die heizmatte grillt weiter oder ähnliches.
soll ich die Zeilen noch Posten oder war das nur für mich Neuland?
gruß hauschi
ja bitte kommt spät aber würde mir helfen
mfg
Noch was wichtiges, auf jeden Fall muss man mit except bei fehlern zumindesten das relais wieder ausschalten…
Mir erging es wie folgt: ich hab damit eine heizung für ein minigewächshaus gesteuert, lief wochenlang stabil. Eines morgen waren alle pflänzchen gar gekocht. Der dht22 hatte wohl nen fehler und round (temperature,1) ging schief weil diese auf einmal als string erkannt wurde… programm wurde beendet und relais blieb auf Heizen stehen… hab noch nen 16×2 display dran, das zeigt dann aber ja auch nur die letzte gemessene temperatur.
Naja aus fehlern lernt man..
Gruß Hauschi
P.S. Felix, wenn ich hier nochmal das aktuelle script poste, würdest du mal drüber schauen ob da noch mehr überraschungen lauern?
Hey Hauschi,
klar, ich kann einen Blick drüber werfen.
Hallo Hauschi,
wie hast Du es hinbekommen, dass bei Programmabbruch durch Strg+C und Fehler vorher noch ein gpio cleanup durchgeführt wird?
Ich habe eine Lüftersteuerung für den Keller mit Raspberry Pi erstellt und möchte nicht, dass die Lüfter bei Programmabbruch (durch Strg+C oder Sensorfehler) ggfs. dauerhaft eingeschaltet sind. 😉
Kannst Du mir den Python-Code zur Verfügung stellen?
Vielen Dank!
Mit freundlichen Grüßen
Lars Kröger
Das Gradzeichen hat den ASCII-CODE 248 falls Dir das hilft
Hallo zusammen,
ich steuere über 2 Buttons auf einer html Seite jeweils ein Relai für Auf- und zufahren eines Rollladens. Nun möchte ich auch über einen Stopp Button den Rollladen stoppen. Im moment kann ich nur ganz auf oder zufahren.
Hier habe ich das sh skript für zufahren mal unten eingefügt. Das für auffahren sieht fast genau so aus.
Weis jemand wie es möglich ist, durch betätigen des Stopp Buttons die beiden Pins für die Relais daraufhin auf Eingang zu legen?
Vielen Dank
LG
Patrick
Hi Patrick,
das Problem liegt in der
sleep 10
Zeile. Dadurch hast du keine Möglichkeit zu stoppen.Ich würde eine Schleife laufen lassen und innerhalb der Schleife lediglich eine halbe Sekunde oder noch weniger warten. Außerdem überprüfst du den Status des Stop-Tasters jedes mal und falls er gedrückt wurde bricht die Schleife ab und das Relais wird geschaltet. Mit Python könntest du auf die nützlichen GPIO Funktionen zugreifen ggf. sogar auf die Schleife verzichten.
LG Felix
Hi Felix,
das sleep 10 ist ja dazu da, dass das Relai für 10 sec anzieht und anschließend wieder abfällt. Der Rollladen braucht genau 10 sec zum auf bzw. zufahren 🙂
könntest zu mir ein beispiel code schreiben, wie du das realisieren würdest?
Das ist mir klar, aber durch sleep wird alles andere lahmgelegt. Das System pausiert und dadurch kannst du es auch nicht abrrechen.
Beispielcode in Python (ungetestet):
Schau dir ggf. dieses Tutorial auch mal an: Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
ja da hast du recht da wird alles lahmgelegt, dass habe ich noch nicht bedacht gehabt
okey danke ich teste das mal 🙂
Nochmal ne Frage, was meinst du eigendlich mit diesem Taster_GPIO?
Naja, du hast doch einen Taster/Knopf den du drücken willst, wenn es stoppen soll oder nicht?
Ne also ich habe eine html Seite mit 3 Buttons:
Zufahren
Auffahren
Stopp
und ich möchte über den Stopp button auf der Webseite den Rollladen stoppen.
sorry vll hab ich das vorhin etwas schlecht beschrieben.
Achso, ok. Dann musst du es natürlich etwas umschreiben: Überprüfe in der Schleife, ob Stopp gedrückt wurde und setze dann sofort den Relais GPIO auf LOW. Beispiel:
wenn ich den zufahren Button betätige ruft der über php das Shell Skript auf.
Wenn ich die Schleife so mach funtkioniert gar nichts, und des Relai zieht nicht an. Ich glaube ich denke das is falsch wie ich es gemacht habe, vll denke ich da zu einfach 😀
Du deklarierst ein shell Skript, benutzt aber Python Code? Hast du es gekürzt oder fehlen auch die imports der Libraries?
Btw. was genau ist
GPIO 23.output
? eine Variable kann nicht durch Leerzeichen getrennt sein bzw. eine Zahl. Falls das alles an Code ist, macht dieser definitiv keinen Sinn (du solltest ihn testen und wirst bestimmt einige Fehlermeldungen bekommen).LG Felix
Hallo Felix,
erstmal.. Du hast hier ne richtig geile Seite aufgebaut. Mach weiter so.
Und nun zu meiner Frage.
Ich habe wie hier in diesem Tutorial beschrieben eine 8er relaiskarge angeschlossen und daran wiederum aquariumpumpen.
Aus einem deiner vorherigen tutorials hatte ich auch schon ein LCD-Display (4×20) in betrieb genommen.
Nun spinnt mein display jedoch jedes mal rum wenn ich eine Pumpe ansteuere, ich habe schon gedacht das es vllt einen spannungeinbruch gibt, und habe die stromversorgungvom Raspberry und die der Pumpen getrennt.
Das hat aber leider nicht geholfen. Hast du noch eine Idee an was es liegen könnte?
Mit freundlichen Grüßen
M.Krause
Hi,
vielen Dank für das Tutorial. Hab mich auch auf anderen Seiten eingelesen, aber leider funktioniert mein Skript nicht. Beide Relais schalten nach der Zeile GPIO.setup(….) und nach GPIO.cleanup(…). Das Umschlaten der Pins hat keinen Einfluss, weder auf die LEDs, noch auf das Relais. Wenn ich die Pins des Relais mit 3,3 V und GND direkt verbinde, schalten sie einwandfrei.
Momentan bin ich noch am ausprobieren. Mein Ziel ist es eine Steuerung für einen Innenraumbelüftung zu bauen, die bei einer gewissen Temperatur meines Holzofens die Lüftung einschaltet, damit es unter dem Dach nicht so warm wird.
Grüße Johannes
Hallo Johannes,
hast du mal versucht einen Transistor dazwischen zu schalten? Diese brauchen nur eine geringe Stromstärke zum schalten und somit könntest du das Relais auch über 5V schalten. Ist zwar etwas umständlicher, aber vielleicht klappt es ja. Benutzt du irgendein spezielles Relais oder die verlinkten?
LG Felix
Hallo Felix,
Ich habe die gleichen Relais, auf dem Board sind bei mir aber andere Bausteine verbaut. Die zwei schwarzen rechteckigen fehlen. Könnte natürlich sein, dass das Transistoren sind… Auf dem Relais steht jedenfalls irgendwas von 5 VDC. Mir ist aber nicht ganz einleuchtend, wieso die Relais sauber schalten, wenn ich sie mit 3,3 V verbinde bzw. die Verbindung wieder unterbreche. Kann es sein, dass die Pins des Raspberry Pi nicht „sauber“ geerdet sind? Also dass eben nicht 0 V anliegen, sondern eine „zappelnde“ Spannung?
Ich besorg mir mal einen Transistor und probiere es aus.
Grüße
Johannes
Hallo Johannes,
also eine „zappelnde“ Spannung habe ich bisher nie an den GPIOs gemessen. Ich habe bei vielen Bauteilen die Erfahrung gemacht, dass sie auch mit 3.3V funktionieren. Die Module sind meistens für den Arduino bestimmt und dessen IO Pins liefern 5V Spannung. Allerdings haben die verwendeten Komponenten eben oft einen Spannungsvereich von ca. 3-5.5V. Natürlich gibt es auch Module, die wirklich genau 5V brauchen, aber ich habe das mit solchen Standard Teilen wie Relais bisher nicht erlebt.
Hallo Felix,
danke für den Hinweis mit dem Transistor. Hat geklappt. Ich habe die Verkabelung gemäß folgender Seite (Output Circuit, NPN-Transistor) vorgenommen: http://elinux.org/RPi_GPIO_Interface_Circuits Am GPIO-Pin liegen 3,14 V an, am Collector des Transistor, liegen 4,13 V an.
Grüße
Johannes
Scheint wohl wirklich so zu sein, dass dein Relais mehr als 3V braucht. Nunja, hauptsache ist, dass es nun klappt 🙂
Hallo,
super Tutorial……
Ich möchte meine 12V LED Aquarium Beleuchtung damit Steuern.
Frage: Was bräuchte ich, damit ich zusätzlich dimmen kann?
Ich habe 4LED 12 V Leisten über dem Becken und habe jetzt einen DrehDimmer dran. So kann ich Stufenlos die Helligkeit einstellen, d.h. die LEDs sind einfach Dimmbar.
Weisst du ob es vielleicht so etwas gibt? Dein Relais macht sicher nur ein/aus.
Viele Grüße
Frank
Hallo Frank,
normale Relais machen wirklich nur ein/aus. Du könntest es aber z.B. mit dimmbaren Funksteckdosen probieren: http://amzn.to/21yWIRj
Funksteckdosen (433MHz) mit dem Raspberry Pi steuern
Moin moin, danke für das super Tutorial!
Ich habe ein bisschen grundsätzliche Ahnung von Elektrotechnik, aber trotzdem eine Frage dazu…
Du hast geschrieben, dass du, wenn man die Relais mit 5V beschaltet, einen ~1k Widerstand zwischen GPIO und IN einbauen würdest – zur Sicherheit. Wie kommst du genau auf die ~1k?
Ich habe nämlich ein entsprechendes Board zur Verfügung, das aber mit 12V versorgt wird. Wie müsste ich die Widerstände da dimensionieren?
Wäre super, wenn du mir da aushelfen könntest.
Danke!
Hey Maurice,
Im Grunde ist das bei 3.3V nicht wichtig, da der GPIO nur einen Strom sendet, aber keinen bekommt. Das war nur gedacht, falls man etwas falsch angeschlossen hat etc. Aber da sollte es auch eine Diode tun (solange der GPIO nur Output ist).
Ansonten kannst du dir mal das Prinzip eines Spannungsteiler ansehen: https://de.wikipedia.org/wiki/Spannungsteiler
Hi,
ich habe nun auch wiringPi installiert und das Relais an den Pi angeschlossen (VCC GND IN) und auf der anderen Seite einen Motor mit eigener Stromversorgung .
Nun habe ich aber das Problem, dass wenn ich
GPIO.setuup(RELAIS_1_GPIO, GPIO.OUT) eingebe, das Relais schließt (Motor läuft) und wenn ich
GPIO.setup(RELAIS_1_GPIO, GPIO.IN) eingebe, das Relais öffnet (Motor aus).
Also ohne dann GPIO.output ….. auf LOW oder HIGH zu setzen.
Was mache ich falsch?
Ist dieser Blog nicht mehr aktiv?
Oder warum erhalte ich keine Antwort? Schade eigentlich. Ich würde gerne meinen Fehler finden. Da sollte es doch jemand geben, der einem Anfänger vielleicht helfen kann.
Ist noch aktiv 😉 Nur bei so vielen Kommentaren überließt man mal ein, kümnmere mich ja nur in meiner Freizeit darum 🙂
Zu deiner Frage: Ich vermute folgendes: Durch GPIO.IN agiert der Pin wie GND (oder auch GPIO.LOW). Der andere Zustand ist dann ggf. nicht HIGH sondern „nicht LOW“.
Dennoch würde ich den Pin als Output deklarieren.
LG Felix
Habe jetzt dein „AN“ statement und dein „AUS“ statement getauscht, damit die LED am Relais nur brennt wenn das Relais meine Pumpe ansteuert. Spricht etwas dagegen das so zu tun. Wenn ich die Schaltung richtig verstehe liegt damit auf dem GPIO immer eine Spannung an wenn das Relais aus sein soll. Oder hat das negative Auswirkungen wenn der Raspberry vielleicht mal abstürzt und damit das Relais angeht weil die Spannung fehlt?
Nein, das kannst du handhaben wie du möchtest. Es gibt auch unterschiedliche Arten von Relais (manche leuchten, wenn Spannung anliegt, manche wenn keine Spannung anliegt). Je nachdem welches du hast wird der Stromkreis unterbrochen, wenn z.B. der Pi keine Spannung mehr liefert (also gar keine – nicht nur LOW am Schalt-Pin).
Hallo Felix,
ich weiß nun nicht mehr was nun richtig ist, bin leider totaler leihe. Dein Bericht ist nun das gegen teil was ich nun schon mehrfach über dieses Relay Modul gelesen habe. ( Hersteller ArtikelNr.: CP0408A )
Hier mal eine Beschreibung was man machen soll wen man es mit ein Raspberry pi betreiben möchte. Ich einen Raspberry pi 3
Was ist Deine Meinung dazu, für eine Antwort wäre ich dankbar.
————————————————————————————————–
Problem: Das Relaismodul besteht aus zwei Stromkreisen, dem Steuerkreis und dem Relaiskreis. Beide sind auf 5V ausgelegt. Betreibt man beide Stromkreise mit 3,3V, so besteht die Gefahr, dass das Relais „hängt“ oder nicht zuverlässig schaltet, denn die Relais brauchen zwingend 5V; außerdem fressen dann die LEDs im Steuerkreis so viel Spannung, dass die dort befindlichen Transistoren (aus irgendwelchen elektrotechnischen Gründen, die ich ehrlich gesagt nicht vollständig verstanden habe…irgendwas mit Sättigung) ironischerweise durch ihre eigene Verlustwärme schleichend geröstet werden und irgendwann ausfallen können. Gibt man stattdessen beiden Stromkreisen 5V, so röstet man den GPIO des Raspberry Pi, da dieser nur 3,3V verkraften kann. Was tun, um aus diesem Dilemma herauszukommen?
Lösung: Wir arbeiten mit unterschiedlichen Spannungen. Wir betreiben den Relaiskreis mit den erforderlichen 5V, während wir den Steuerkreis mit 3,3V betreiben. Auf diese Weise können auch die GPIOs nur 3,3V abbekommen.
Howto:
1.) Die vier LEDs mit einem Lötkolben auslöten. Die Stellen, an denen die LEDs waren, mit ausreichend Lötzinn überbrücken.
2.) Den Jumper, der JD-VCC und VCC auf dem Board verbindet, abziehen. Wichtig! Solange dieser Jumper gesteckt ist, sind Relaiskreis und Steuerkreis miteinander verbunden. Diese Verbindung muss logischerweise getrennt werden, und das geschieht durch Abziehen des Jumpers.
3.) 3,3V vom Raspberry Pi an VCC des Boards stecken (Pinleiste mit sechs Pins).
4.) 5V vom Raspberry Pi an JD-VCC des Boards stecken (einer der Pins, wo der Jumper draufgesteckt hat – den richtigen wählen! Beschriftung JD-VCC!)
5.) Masse vom Raspberry Pi an GND des Boards stecken (Pinleiste mit sechs Pins)
Nun fehlt noch die Verbindung von den GPIOs zum Board. Da der Raspberry Pi pro GPIO-Port nur max. 8mA an Strom zur Verfügung stellen kann, der Steuerstrom aber lt. Produktbeschreibung mit 15-20mA angegeben ist, müssen wir verhindern, dass das Relaisboard zu irgendeinem Zeitpunkt mehr ziehen kann als diesen Wert. Nach dem Ohm’schen Gesetz (U=R*I) ergibt sich bei einer Spannung von U = 3,3V und einem Maximalstrom von I = 8mA = 0,008A ein Widerstand von R = 412,5 Ohm. In der Praxis eignet sich ein 470 Ohm-Widerstand, den man in das Kabel vom GPIO zum Board einlötet. Dieser begrenzt dann den Stromfluss auf 7mA. In der Praxis funktioniert das auch nach vielen Tests hervorragend.
In einem letzten Schritt schließt man nun also ein derart präpariertes Kabel zwischen den GPIO-Pin des Raspberry Pi und dem gewünschten Eingang des Relais (z.B. IN1 für das erste Relais). Fertig!
Hallo Winne,
also vorweg gesagt, ein Relais hat keine eingebaute Transistoren sondern arbeitet mit einem Elektromagnet, der durch die Spannung (3.3V bzw. 5V) geschaltet wird und einen anderen (getrennten!) Stromkreis öffnet (siehe Wikipedia: https://de.wikipedia.org/wiki/Relais ).
Zu der zweiten Aussage bzgl des Dauerbetriebs: Ich nutze Relais kaum im Dauerbetrieb, kann also dazu keine Aussage treffen. Allerdings haben sich alle bisher von mir getesten Relais auch mit 3.3V schalten lassen. Falls sich dein Relais nicht mit 3.3V schalten lässt oder du 5V anliegen haben möchtest, so kannst du einen Transistor (NPN) benutzen. Dabei schließt du den GPIO an die Basis an (bitte mit Vorwiderstand ~10k), an den Collector kommen die 5V des Pi’s und der Emitter geht zum Schalt Pin des Relais. Damit kannst du mittels eines GPIOs auch 5V schalten. Ein Beispiel zum Transistoren schalten findest du hier, ist aber nichts großes dabei (bzgl Vorwiderstand stimmt alles, was du kopiert hast) 🙂
Hallo Felix,
erst mal danke für die schnelle Antwort.
also ich möchte mir dieses Relay Modul kaufen ( http://www.avc-shop.de/epages/64272905.sf/de_DE/?ObjectID=55119743 ).
Ich habe da nachgefragt, Sie haben gesagt das ich von Rasberry vom PIN 2 die 5v Stromversorgung an DC+ an Relay Modul und Masse vom Rasberry PIN 6 an DC- an Relay Modul ohne was dazwischen anzuschließen und an den IN 1-4 den GPIO anschließen muss ( Beispiel an PIN 7,11,13,15 am Raspberry .
Nun meine Frage, ist die Aussage richtig, oder muss ich, wie Du geschrieben hast, auch noch ~10k Vorwiderstand dazwischen machen?
Wie schon geschrieben bin leider totaler leihe.
Danke im voraus.
Winne
Hallo Winne,
ich habe gesagt, dass der Vorwiderstand vor die Basis des Transistor (falls du einen verwendest) kommt. Wenn du darauf verzichtest kannst du die GPIOs auch direkt anstecken. Ich würde aber ggf. eine Diode dazwischen schalten, damit du sicher gehen kannst, dass keine 5V an die GPIOs gelangen (falls du ausversehen einen Pin vertauschst oder sonstige Komplikationen auftreten), aber auch das ist kein Muss, aber damit bist du auf der sicheren Seite.
Danke dir. Das Tutorial hat mir sehr geholfen.
Hallo!
Ich muss mit einem Raspberry Pi eine Pumpe für eine Fußbodenheizung ein- und ausschalten, je nach Temperatur. Kann ich mit Relias die 230V für die Pumpe ein- und ausschalten oder muss da was anderes her?
Am einfachsten und sichersten wäre eine Funksteckdose – sofern die Pumpe per Steckdose angeschaltet werden kann.
Es kommt auf die Leistung ( bzw. Stromstärke ) der Pumpe an. Ich glaube diese Relais können maximal 10A schalten bei 250V. Auf dem Typenschild der Pumpe steht normalerweise der benötigte Strom.
Hallo miteinander,
was ich hier so gelesen habe, finde ich einfach nur toll!
Ich möchte ein Bastelprojekt starten, obwohl ich keinerlei Ahnung vom Raspberry und Steuerung, geschweige denn vom Programmieren habe. Also frag ich einfach mal drauf los.
Ich möchte über den Raspberry mit Touchscreen 30 Relais in 3 Zehnergruppen ansteuern, und zwar so, daß bei zwei Zehnergruppen immer nur ein Relais geschlossen ist, bei einer Zehnergruppe sollen es möglich sein, auch 2 oder 3 Relais gleichzeitig anzusteuern.
Nutzen will ich das als Umschalter meiner Musikanlage. Wie stell ich das an?
Es gibt ja USB Relaiskarten, gänge sowas?
Würde mich über eine Antwort freuen, ehe ich das alles kaufe und dann nicht weiter weiß
Danke, Matthias
Hallo,
Danke für das Tutorial!
Habe aber mal eine Frage um sicher zu gehen:
Wo muss ich am Relais Ausgang die Masse anschließen? In der Mitte oder Rechts/Links?
Kenne mich damit nicht aus 😀
Danke,
Ben
Ist dein Relais nicht beschriftet?
Hallo Ben
Das Relais hat 3 Anschlüsse. Der mittlere Anschluss auf der Seite mit den Klemmkontakten (Ich denke Du meinst diese ) ist der an dem die Phase oder Plus anliegt. Die Klemme zu der der Strich in der Mitte zeigt ist im Ruhezustand geschlossen. Der Andere ist offen und wird bei Ansprache des Relais geschlossen. Die Frage ist nun ob Du Masse schalten willst oder Plus. Wenn Du ein Gerät an oder aus schalten willst musst Du Dich für eine Version entscheiden. Entweder Du schaltest Masse hat Plus an diesen Klemmen nichts verloren. Sonst gibt es einen Kurzschluss. Umgedreht genauso. Das nicht geschaltete Kabel wird am Relais vorbei geführt. Bei 230 V z.B. würde ich immer die Phase also den Stromführenden schalten um das Gerät im ausgeschaltetem Zustand spannungsfrei zu haben.
Hallo Felix,
dank deines Tutorials konnte ich erfolgreich mein „Neuftech 8-CH 5V 8-Kanäle Relais Modul“ an meinen Pi 2 Model B anschließen und ansteuern 🙂
Nach etwas rumspielerei ist mir folgendes Problem aufgefallen, dass ich mir nicht erklären kann:
Ich habe mir ein Script gebaut, mit dem ich alle oder gezielt einzelne Relais ein- bzw. ausschalten kann. Dies geschieht mit mehreren
„GPIO.output(relais, GPIO.LOW)“ bzw. GPIO.HIGH
Zeilen hintereinander, wobei Relais1 immer durch die jeweilige GPIO Nummer ersetzt wird. Zwischen den einzelnen Befehlen habe ich zum Test noch einen Sleeptimer von jeweils einer Sekunde eingebaut.
Nun das für mich kuriose:
Schalte ich alle Relais ein und nach ca. 30 Sekunden alle Relais aus, bleiben sporadisch Relais 1,3 und 6 an. Schalte ich nun gezielt Relais 1 aus, bleibt Relais 1 an. Schalte ich dann gezielt Relais 1 nochmal an und aus, geht Relais 1 aus. Gleiches Spiel mit Relais 3 und 6.
Schalte ich alle Relais ein und nach ca. 5 Minuten aus, gehen alle Relais aus.
Wenn die Relais geschalten werden (alle oder einzeln), ist immer das typische Relais klacken zu hören und die dementsprechende LED auf dem Board geht an bzw. aus.
Dieses Phänomen tritt nur auf, wenn alle Relais eingeschalten sind. Sind z.B. nur Relais 1,3,4,6 und 8 aktiviert, kann ich diese einzeln aus und einschalten wie ich lustig bin.
Wo liegt mein Fehler? Bin über jeden Tip dankbar.
Viele Grüße,
Tobias
Hallo Tobias,
hast du mal die anliegende Spannung der GPIOs von Relais 1,3,6 usw. gemessen, wenn du alle ausgeschaltet werden?
Hallo Felix,
nein, werde ich aber morgen mal machen 🙂 Habe mein Bauwerk derzeit nicht zu Hause.
Ergänzend kann ich noch sagen: Das Problem tritt nur auf wenn Verbraucher an den Relais angeschlossen sind.
Hallo Felix,
ich habe nun die Spannung der GPIOs in verschiedenen Konstellationen gemessen (sprich: Relais an/aus wie ich es oben beschrieben habe).
Die Erkenntnis:
Wenn der GPIO deaktiviert ist, liegen immer 0,0 V an.
Wenn der GPIO aktiviert ist liegen immer 3,228V oder 3,229 V an.
Mit meinem technischen Verständnis würde ich sagen das passt soweit.
Ich bin nun am überlegen, einen ULN2803 Testweise zwischen GPIOs und Relaiseingänge zu installieren, da ich bei meinen aktuellen Recherchen oft gelesen habe, dass es nicht wirklich ratsam ist, die GPIOs direkt an das Relais anzuschließen.
Wie siehst du das?
Viele Grüße
Die Spanungen sind soweit in Ordnung.
Was du machen kannst ist einen normalen NPN Transistor zu verwenden und diesen zu schalten, sodass 5V an das Relais kommen: Basis (3.3V GPIO), Collector (5V Pi), Emitter (zum Relais Pin)
Hallo,
nach einem Dauertest bin ich mir nun sicher, dass das Problem gelöst ist.
Ich habe nun einen ULN2803A zwischen Pi und Relais eingebaut. Das Relais wird mit einem externen Netzteil mit 5 V versorgt.
Hallo Felix, erstmal Danke dafür, dass Du in diesem Forum so viele interessante Informationen zur Verfügung stellst. Du fragst danach in welchem Zusammenhang die Relaissteuerung am Raspberry eingesetzt wird.
Ich steuere in unserem Haus eine Vielzahl von Geräten über den Raspberry, so z. B. die Rolläden, NAS, Drucker, Zirkulationspumpe zum Warmwasser, ….; alles in Abhängigkeit des „Betriebszustandes des Hauses“, eingeschalteter Geräte (z. B. PCs) und der Uhrzeit. Basis ist ein C-Programm, dass als eine Art Scheduler funktioniert. Alle Steuerungsinformationen sind dabei in einer mysql-DB hinterlegt und können somit jederzeit ohne Programmunterbrechung verändert werden. Das Programm hat eine eigene Auslastungskontrolle und gibt- wenn immer möglich – die Steuerung an Betriebssystem zurück. Trotz einer erheblichen Anzahl von Steuerungsereignissen, erreiche ich einen Idle-Wert von ca. 99% auf dem Raspberry. Da mir die GPIOs ausgehen plane ich nun eine Ansteuerung der GPIOs über I2C Schieberegister-Module, z.b 2307. Hier fehlt mir noch die Information der Ansteuerung des I2C über die Programmiersprache C, wenn Du hier eine Info-Quelle hast, wäre das super, Gruß André.
Hallo Andre,
dein Projekt klingt interessant. Um dein GPIO Problem zu lösen könntest du einen MCP23017 per I2C ansprechen. Ich habe dazu bereits zwei Artikel geschrieben (Teil1, Teil2), jedoch benutze ich dazu Python. Ich denke allerdings, dass es nicht all zu viel Aufwand sein sollte den Code in C zu übersetzen. Auch auf Github gibt es wahrscheinlich einige Bibliotheken in C.
LG, Felix
Ich verwende das Relais für sie automatische Bewässerung meiner Balkonpflanzen.
Hier mal ein Hinweis für die Nutzer von Relaiskarten mit einer Steckbrücke (Jumper):
Wenn Ihr diesen Jumper entfernt, dann wird auf der Karte VCC von JD-VCC getrennt.
JD-VCC ist die Versorgungsspannung der Relaisspulen (5Volt). Hier könnt Ihr nun die 5Volt (Pin2 und Pin4 des Pi) anlegen. VCC wird mit den 3,3Volt (Pin1 und Pin 17 des Pi) verbunden. Jetzt stehen den Spulen der Relais die richtige Spannung zur Verfügung ohne dass Ihr Eure GPIOs gefährdet.
Aber vorsicht bei den 8er Relaiskarten, hier überfordert die Last von 8 angezogenen (geschalteten) Relais recht schnell die Kapazität Eures Netzteils und der Pi kann wegen Spannungsschwankungen abstürzen.
Noch ein Hinweis:
Wenn Ihr, wie im Tutorial empfohlen, Euren Verbraucher über die NC/C Pins der Relais einschaltet, (LED leuchtet und der Verbraucher ist aus bzw. LED leuchtet nicht und der Verbraucher ist an) dann habt Ihr diesen Zustand immer auch im Ruhe zustand der Relais, also z.B. beim Booten des Pi. Das ist nicht wirklich sinnvoll.
Besser Ihr nutzt nur die NO/C Kontakte der Relais zum Einschalten der Verbraucher – wenn also via Low-Pegel vom GPIO die LED eingeschaltet ist, und an der Relaisspule Spannung liegt, sollte auch Eure Last mit Strom versorgt werden.
Solange der GPIO PIN nicht als Output definiert ist (als beim Booten und vor dem Start Eures Programmes) wird auch das Relais nicht ungewollt Euren Verbraucher einschalten. Setzt doch einfach den GPIO Pin auf „ON“ und dann erst teilt Ihr ihm mit dass er ein Output ist, dann wird das Relais erst dann schalten, wenn Ihr den GPIO kontrolliert auf „LOW“ setzt.
…
GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # PIN an aber Relais und LED aus
GPIO.setup(RELAIS_1_GPIO, GPIO.OUT) # GPIO Modus zuweisen
…
…
GPIO.output(RELAIS_1_GPIO, GPIO.LOW) # PIN aus aber Relais und LED an
…
Hallo Gunter,
danke für deinen ausführlichen Kommentar 🙂
LG, Felix
Wird bei der low activ variante auch ein Widerstand zwischen gebaut und wenn ja wie hoch sollte der ausfallen? Die von mir weiter unten beschriebene transistor bauweise schaltet nicht sauber.
hallo,
ich baue einen voll automatischen enten/hühnerstall mit solar panel und 12v batterie.
die tür funktioniert schon seit etwa zwei jahren. aber jetzt kommt noch ein fütterungsautomat hinzu, und da hab ich mir gedacht ich probiers mal mit nem raspberry.
ich hoffe es klappt.
danke jedenfalls schonmal für das tutorial.
Hallo,
im Tutorial-Text steht „und nimm möglichst keine zwielichtigen China-Teile“. Ein guter Hinweis.
Ich möchte anregen, dann auch die Links zu Relais-Karten bei Amazon etwas zu verwenden. Aktuell verweisen sie auf Chinesische Händler, die über Amazon liefern (und sich, wie in der c’t zu lesen war, dabei an keine deutschen Standards halten müssen).
Alternativen wären:
http://www.watterott.com/de/4-Channel-Relay-Module-10A
Hey,
Gibts in der Steuerung der GPIOs per Bash oder Python einen unterschied?
Ich komme mit Python einfach nicht klar…
Da würde ich eher C lernen wolle.
Wenn ich bei uns mal ein Relais finden würde, würde ich das gerne zwischen Arduino und Stromversorgung hängen, und dann per Bash schalten. Oder notfalls mit einer Python Datei. Denn so könnte ich ganz einfach den Arduino per Datei anschalten, ihn seine Messungen machen lassen bzw. die Simulation starten, und wenn er fertig ist dann wieder per Raspi abschalten.
LG
TimeMen
Per Bash kannst du auch GPIOs schalten. Bsp für Pin 27:
Alternativ geht es auch mit WiringPi.
Ein freundliches „Hallo“ in die Runde…
Sehr umfangreiche und gut verständliche Infos die hier zusammengetragen wurden. Ich bin jetzt seit einiger Zeit mit 3 Raspis daheim am herumspielen und steuere bereits erfolgreich einige Dinge in meiner Haussteuerung über den Raspi.
Aktuell möchte ich meine Lüftungsanlage automatisieren. Diese wird derzeit noch mit einem Bedienteil gesteuert, welches neben einem Ein/Aus-Schalter und einem Betriebsstundenzähler einen Drehschalter zum Wählen der Lüfterstufe enthält.
Der besagte Drehschalter leitet eine kleine Spannung (ca. 2V) weiter. Mit dem hier besprochenen Relais bzw. seinem Bruder mit 8 Kanälen könnte ich den Schalter ersetzten und der Rest passiert in Software. Das würde ich soweit hinbekommen.
Ich möchte jedoch hardwareseitig sicher stellen, dass niemals mehr als einer der Kanäle geschaltet ist. Der Drehschalter kann auch immer nur eine Position einnehmen und ich möchte nicht ausprobieren, ob die Steuerung ein Schalten von mehr als einem Kanal gleichzeitig überlebt.
Ich wäre dankbar für einen Hinweis auf eine Baugruppe die sich quasi verhält wie eine Gruppe Radio-Buttons, also jeweils sicherstellt dass bei einer Betätigung zuvor der aktuell durchgeschaltete Kanal unterbrochen wird. Meine Elektronik-Kenntnisse reichen leider nicht so weit, das ich wüsste wonach ich bei Google & Co suchen müsste.
Gibt es ein Bauteil oder eine Baugruppe die dies so leistet?
VG,
Axel
Hallo Felix,
wie gewohnt eine super Anleitung von dir.
Ich möchte das Relais zum an/ausschalten einer IR-Lampe (akkubetrieben) für intervallmäßige Nachtaufnahmen nutzen. Da mein PI samt Kamera und Lichtsensor ebenfall per Akku betrieben wird, wäre es super das Relais wirklich nur dann mit Strom zu versorgen, wenn es die Lampe anschalten soll, d.h. wenn der Lichtsensor ‚dunkel‘ meldet.
Soweit ich es verstanden habe zieht das Relais aber auch Strom, wenn es nicht angezogen ist.?
Besteht ggf. Möglichkeit, das Relais von einem gewöhnlichen GPIO Pin (nicht VCC) aus mit Spannung zu versorgen oder ist die Pin-Leistung nicht ausreichend dafür?
Hast du Ideen zur Umsetzung?
Danke für deine Hilfe.
Die Pin Leistung ist nicht ausreichen, allerdings kannst du einen Transitor verwenden und diesem per GPIO schalten.
Ok, danke für den Hinweis…
Ich würde gerne per cronjob um 6 Uhr morgens ein Relais schalten, aber nur wenn ein Schalter ein GPIO.High Signal ausgibt. ist der schalter Low soll nichts geschehen.
Mein Code sieht bis jetzt noch sehr schmal aus:
dabei soll das gleiche script auch nochmal um 8 uhr morgens starten aber je nach dem auf welcher position der schalter steht eins von beiden starten und das andere nichts tun. wäre sehr froh über eine korrektur meines scripts. lg und danke
Ich habe deinen Code im Kommentar angepasst. Was du allerdings mit „eins von beiden starten und das andere nichts tun“ meinst, verstehe ich nicht. Du hast doch nur ein Relais definiert?
Hallo Felix,
ich würde gerne einen Türöffner bauen, den ich zusätzlich zum vorhandenen Öffnungstaster an meiner Klingelanlage nutzen kann. Die Türöffnung erfolgt mit 12V. Kann ich diese Konstellation mit den von dir angegebenen Komponenten lösen? Am liebsten wäre mir, wenn ich das Relais ohne externes Netzteil betreiben könnte.
Bin Neuling auf dem Gebiet der Elektrotechnik und würde mich freuen, wenn du mir helfen würdest.
Hallo Jan,
ja das funktioniert. Die 12V müssen aber natürlich extern angeschlossen werden. Falls dein Relais sich nur mit 5V schalten lässt, so kannst du einen Transistor verwenden. An die Basis kommt der GPIO und an den Kollektor die 5V vom Pi. Emitter an den Relais Input und fertig.
Moin Felix,
ich bastel grad mit den Relais etwas rum.
Da stellt sich mir die Frage, wie kann ich am Ende eines Python skripts „sudo shutdown“
einbauen, damit der RPi sich nach Programmende selbsttätig runterfährt.
MfG Hauschi
os.system("shutdown now")
???oder muss da noch ein „sudo“ mit rein?
Ja, mit sudo. Herunterfahren benötigt root Rechte
Hi Felix,
hab schon viel mit 1kanal relais gespielt, auch schön incl transistor usw, hat alles geklappt. nun hab ich mir dieses 2kanal relais bestellt. https://www.amazon.de/gp/product/d/B01EYW5SJM/ref=mp_s_a_1_4?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3%91&qid=1484996422&sr=8-4&pi=AC_SX236_SY340_FMwebp_QL65&keywords=2+kanal+relais+5v&dpPl=1&dpID=51tiO5y84wL&ref=plSrch
hab ne ganze weile gebraucht… es schaltete nie, hab auch direkt an 3.3V und 5V angeschlossen und es funzt nicht.
nun sehr zufällig habe ich VCC an 5v GND an GND und hab IN1 an GND angeschlossen und es hat geschaltet.
ist das ein fehler oder werden die tatsächlich über masse gesteuert?
und wie steuer ich die nun sicher über gpio? auch über transistor nur anders rum?
MfG Hauschi
Hallo Hauschi,
deine Vermutung ist richtig, die Relais schalten sobald Masse-Potential an den Eingangspins liegt. Deshalb musst du auch den zugehörigen GPIO Pin auf High setzen um den Ruhezustand zu definieren. Soll das Relais jetzt schalten, dann setzt du den GPIO Pin auf Low.
Beachte bitte das zeitliche Verhalten der GPIOs.
Normalerweise ist die Abfolge der GPIO Initialisierung so, dass du zuerst den Typ (Input oder Output) definierst und dann einen Wert (High oder Low) zuweist. Dabei ist Low der Default-Wert!
Sobald du einen GPIO als Output definierst, wird dieser Pin somit automatisch auf Low (Default) gesetzt. Das heißt aber, dass dein Relais sofort anzieht! Dieser Zustand bleibt auch so bis du den Pin aus High setzt.
Willst du einen solchen Zustand vermeiden, kannst du allerdings die Reihenfolge der Initialisierung ändern:
Setz zuerst den Wert auf High und dann erst definierst du den Pin als Output. Jetzt bleibt auch das Relais im Ruhezustand bis du explizit den GPIO auf Low setzt.
HTH
Gunter
ich habs jetzt schon anders gelöst. ich hab nen transistor zw eingangspin und gnd gebaut. und schalte den transistor dann mit nem high signal.
so hab ich sozusagen aus lowactiv wieder ein highactiv gebastelt und die gpios sind in sicherheit.
LG Hauschi
Hallo liebe Raspberry PI User,
möchte dieses Relais über ein Monitor-Panel (Touchscreen-Monitor)schalten, also 4 Taster „Ein“ und 4 Taster „Aus“,
oder 4 Taster, ein Tasterdruck „Ein“ nächster Tasterdruck „Aus“.
Kann mir bitte da jemand weiter helfen.
Besten Dank
Viele Grüße
Mexico67
Schau dir mal dieses Tutorial an, das hilft wahrscheinlich: Teil1 + Teil 2
Hallo Felix
vielen Dank für die schnelle Antwort.
Das Skript ist in Ordnung funktioniert auch einwandfrei.
Aber der Taster ist auf dem Beard Board installiert. Wie bekomme ich aber den Taster virtuell
auf den Touchscreen um per Mausklick die LEDs (Relais) schalten ??
Viele Grüße
Mexico67
Du könntest an die beiden Enden des Tasters Kabel löten und diese ggf. per GPIO und einem Transistor o.ä. schalten.
Hallo Felix
was haben die Kabel des Tasters mit dem Touchscreen zu tun??
Willst du mich vergackeiern??
„Aber der Taster ist auf dem Beard Board installiert. Wie bekomme ich aber den Taster virtuell … schalten ??“
Wie willst du den Schalter per Software schalten? Indem du z.B. einen GPIO schaltest, welcher die Funktion übernimmt. Dafür muss der Schalter aber quasi ersetzt werden, weshalb du Kabel dran löten müsstest. Den GPIO kannst du widerum per GUI schalten. Und nein, ich will dich nicht „vergackeiern“…
Hallo Felix
super, jetzt haben wir uns gedanklich verstanden. Habe mich ein Bisschen umständlich ausgedrückt. Entschuldigung.
Vielen Dank für die Info “ GUI schalten“ ist genau das, was ich gesucht habe.
Viele Grüße
Mexico67
Ich steuere 8 GPIO Ausgänge über PHP! Funktioniert auch soweit gut.
Es wurde ja schon oft geschrieben, das man Transistor Schaltungen verwenden sollte damit die Relais auf dem 8-Kanal Relais Modul im Ruhezustand nicht ständig geschaltet sind.
Gibt es da was fertiges in einer 8-Kanal Variante oder muss man selbst löten?
Vielen Dank vorab!
Hallo Dirk, ja, es ist immer eine gute Idee mit Transistoren zu arbeiten.
– Die Dinger kosten ein paar Cent, der zerstörte Pi ist um ein vielfaches teurer.
Ich bekomme immer Bauchweh, wenn ich hier die Ansteuerung dieser 4-, 8-, n- Kanal Relais Module direkt über die GPIOs sehe/lese.
Such bitte mal nach ULN2803A und schau dich in einschlägigen Mikroelektronikforen* um.
Suchbegriffe: { Raspberry & Relais & ULN2803 }
Wenn du nicht weiter kommst, melde dich einfach nochmal.
WinkeWinke.
*Das soll keine Schleichwerbung oder SPAM sein, ich möchte nur nicht, dass die Leute ihren Pi zerheizen.
So, ich hab das mal im Eilverfahren skizziert.
Schaltplan Pi & ULN2308A & 8 Relay Module (Modul nur die Kontakte skizziert)
http://up.picr.de/28448345qj.jpg
Egal was der Pi beim Booten für Faxen macht, die Ansteuerung der Relais erfolgt nur dann, wenn die GPIOs auf HIGH gehen.
Bei dem verlinkten Schaltplan:
Die „scheinbaren“ Ausgänge an dem ULN werden auf GND des ULN gezogen, wenn der entsprechende Eingang (vom GPIO kommend) auf HIGH geht, und auch NUR dann!
Die paar Cent sollte man investieren und seinen geliebten Pi mit dieser sauberen Lösung schützen.
Gruß…
Hallo,
ich habe deinen Rat mit dem ULN2803a umgesetzt ,Danke noch für deine
Zeichnung funktioniert sehr gut ,jedoch mit dem Jumper habe ich nicht hin bekommen,
wenn ich den abziehe leuchten die LED´s die Relais schalten aber nicht .Die Spannung
bekommen die 8 Relais über die VCC von der Leiste .Ist das richtig ?
Danke noch einmal
Ich besuche die Seite regelmäßig und gerne, nur leider nervt mich der „Blog abonnieren“ Dialog der JEDES MAL AUFS NEUE erscheint.
So langsam regt mich das echt auf. Muss doch nicht sein. Irgendwann meide ich diese Seite komplett.
Ein „Blog abonnieren“ in der Seitenleiste wäre komplett ausreichend und störtniemand!
Hey,
löschst du evtl. deine Cookies jedes Mal? Normalerweise sollte das Popup nach dem Schließen für die nächsten 30 Tage deaktiviert sein (sofern Cookies aktiviert sind).
Servus,
ich mich nun durch einiges an Text gekämpft. Vielen Dank für den Support und die Tutorials vorab!
Ich möcht eine 12V Pumpe mittels Relais steuern und externem 12V Netzteil.
Schaltung wie hier verkabelt https://youtu.be/xIQI4haTSPE
Mich wundert das der Jumper zur Trennung nicht gezogen bzw. umgesteckt scheint. 5V vom Pi an das Relais und 12V über die Relais Klemme direkt zur Pumpe.
Wie ist die Funktion des Jumpers? Was passiert beim umstecken auf GND und was beim abziehen?
Vielen Dank im Voraus!
Hallo Felix,
ich habe nun schon einige 2x Relais ausprobiert und so angeschlossen wie oben beschrieben.
VCC auf Pin1 3,3V
GND auf Pin6
Input1 auf Pin11
Aber kein Relais schaltet. Habe auf Pin 11 eine LED zwischengeschaltet und die leuchtet wenn ich auf Pin 11 ein High gebe.
Wenn ich , wie weiter oben gelesen aber den Eingangspin des Relais Boards auf einen 2. GND vom RPI lege, dann schaltet das Relais jedes Mal ohne Probleme.
Also VCC=3,3V , GND auf Pin6 und Input1 (auch mit 2 getestet, immer das Selbe) auf GND Pin25 und das Relais schaltet.
Woran kann das liegen, weiß nicht mehr so richtig weiter.
Ich habe das gleiche Problem wie Rene:
Das Relais reagiert dann, wenn ich an einen der Steuerungspins GND anlege (oder wieder wegnehme). Wenn ich einen GPIO-PIN nehme, reagiert das Relais weder auf HIGH, noch auf LOW.
Bin selbst drauf gekommen.
Muss nicht auf High sondern auf Low schalten.
Habe mir dieses Relais geholt: https://www.amazon.de/gp/product/B005WR72S4
Ist das gleiche wie im Bild oben. Es funktioniert soweit auch theoretisch. Die LEDs gehen beim Schalten auch an und aus, ich höre beim Schalten auch einmal ein leises klacken, aber das Relais schaltet nicht. Der Strom fließt immer nur bei einem Kontakt. Mache ich etwas falsch oder ist das Board defekt? Habe es an 2 der 4 Relais getestet.
gelöst, es mussten 5V sein und nicht wie hier beschrieben 3,3V
Hallo
Ich habe eine Waschmaschine die ich
Mit dem Raspi Steuern möchte .Dafür
Benutze ich die und noch andere
Relais
Udo
Hallo Felix liebe RaspiUsers
Vielen Dank für das Tutorial! Ist es möglich, das Relais verspätet (ca. 10 Sekunden nach dem Start des PIs) zu schalten. Wenn ja, kannst du mir dabei helfen?
Ich habe mit dem PI als Grundlage ein Autoradio gebaut. Wenn ich nun das Radio starte gibt es ein knacken auf den Boxen, da die Endstufe bereits läuft, wenn die externe USB Soundkarte gestartet wird. Nun möchte ich die Endstufe mit Hilfe des Relais verspätet (nach der Soundkarte) starten und somit das Knacken auf den Boxen verhindern.
Danke im Voraus!
Simon
Ja, einfach ein Skript in den Autostart stellen, das 10 Sekunden wartet und dann deine Aktion ausführt.
Wenn ich mein Relaikarte mit 5V betreibe soll ein 1k Wiederstand stumpf zwischen IN und GPIO ?
Oder muss der dann zusätzlich noch gegen 3V oder GND laufen ?
So
IN —[1k]— GPIO
oder So ?
IN –[1k]— GPIO
— GND/V
Hallo,
das sieht alles sehr interessant aus.
Ich habe mir folgendes Relai gekauft https://www.amazon.de/gp/product/B00PIMRGN4?ie=UTF8&linkCode=as2&camp=1634&creative=6738&tag=754-21&creativeASIN=B00PIMRGN4
Ich möchte 2x Rolladenmotoren steuern mit einem Standard Taster (auf/zu) und den Motor Stoppen mit dem Taster.
Gibt es hierzu ein Beispiel?
Danke.
Du kannst dich am Beispiel der Ampelschaltung orientieren, nur dass du statt LEDs eben Relais steuerst.
Danke für die Info.
Wenn ich das richtig verstehe brauche ich pro Rolladenmotor 2x Relais ?
Relai1 Motor rauf, Relai2 Motor runter.
Wenn du je einen Motor für auf und ab hast – dann ja.
Hi,
ich bin dabei ein Projekt mit einem Freund zu starten, ‚Smart Schreibtisch‘ . Er ist dabei für die Programmierung (da er auf diesem Gebiet studiert) und ich für Verschaltung und Material verantwortlich.
Im Schreibtisch soll pc und Raspi mit externer Lüftung verbaut werden.
Der Raspi soll mit Hilfe der Relais Lautsprecher, Bedienpanel und lasertastatur Ausfahren lassen. Außerdem möchte ich ein Display in den Tisch integrieren, der mir zb Wetter anzeigen soll. Mit Hilfe eines Kapazitiven Sensors, an der Seite des Tisches, soll das Bedienpanel Ausfahren womit der Rest angesteuert wir.
Der Raspi soll außerdem ein LED lauflicht um den Tisch herum (LED Band in der Tischkante Frontal verbaut) starten um das Starten des PC‘S zu zeigen.
Hoffe auf Kritik, Hilfe und Tipps für mein Projekt!
Ps: Viele Fragen haben sich durch die Tutorials auf dieser Seite erübrigt!! Vielen Dank!
Hallo zusammen,
ich nutze eine Relaissteuerung um ein großes Wasserbecken mit einer Tauchpumpe abzupumpen. Hierzu habe ich ein Script geschrieben, das den Wasserpegel überwacht und bei einem niedrigen Wasserstand das Relais ausschaltet (welches eine Steckdose an/aus schaltet), damit die Tauchpumpe nicht trocken läuft.
Hierzu nutze ich ein Relais (Speisespannung 3V3 vom RaspberryPi) mit Transistoransteuerung (ein ähnliches Modul wie oben im Artikelbild). Ich habe mich gewundert, warum das Relais beim Initialisieren der Ports gleich ansprang, wo ich doch den Pegel des Outpins auf LOW gesetzt habe.
Als ich dann mit meinem Breadboard das ganze mit einem Minimalscript getestet habe wieder das gleiche!
Dann habe ich Timer eingebaut über das Modul time mit dem time.sleep(3) Befehl, so dass das Relais verzögert angesprochen wird, da die Impulse zu schnell kamen mit dem obigen kleinen Script und habe die zu erwartende Reaktion mit print(„Relais aus“), bzw an nachvollzogen und mehrere Schaltungen durchgeführt…jetzt tat sich endlich was und ich habe gemerkt, dass mein Relais mit LOW geschaltet wird und HIGH ausgeschaltet wird…darauf muss man erstmal kommen!
Deshalb hier die ausführliche Nachricht, welche Hindernisse ich für ein befriedigendes Ergebnis hatte.
Hallo Felix,
vielen Dank für deine Tutorials, sie helfen mir wirklich sehr beim einstieg. Ich habe mir das unten angegebene Relais gekauft und deine Schaltung nachgebaut. Die LED am Relais ändert auch wie erwartet ihren Zustand. Aber das Relais schaltet nicht. Also die angeschlossene Pumpe beginnt nicht zu laufen. (Ohne Relais läuft sie perfekt)
Ich habe eine andere Verkabelung im Netz gefunden die die 3.3V und IN auf der einen Seite und GND und VCC-JD auf der anderen Seite der Relaiskarte (Jumper entfernt, VCC-JD an 5V) verbindet. Wenn ich das so mache höre ich ein ganz leises Klack. Allerdings ist das sehr schwach und es passiert trotzdem nichts.
Nun die Frage:
Ist das Relais vielleicht kaputt oder was könnte ich falsch machen?
Kannst du ein Relais für den Raspberry Pi 1 B empfehlen?
Lieben Dank
Andreas
https://www.amazon.de/gp/aw/d/B005WR753Q/ref=yo_ii_img?ie=UTF8&psc=1
du kannst ggf. einen Transistor für 5V verwenden und diesen mit den GPIOs schalten, welcher dann wiederum das Relais schaltet.
Hallo miteinander,
ich bastele seit einigen Abenden ebenfalls an einem Relais, das von meinem Raspberry gesteuert werden soll. Leider komme ich jedoch nicht weiter.
Ich schließe VCC an einen 5V-Ausgang vom Raspbi an, GND auf GND und das Eingangssignal auf einen freien GPIO. Wenn ich den entsprechenden GPIO nun als Output konfiguriere schaltet das Relais. Ob ich den Pegel des entsprechenden Pins dann auf High oder Low setze tut nichts zur Sache – das Relais schaltet weiterhin. Wenn ich aber die Signalleitung direkt auf Masse schalte, schaltet das Relais durch. Woran kann das liegen?
Ich habe mir den Bericht von Johannes aus dem Jahr 2016 angeschaut – kann es sein, dass der Lösungsansatz mit Transistor bei mir auch Abhilfe verschaffen könnte?
Viele Grüße,
Hellma
Ich stelle mir die Lösungs grade so vor, dass ich die Basis an GPIO, Kollektor an IN des Relais und den Emitter an GND anschließe. So würde dann eine Verbindung von IN nach GND zustandekommen, wenn ich den GPIO auf High setze – macht das Sinn soweit?
Rückmeldung: hat geklappt! 🙂
Kannn man es auch so programieren das ich durch einen Tasterdruck eine GPIO eingabe ablaufen lassen kann.
Ja, siehe Raspberry Pi Ampelschaltung mit GPIO Teil 2
Moin, kann ich mit einem 2x4x0,6 Kabel das 5V Signal wohl so 10 Meter weit schicken?
autsch….habe auch die relais „SainSmart 4 Kanäle RelaisModul Brett 5V Für Arduino PIC AVR DSP ARM Relay Module “ mir gekauft. auch bei mir funktioniert die schalterei nicht….da ich blutiger anfänger bin, verstehe ich auch das script nicht :
——————————————–
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) # GPIO Nummern statt Board Nummern
RELAIS_1_GPIO = 17
GPIO.setup(RELAIS_1_GPIO, GPIO.OUT) # GPIO Modus zuweisen
GPIO.output(RELAIS_1_GPIO, GPIO.LOW) # aus
GPIO.output(RELAIS_1_GPIO, GPIO.HIGH) # an
——————————————–
nun, ich bekomme über den GPIO 17 es nicht hin, das mein relais anzieht….
die 3 anderen relais habe ich auf GPIO 27,22 und 10 gelegt.
benötigen die nun 3,3V oder 5V ? oder überlaste ich den raspi, der an den anderen eingängen schon sensoren hat (ds18b20 & dht22 & bmp180) ?
ansonnsten, prima tutorial…..nur manches (wie dieses script) erklärt sich NICHT für einen anfänger !
Kleine Verständnisfrage für mich als blutigen Anfänger: Für was wird der Jumper VCC-JD/VCC/GND auf der Relais-Platine benötigt? Muss da auch Masse angeschlossen werden? Danke für eine kurze Rückmeldung!
Wenn ich mich nicht täusche, kannst du dort auswählen, ob das Relais Strom vom Arduino/Rasp bekommt, oder über ein eigenes Netzteil.
Hallo Felix,
ich beschäftige mich grade mit folgender Frage bzw. Gedankenprojekt..
Ich habe in einem Mobilheim eine Gas-Therme. Diese wird einmal über Strom versorgt, es muss aber zum tatsächlichen Einschalten ein Knopf gedrückt werden.
Nun ist es ja so, dass man zum Beispiel im Winter für längere Zeit nicht darin lebt und alles abgeschaltet wird, auch die Gas-Therme. Für das Starten aller Services wird Strom für einen Router und einen RPi bereitgestellt.
Nun weiß ich also, dass ich in etwa einer Stunde vor Ort sein werde, aber die Bude soll nicht kalt sein.
Über Internet wird der RPi angewiesen die Steckdose der Therme einzuschalten. Damit ist die grundsätzliche Betriebsbereitschaft gegeben…nur wie schalte ich den Knopf?
Was ich nicht möchte ist, in der Elektronik herumpfuschen…sonst habe ich Bedenken, dass ich beim Eintreffen mein Mobilheim zusammenkehren kann.
Daher liebäugel ich eigentlich mit einer Hubmagnetlösung oder einem Roboterfinger (vielleicht etwas übertrieben).
Hast Du oder jemand hier aus der Community einen Tipp für einen Anfänger?
Hey Felix,
Ich versuche schon seit längerer Zeit ein Phyton Programm für eine Zeitschaltuhr zu programmieren.
Da ich noch neu in diesem Gebiet bin kenn ich mich noch nicht wirklich damit aus. Mit diesem Programm möchte ich dann Relais ansteuern welche die Signale an eine Glühbirne weiterleiten. Nun zu meinen Problem. Die Lampe schält sich nicht in den gewünscht Zeitabständen aus. Ich bin mir sicher das dies am Programm liegt. Könntest du mir ein Vorschlag geben wie du es am besten schreiben würdest.
MFG
Hi, Felix,
bei meinem RPI3 schaltet das Relais mit 3V nicht zuverlässig. Mit 5V geht es mit einem 4,7kOhm in Reihe an IN (nicht wie oben geschrieben 1k – da bleibt das Relais immer angezogen).
Viele Grüße,
Jens
Auch wenns schon älter ist…
Alle Relaiskarten ( egal ob für Raspi oder sonnstwas ) die ich bisher verbastelt habe arbeiten mit Optokopplern und haben einen Jumper den man abziehen kann.
Schalten die 8 / 16 Kanal E-Bay dinger nicht mit 3,3 Volt ( oder will man dem Raspi das nicht zumuten ) zieht man den Jumper ab und gibt auf den Pin der NICHT MIT MASSE ODER +3,3 VOLT VOM Raspi verbunden ist halt +5Volt vom Raspi-Netzteil. Masse bezieht man dann auch ZUSÄTZLICH vom Raspi-Netzteil. Dann schaltet auch alles gut und der arme kleine Raspi wird auf seinen Leiterbahnen nicht überlastet. Er muss ja nur noch die Optokoppler bedienen.
Und noch ein kleiner Tipp: Ich nutze alte ATX-Netzteile für den Raspi + Pheripherie, baue die Schaltung fertig auf und messe dann den Strom der fliesst. Dann erst kaufe ich mir ein passendes Netzteil.
Werde mir jetzt auch mal ein Relai bestellen damit ích den Stromkreis der aufgeschraubten Zeitschaltuhr schließen kann. Die Zeitschaltuhr kommt dann zwischen Steckdose und Kaffeemaschine. Auf dem Pi Zero läuft dann ein Python-Serverscript welches mit meiner APP über das WLAN gesteuert werden kann und den Kochvorgang startet sobald ich morgens aufwache und mein wecker klingelt.
Hallo zusammen!
Ich nutze das Relaisboard, um meine Türklingel smart zu machen.
Ein Einzel-Relais (https://www.amazon.de/gp/product/B00HPLOPQC/) wird vom Klingelknopf angesprochen. Dessen „Ausgang“ zieht mir (wenn jemand klingelt) einen GPIO-Port auf Masse. Dann schaltet ein RasPi-Relais, und meine Türklingel klingelt. Gleichzeitig steuere ich (über den RasPi) eine Funkklingel an, die im zweiten Stockwerk hängt. So klingeln dann beide gleichzeitig.
Hallo,
eins verstehe ich nicht bei diesen Relais Boards. An den Eingängen ist ein Optokoppler für die galvanische Trennung. Ist auch auch ok so. Aber in dem Optokoppler ist eine Led im Eingang. Nach dem Datenblatt zieht diese Led -20mA. Also bei 8 Relais -160mA. Das ist doch viel zuviel Strom für den Raspi. Ist der langsame Raspi gpio Tod vorprogrammiert? Auf Youtoube sieht man wie 16 Relais an die pins angeschlossen werdem.
Es funktioniert ja tatsächlich.
Danke für dieses Tutorial, es hat mir sehr weiter geholfen. Ich habe aber ein paar Hinweise vermisst, die ich an anderer Stelle fand.
Mein Ziel: einen alten Raspberry 2 als Schalter einsetzen und Festplatten, Licht und zwei weitere Raspberrys zu schalten. Nur shell Befehle.
Der Weg: ein 8fach Relais Board von Elegoo (Amazon), dass dem Board oben ziemlich ähnlich sieht. Raspi OS lite. Mein Elegooboard wurde mit einem Stecker Flachbandkabel geliefert, die Stecker sind „male-female“; anscheinend für Arduino vorbereitet. Einen Satz (10x) Steckkabel von Renkforce female-female hatte ich noch. Da ich sehr umsichtig bin, nutze ich keine 330Ohm Widerstände als Schutz des RPi2, sondern ich schalte das Elegoo Board direkt auf die gpios. Bei mir hat es funktioniert. Sollte mir ein RPi irgendwann mal kaputt gehen, werde ich in Zukunft immer 330Ohm Widerstände einsetzen.
Was habe ich gemacht:
1. ssh pi@192.168….
2. apt-get install wiringpi – mehr Software ist anscheinend nicht notwendig.
3. alle 10 Pins des mitgelieferte Flachbandkabel auf das Elegoo gesteckt; schwarz auf Pin1 GND usw.
4. das schwarze Kabel GND Masse auf Pin6 (0V – Masse) vom RPi geschaltet. Die beiden Boards kennen sich jetzt.
5. den Jumper habe ich stecken lassen und die 5VCC (braun, Pin10) des Elegoo Boards auf Pin2 des RPis gesteckt. Das Elegooboard hat jetzt Spannungsversorgung 5V.
6. den Pin IN1 (weiß) des Elegooboards auf den Pin26 (gpio7) des RPis gesteckt. Relais1 ist aufgeschaltet. Vorsichtig sein mit offenen Steckverbindungen und Kurzschlüssen. Genau schauen, was wohin gesteckt wird.
7. auf der shell: gpio -g mode 7 out eingegeben – gpio7 ist jetzt als Steuerausgang vorbereitet
8. auf der shell: gpio -g write 7 0 – die LED1 geht an und das Relais1 zieht und klackt laut
9. auf der shell: gpio -g write 7 1 – die LED1 geht an und das Relais1 fällt ab und klackt etwas leiser
10. die restlichen Kabel richtig(!) aufgesteckt (genau schauen was wohin) und ein script geschrieben, dass aus der /etc/rc.local gestartet wird und permanent auf eine samba Freigabe schaut und Relais schaltet.
Mein Problem war dies:
Beim Hochfahren des RPi, kurz bevor ich mich per ssh einwählen konnte, klackerten ziemlich alle Relais unkontrolliert für ca. 2 Sekunden sehr schnell ein und aus. Danach startet das OS und das script übernimmt die Steuerung. Das wäre nicht gut für meine Lampen und Festplatten und anderen RPis gewesen.
Die gpio müssen deutlich vor dem Hochfahren des OS schon in den richtigen Modus und in die richtige Lage versetzt werden.
Es hat etwas gedauert, bis ich diesen Hinweis fand:
https://www.heise.de/ratgeber/Raspberry-GPIO-Pins-beim-Booten-initialisieren-4782030.html
In der /boot/config.txt in der letzten Zeile dieser Eintrag:
gpio=14,15,18,23,24,25,8,7=op,dh
Dadurch werden die gpio (14,15,…) als Ausgang (op) auf „dh“ gelegt und die Relais werden von Anfang an ausgeschaltet. Und das ca. 5 Sekunden, bevor mein script wirken kann.
Ich hoffe, ich konnte Vielen das Suchen nach diesem Hinweis ersparen.
Ich habe ein paar Messungen durchgeführt und gebe die Infos gerne weiter:
* der Optokoppler zieht über eine LED 2mA: das kann ein gpio anscheinend bedenkenlos verarbeiten. Die 330Ohm habe ich mir gespart. Die LED wird gegen Masse geschaltet, daher scheint ein Vorwiderstand für die LED nicht notwendig zu sein.Ich würde den Widerstand einsetzen, wenn das mein einziger RPi wäre. Immerhin ist das gpio als offener Ausgang geschaltet. Ich denke, ein Kurzschluss killt ein gpio. Kurzschlussfest werden die gpios erst durch den 330Ohm Widerstand. Ich habe es aber noch nicht ausprobiert, es ist eine Vermutung.
* jedes geschaltete Relais zieht ca 70mA (Ocean: natürlich nicht über den gpio): da ich Bedenken habe, diese 8x70mA über die 3,3V Spannungsversorgung des RPis zu ziehen, habe ich das Elegooboard auf 5V betrieben. Anscheinend gibt es mit diesem Board keine Probleme. Wie das mit anderen Boards ist, kann ich nicht sagen. Ich habe ein 2A Netzteil für die gesamte Sache eingesetzt.
Zwei kurze Hinweis noch, da Ocean, so denke ich, mindestens einen Gedankenfehler macht:
Optokoppler trennen galvanisch, das ist richtig. Die galvanische Trennung wird aber nicht konsequent fortgeführt, da das Elegooboard und der RPi über die Masse und 5V verbunden sind. Da ist keine galvanische Trennung mehr vorhanden. Die „galvanische Trennung“ passiert in den Relais. Dort ist der notwendige Abstand zwischen den todbringenden 230V und mir. Ab diesem Punkt darf natürlich die Masse (0V) nicht mehr weiter verbunden werden. Das muss man verstehen, wenn man 230V schalten will – so wie ich das vorhabe – und die Relais sind ausgewiesen, 230V schalten zu können.
Ich weiß, ich muss mich mehr mit diesen Dingen auseinandersetzen. Gerade, was die 3,3V Spannungsversorgung und die Vorwiderstände betrifft. Ein RPi ist als Schulungsdevice angedacht worden.
Trotzdem, bis hierhin sieht es alles sehr gut aus.
Hallo,
Ich würde gerne am Rasberry Pi Pico einen Stromkreis öffnen und schließen und öfters abfragen, ob der Stromkreis geöffnet oder geschlossen ist. Damit möchte ich dann eine andere Aktion triggern. Hätte jemand eine Idee, wie ich das anstellen kann? (MicroPython)
Danke im Vorraus und Liebe Grüße
Elias
Wenn es der Raspi ist, der den Stromkreis öffnet und schliesst, brauchst du ja nichts abzufragen.
Ich bastle grad ne Steuerung für ein Förderband, welches zum einen über ein Relais, welches wiederum einen Motorschütz schaltet, welches den Förderbandmotor mit 380V versorgt. Vom Förderband wird Fördergut über verschiedene Klappen entnommen, die pneumatisch betätigt das Fördergut in Behälter leitet, welche der Raspi auswiegt und mittels weiterer Relais die entsprechenden Luftventile (220v) anspricht.
Im ersten Schritt 5 Wiegestäbe, 4 Pneumatikzylinder und der Förderbandmotor. Wenns funktioniert, fällt mir sicher noch mehr ein – irgendwann werden die gpios knapp 😉
Oder sollte man die Aufgabe auf mehrere Picos verteilen?
Bei mir kommt beim Skript eine Fehlermeldung für Zeile 5