Raspberry Pi: Relaiskarte ansteuern

Falls ihr euch schon etwas intensiver mit dem Raspberry Pi beschäftigt habt, seid ihr eventuell auch schon auf Relaiskarten für den Arduino oder Raspberry in diversen Online-Shops gestoßen. In diesem Artikel möchten wir euch eine Anleitung zum ansteuern solcher Relais mit dem Raspberry Pi bieten – außerdem zeigen wir euch worauf ihr beim Anschluss solcher Relaiskarten achten solltet. Noch eins Vorab: Falls ihr Geräte mit hohen Spannungen betreiben wollt solltet ihr im Zweifelsfall euren Elektriker fragen – Hohe Spannungen sind Lebensgefährlich! 

Was wird benötigt?

Grundsätzlich benötigt ihr neben dem Raspberry Pi selbstverständlich auch eine entsprechende Relaiskarte – diese sind meistens zwischen 5 – 20 Euro in den verschiedenen Online-Shops erhältlich (je nach Relais-Anzahl). Für einen dauerhaften sicheren Betrieb sollten außerdem noch zusätzliche Widerstände vorgeschaltet werden – diese löten wir am besten auf eine Platine auf und später leichter die Kabel anschließen zu können. Alternativ kann man auch auf die Platine verzichten und die Widerstände direkt in das Kabel einlöten – wir bleiben jedoch in dieser Anleitung bei der Platinen-Variante.

Einkaufsliste:

Wie in jeder Anleitung findet ihr auch hier wieder eine Auflistung was für das folgende Tutorial benötigt wird – sollten euch bestimmte Bauteile fehlen, so könnt ihr diese einfach bei Amazon nachbestellen:

Raspberry Pi – Kosten ca. 30-40 Euro – siehe z.B. bei Amazon*.

MicroSD 32GB – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

Netzteil für Raspberry Pi – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

8er Relaiskarte – Kosten ca. 12 Euro – siehe z.B. bei Amazon*.

Verbindungskabel (f-m) – Kosten ca. 4 Euro (40 Stück) – siehe z.B. bei Amazon*.

Verbindungskabel (f-f) – Kosten ca. 4 Euro (40 Stück) – siehe z.B. bei Amazon*.

Gemischte Widerstände (470 Ω) – Kosten ca. 8 Euro (1280 Stück) – siehe z.B. bei Amazon*.

Platine (optional) – Kosten ca. 7 Euro (5 Stück)  – siehe z.B. bei Amazon*.

Lötkolben und Lötzinn – Kosten ca. 10 Euro – siehe z.B. bei Amazon*.

Bauteile Relaiskarte

Platine löten & anschließen:

Für den dauerhaften Betrieb einer Relaiskarte am Raspberry Pi benötigen wir an den GPIO-Verbindungskabeln jeweils einen Widerstand um die Stromzufuhr zu begrenzen. Dazu löten wir die Widerstände am besten auf eine extra Platine und verbinden diese dort wiederum mit Raspberry und Relaiskarte. Für eine 8er Relaiskarte benötigen wir somit 8 Widerstände mit 470 Ohm – dadurch wird die Belastung des einzelnen GPIO-Pins von 15-20 mA auf 7 mA reduziert.

Platine für Relaiskarte

An den Hauptanschlüssen finden wir zudem einen GND und einen VCC-Anschluss – den GND-Pin verbinden wir also auch mit einem GND-Port des Raspberry’s, der VCC-Port wird ebenfalls an unseren Bastelrechner an einen 3,3 Volt VCC-Pin angeschlossen. Den kleinen Jumper (Gelb oder Blau) auf der ganz rechten Seite der Relaisplatine müssen wir außerdem noch entfernen – dort finden wir dann einen JD-VCC Pin vor, diesen verbinden wir mit einem 5 Volt-Port des Raspberry Pi’s.

Relaiskarte JD-VCC

Raspberry Relaiskarte Schaltplan

Nachdem wir alle 470 Ohm Widerstände auf die Platine festgelötet haben, schließen wir nun die einzelnen Relaiseingänge daran an. Zum Schluss verbinden wir das ganze dann jeweils mit einem GPIO-Eingang des Raspberrys um später ein einzelnes Relais auch schalten zu können.

Raspberry Relaiskarte

Funktionstest:

Nachdem wir die Relaiskarte erfolgreich mit unserer Widerstands-Platine und unserem Raspberrys verbunden haben, können wir das ganze auf Funktion überprüfen. Dazu nehmen wir folgendes Testprogramm und ändern davor noch die Pin-Zuweisung, sodass es mit eurer Anschluss-Konfiguration zusammenpasst:

!/usr/bin/python
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)

# GPIO-Pins - Edit!!!

pinList = [5, 6, 13, 19, 16, 26, 20, 21]

# Loop through Pins

for i in pinList:
    GPIO.setup(i, GPIO.OUT)
    GPIO.output(i, GPIO.HIGH)

