Relais an GPIO lässt sich nicht schalten

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich versuche mich gerade in GPIOzero einzuarbeiten. Das funktioniert auch soweit ganz gut. Allerdings habe ich ein Problem mittels eines Buttons ein Relais zu schalten. Es handelt sich um 1-Kanal Relais.

    Hier mal meine Verdrahtung:

    Raspberry -> Relais

    5V -> VCC

    GND -> GND

    GPIO -> IN

    Das Auslesen des Buttons funktioniert soweit ohne Probleme, allerdings schaltet sich das Relais beim starten des Scripts ein und beim beenden des Scripts wieder aus. Auf Änderungen am Taster reagiert es leider nicht. Kann mir einer weiterhelfen bei dem Problem? Der Raspberry ist auf dem neusten Stand.

    Hier mal mein Script:

    Danke schonmal im voraus

    arokh12

  • Es könnte daran liegen, dass das Modul mit 5 V arbeitet und die GPIOs nur 3,3 dagegen halten können.

    So lange der GPIO auf output steht, fließt dann immer Strom und das Relais schaltet.

    Die Anordnung ist für den Pi möglicherweise gefährlich.

    Schalte Transistoren oder Optokoppler zwischen Pi und Relaismodul.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Dieses Modul kannst du vom Pi nur mit einem zusätzlichen Transistor oder Optokoppler schalten.

    Auf dem Foto sind teilweise 12-V-Relais... laut Beschreibung ist es 5 V...

    3,3 Volt genügen der Spule nicht für den nötigen Strom. Wenn sie schaltet, dann ist es mehr Zufall. Nach der Spezifikation funktioniert es sicher ab 3,75 Volt. Etwas Luft nach unten ist immer, aber drauf verlassen kann man sich dann nicht mehr.
    Bei 70 Ohm Spulenwiderstand abzüglich 10% Toleranz also 63 Ohm, könnten bis zu 50 mA fließen. Das ist für den Pi schon viel. Mehrere Relais dieser Art würden ihn in die Knie zwingen.

    Das Problem ist, dass die 5 V an der Basis des Transistors liegen. Es ist ein 2TY/S8550 PNP-Transistor. Schaltet man den GPIO auf LOW (GND), liegt auch GND an der Basis des Transistors und er schaltet durch. Schaltet man ihn auf HIGH, liegen 3,3 Volt an. Das sind immer noch 1,7 Volt weniger als die 5 V am Emitter. Der Transistor schaltet somit immer noch durch.

    Am Ende deines Programms wird der GPIO wahrscheinlich wieder auf Input programmiert - dann ist er hochohmig und sperrt den Transistor. Allerdings liegen dann 5 V am GPIO, was für den Pi tödlich sein kann.

    Schließt man das Relaismodul an 3,3 Volt, funktioniert es, weil der GPIO mit 3,3 Volt den Transistor sperren kann. Der Strombedarf der Spule ist aber hoch und die 3,3-V-Schiene des Pi dafür eigentlich nicht gedacht. Mehrere Relais gleichzeitig gehen nicht.

    Bei 5 V Versorgungsspannung muss auch der Eingangspin des Relaismoduls mit 5 V angesteuert werden. Dafür kannst du dann einen weiteren Transistor oder Optokoppler einsetzen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Dieses Modul kannst du vom Pi nur mit einem zusätzlichen Transistor oder Optokoppler schalten.

    Nein, dieses Modul kann man direkt mit dem Raspberry betreiben, ohne einen zusätzlichen Transistor zu benutzen, so wie es der TE gemacht hat. Das Bild zeigt nur eine Beispielplatine, mit einem Relais mit 12V Spulenspannung. Die Spulenspannung der versendetetn Relais ist 5V. Auf der Platine ist ein Transistor mit hoher Verstärkung und einem großen Basiswiderstand, so dass bei 3V3 maximal 2mA aus dem GPIO entnommen werden.

    Es sollte von der Sorte jedoch nur ein Relais direkt an den 5V vom Raspberry betrieben werden, sonst könnte die Spannungsversorgung des Raspis, die sowieso schon kritisch ist schnell aufgeben. Besser wäre es für diese Relais ein extra 5V Netzteil zu verwenden.

  • Der Spulenstrom des 5-V-Relais liegt - wie ich bereits sagte - außerhalb der Spezifikation. Wenn es ein 5-V-Relais ist, ist das nicht mit Sicherheit zuverlässig.
    Zudem - wie du sagst und wie ich auch bereits sagte - ist der Anschluss mehrerer solcher Module nicht zu empfehlen.

    Wenn du für das Relais ein extra 5-V-Netzteil verwendest, lässt es sich wieder nicht mit 3,3 V des Pi schalten.

    verwendest du ein extra 3,3 V-Netzteil, liegt der Spulenstrom weiterhin außerhalb der Spezifikation.

    Aber gut, dass du weitere Tipps gibst... da kann sich der TO was raussuchen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wenn du für das Relais ein extra 5-V-Netzteil verwendest, lässt es sich wieder nicht mit 3,3 V des Pi schalten.

    Nun, dass ist nicht richtig. Der Transistor benötigt eine Basisspannung und eine Versorgungsspannung. Beide können unterschiedlich sein. Wichtig ist nur, dass die Sättigung erreicht wird. Bei welcher Basisspannung das ist liegt am Basiswiderstand und an der Verstärkung des Transistors.

  • Nun, dass ist nicht richtig. Der Transistor benötigt eine Basisspannung und eine Versorgungsspannung. Beide können unterschiedlich sein. Wichtig ist nur, dass die Sättigung erreicht wird. Bei welcher Basisspannung das ist liegt am Basiswiderstand und an der Verstärkung des Transistors.

    Es ist ein PNP-Transistor. Um ihn zu sperren benötigst du eine Spannung in Höhe der Collectorspannung.

    Mit 5 V Collectorspannung und 3,3 V GPIO-Spannung kannst du ihn nicht sperren - das ist das Ausgangsproblem des TO.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!