Raspberry Pi Relais schalten über GPIO

2
3067
Relais Raspberry Pi
Relais Raspberry Pi

Relais über den Raspberry Pi zu schalten, gehört bei fast jeder Heimautomatisierung dazu. Man benötigt dazu Relais die mit 5V laufen. Diese Relais kann man sehr günstig einkaufen. Es gibt sie vom 1-fach Relais bis zum 16-fach Relais Brett. Das 16-fach Relaismodul benötigt meist eine eigene Stromversorgung. Pro Relais kann im Normalfall (je nach Type) bis zu 220Volt mit 10 Amper schalten. Natürlich aber auch geringere Spannungen.
Für die Verwendung der Relais über den Raspberry Pi muss am Raspberry Pi die Software WiringPi installiert sein. Wie man WiringPi auf dem Raspberry Pi installiert, findet man auf der WiringPi.com Webseite.

Aufbau und Verkabelung Raspberry Pi 4-fach Relais.

4-fach-Relais Raspberry
4-fach-Relais Raspberry – Schaltung funktioniert, ist aber nicht optimal. Siehe weiter unten!

Pin 2 vom Raspberry Pi (5v) kommt zum VCC Pin am Relais.
Pin 6 vom Raspberry Pi (Ground) kommt zum GND Pin am Relais.
Wir haben nun in diesem Beispiel die GPIO Ports 12,16,20,21 am Raspberry (Pin 32,36,38,40) mit den Pins IN1 IN2 IN3 IN4 am Relais verbunden. (Achtung: Diese Belegung am Raspberry Pi gilt für alle Rev.2 Versionen. In diesem Beispiel arbeiten wir mit einem Raspberry Pi 3 Model B. Model B = Rev.2).
Wenn man alles richtig, wie auf dem Plan angesteckt hat, so leuchten alle 4 Dioden am Relaismodul leicht.
Nun können wir beginnen, die Relais zu schalten.
Als Erstes werden die GPIOs aktiviert. Dies funktioniert mit dem Befehl:
gpio export xx out

Hier kann man dann nun ein klicken vom Relaismodul hören und die Diode leuchtet hell rot.
Wir können nun diesen Befehl mit allen GPIOs durchführen, um alle Relais zu aktivieren.

Relais Raspberry Pi
Relais Raspberry Pi

Als Nächstes kann man dann mit dem Befehl:

gpio –g write xx 1

und

gpio –g write xx 0
die einzelnen Relais schalten.

Wird ein Relais nicht mehr benötigt, so kann man sie mit:
gpio export xx in

wieder deaktivieren.

Mit dem Befehl gpio -g read xx kann man den Status von einem Relais abfragen.

Hinweis!

Diese ist nur eine Testschaltung. Wer dieses System fix betreiben möchte, sollt zwischen GPIO und den IN Pins einen Widerstand mit 1kΩ geben!

 

 

Zum Thema Wiederstand ja oder nein Raspberry Pi Relaisboard

Wenn man das Relaismodul direkt über die GPIOs am Raspberry betreibt, so sollt man scheinbar doch die Wiederstände einbauen. Man findet dazu Angaben, welche von 480 Ohm bis 1K Ohm gehen. Es geht hier scheinbar nicht darum, dass der Raspberry gegrillt wird, sondern um die Relais. Wenn zu viel Reststrom auf dem Optokoppler-LED vom Relais bleibt, so wird dieser schnell kaputt.

Und ist auch tatsächlich so wie es scheint. Wenn man die Relais ohne Wiederstand betreibt, so leuchten die LEDs ganz schwach. Mit Wiederstand sind sie dann ganz abgeschaltet (LED Licht aus).

Hier ein Link zu diesem Thema

Schaltung der Relais

Jedes Relais hat 2 Anschlussmöglichkeiten. (3 Klemmen) je nach dem, welchen Zustand man im nicht geschalteten Zustand benötigt, offen oder geschlossen, kann man zwischen den Anschlüssen wählen.

Es gibt nun viele Möglichkeiten, mit diversen Programmen und Programmiersprachen, diese GPIOs zu steuern.

Falls man mehrere GPIOs am Raspberry benötigt, so kann man mit einem I2C Port Expander für wenig Geld die Anzahl GPIO Ports erhöhen. Mit dem MCP23017 (Preis ca. 1-2 Euro) bekommt man pro Stück 16 weitere GPIO Ports. Diese werden dann jedoch etwas anders angesteuert.

MCP23017 Preis:

Relais Preis:

2 KOMMENTARE

  1. > Diese ist nur eine Testschaltung. Wer dieses System fix betreiben möchte, sollt zwischen GPIO und den IN Pins einen Widerstand mit 1kΩ geben!

    1kΩ Widerstände sind bereits auf der Relaiskarte integriert (die 4 ganz links sind in Reihe mit der Optokoppler LED und der Signal-LED)

  2. Hallo,

    kann sein, dass ich mich irre, ich kenne die Schaltung des Relaisboards nicht so genau, aber, ich würde eine andere Vedrahtung vornehmen.

    Das Modul hat ja Optokoppler, um die Relaissteuerspannung von den GPIOs zu entkoppeln. Das ist ja der ursprüngliche Sinn der Optokoppler. Daher würde ich den Jumper (VCC / JD-VCC) ziehen, um die durch den Optokoppler getrennten Kreise, auch wirklich zu separieren. Und dann, bei JD-VCC und GND externe 5V einspeisen. VCC würde ich mit dem 3V3 PIN vom RPI verbinden. GND muss man gar nicht mit dem RPI verbinden. Der Strom (3V3 Pin) kommt vom RPI, fließt durch einen Vorwiderstand auf die Diode des Optokopplers und dann in den GPIO des RPIs, wenn der PIN auf LOW ist. Bei High fließt natürlich kein Strom.

    Oder, falls kein externes Netzteil vorhanden: Jumper ziehen und 5V vom RPI mit JD-VCC und 3V3 vom RPI mit VCC und GND mit GND verbinden. Die GPIOs des RPIs sind für 3V3 ausgelegt. Und damit sind zumindest die GPIOs von den Relais entkoppelt.

    Bei der vom Autor skizzierten Schaltung, wird ein 5V Potential über Vorwiderstand und Diode an die GPIOs angelegt. Im High Zustand liegen dort 3V3 an und ich kann mir vorstellen, dass aus dem 5V Pin ein geringer Strom gegen das 3V3 Potential fließt und deshalb die LED leicht leuchtet. Bei GPIO LOW begrenzt der Vorwiderstand vor dem Optokoppler den Strom, so dass nichts passieren wird. Für sauber halte ich das aber nicht. Ich kenne jedoch die interne Schaltung des RPIs nicht, um das genau beurteilen zu können. Macht aber irgendwie Sinn.

    In dem Link ist ein typischer Schaltplan eines solchen Relaisboards
    http://i.stack.imgur.com/xmruD.jpg

    Gruß

    Armin

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here