SleepTimeL = 0.2

# Loop

try:
  while True:

    for i in pinList:
        GPIO.output(i, GPIO.HIGH)
        time.sleep(SleepTimeL);
        GPIO.output(i, GPIO.LOW)

    pinList.reverse()

    for i in pinList:
        GPIO.output(i, GPIO.HIGH)
        time.sleep(SleepTimeL);
        GPIO.output(i, GPIO.LOW)

    pinList.reverse()

# End
except KeyboardInterrupt:
  print "  Ende"

  GPIO.cleanup()

Beenden könnt ihr das Programm wie immer mittels der Tastenkombi Strg+C.

Demo:



Arduino Relaiskarte am Raspberry Pi betreiben. (Bild: Xgadget.de)
Datum:
18.06.2016, 17:14 Uhr
Autor:
Stefan Kröll
Comments:
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

12 Comments zu "Raspberry Pi: Relaiskarte ansteuern"

  1. wolf sagt:

    wieso werden 470 Ohm Widerstaende zusaetzlich verbaut, da bereits ein Vorwiderstand von 1k auf der Platine vorhanden ist? Das CTR sinkt mit dieser Massnahme auf ca. 30% (bei einem Sicherheitsfaktor von 2 und VCC von 5V)der Optokoppler hat aber ein Minimum von 50%. Desweiteren ist der Optokoppler mit dieser Verschaltung reine Kosmetik, da GND nicht getrennt und somit keine galvanische Trennung gegeben ist.

    1. Stefan sagt:

      Die GPIOs des Raspberrys dürfen dauerhaft mit maximal 16mA belastet werden – für den Dauerbetrieb eher 8mA. Das Relais zieht aber laut Produktbeschreibung einen Steuerstrom von bis zu 20mA. Für kurzzeitigen Betrieb mag das wohl nicht weiter schlimm sein, aber auf Dauer könnte es vielleicht zu Schäden am Raspberry führen wenn man diesen ohne die 470 Ohm Widerstände betreibt.
      Bei mir persönlich läuft der oben beschriebene Aufbau bereits seit ca. 1,5 Jahre ohne Probleme 24/7 durch (Haussteuerung).

      1. Lucas sagt:

        Hi! Wäre es möglich, ein mal GENAU zu erklären,weshalb die 470 Ohm Widerstände benötigt werden?
        Stefans Erklärung ist zwar gut, doch ich bitte um eine Erklärung mit allen Einzelheiten.

        Ansonsten wären ein paar Stichworte zum Googlen nett. 🙂

  2. Axel Berger sagt:

    Das _Relais_ zieht so viel. Der Optokoppler, der genau deshalb da ist, hat an seinem Eingang bereits 1 kR und zieht damit maximal 3.5 mA (5 V minus U_LED). Den zusätzlichen Widerstand halte ich für Quatsch.

    1. Axel Berger sagt:

      Korrektur:
      Es ist sogar noch viel weniger, die Anzeige-LED liegt auch noch in Reihe, womit wir unter 2 mA kommen sollten.

      1. Karl sagt:

        Ich habe die folgende Frage: Ist es möglich, den Raspberry Pi mit der angeschlossenen Relaisplatine durch einschalten der Versorgungsspannung zu aktivieren und dann die einzelnen Relais automatisch anzusteuern. Nach einem Schaltzyklus wird die Stromversorgung abgeschaltet und z.B. 24h später wieder für einen Schaltzyklus wieder eingeschaltet.
        Das Ein bzw. Ausschalten erfolgt über eine per Mobilfunk anzusteuerndes Gerät.
        Wer hat damit Erfahrung.
        Würde mich auf Antworten freuen.

    2. Shuna sagt:

      Die 470 Ohm Widerstaende braucht man nicht.

  3. Noobie sagt:

    Ich hab mir ein relaisboard von kuman https://www.amazon.de/Kuman-Kanal-Relais-Module-Arduino/dp/B01C3PQFSU/?tag=amazon-info-21 besorgt und nun versucht dies mit meinem rpi anzusteuern, wie hier beschreiben. Leider passiert einfach garnichts ):. nicht mal die leds auf dem board leuchten. zwischen vcc ung gnd ist kein durchgang. ist das relaisboard schrott?

  4. Felix sagt:

    Guten Tag,

    wie viele diese Relaikarten kann ich mit dem raspberry ansteuern. Wo liegen die Grenzen?

    1. Stefan sagt:

      Mit einem normalen Raspberry Pi 2 oder 3 lassen sich 26 einzelne Relais ansteuern, falls mehr gewünscht sind so gibt es entsprechende „Port Expander“ die mittels einem MCP23017-IC funktionieren – gibt es auch als fertige Steckkarten für ca. 10 bis 20 Euro.

* gesponserter Link
Blogverzeichnis - Bloggerei.de