Relais schaltet immer durch, sobald es an einem Pin des Raspis hängt (SRD-05VDC-SL-C)

  • Hallo,


    ich habe ein Relais (Relais SRD-05VDC-SL-C ) an diversen Pins des Raspi getestet und es schaltet an jedem Pin direkt durch und schließt den Stromkreis. Wenn ich jedoch manuell auf die Steuerleitung 3,3V lege, schaltet es immer nur dann durch, wenn eben auch Spannung anliegt.

    Ich habe es bereits mit Pin 13, 31, 35 und 37 getestet und alle funktionieren nicht. Wenn ich den Pin jedoch messe, so liegen abwechselnd +3,15 bis 3,20V und -0,07 bis -0,13V an. Liegt hier die Ursache?


    Hier mein Script:



    Entschuldigt bitte diese doofe Frage, aber ich kann meinen Fehler auch nach 3h nicht finden... Ich habe auch mehrere Relais probiert!


    Viele Grüße

    Peter

  • Go to Best Answer
  • Handelt es sich um ein Relais oder um ein Relaismodul - also ein bloßes blause Relaisklötzchen oder um eine Platine mit Zusatzbeschaltung + blaues Relaisklötzchen?
    Es wär erst mal gut, wenn du uns genau sagst, was für ein Modul oder Relais zu hast und wie du es genau angeschlossen hast.

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

  • Hallo Gnom , danke für deine Antwort!


    Ich dachte, mit der Bezeichnung sei das Modell klar. Hier ein Bild des Relais:


    Meine Verkabelung habe ich so aufgebaut: In geht auf Pin 13 (oder Testweise eben auch 31, 33, 35 und 37). GND direkt auf GND am Raspi und VCC habe ich auf 3,3V am Raspi gelegt.

    Ich nutze ein externes 12V Netzteil und betreibe hierüber eine 12V LED (das Schaltzeichen ist falsch, ist mir aber erst danach aufgefallen). Ich habe die Klemmen NC und COM verbunden, so dass das Relais standardmäßig nicht verbunden ist.




    Viele Grüße

    Peter

  • Moin PanPeter,


    du meinst, das das Relais schon beim Einschalten des RPi's schaltet?

    Oder das dein Programm nicht geht?


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Das ist ein Relaismodul. Die Typenkennung ist nur für das Relais - entscheidend ist die Beschaltung drumherum. Die kann man auf deinem Bild aber schlecht erkennen. Es gibt ser unterschiedliche. Viele sind für den direkten Anschluss an den Pi schlecht oder gar nicht geeignet.
    Hast du den genauen Link zu dem Shop, wo du es gekauft hast - ich nehme an, das hast du online gekauft.
    Oder ein gutes Foto von beiden Seiten der Platine, wo man auch die Nummern auf den kleinen Bauteilen erkennen kann.


    Das Relais ist für 5 V gebaut. 3,3 ist zu wenig. Schließ es aber btte nicht an 5 V an - das könnte deinem Pi schaden. Um genaueres zu sagen, muss man den genauen Typ des Moduls kennen.

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

  • Moin PanPeter,


    mach in deinem Programm mal die sleep größer. 500 oder so


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

    Edited once, last by Bernd666: Namen berichtigt. ().

    • Official Post

    Versuch mal folgendes zum Test:

    Der Grund steht hier: https://gpiozero.readthedocs.i…_output.html#outputdevice

  • Das Relaisboard ist nicht für den Pi gedacht, es hat keinen Optokoppler, nur einen Transistor.

    Wenn dir dein Pi lieb ist, probierst du es erst gar nicht mit dem Pi.

    Aus den Rezessionen:

    Quote

     Funktioniert nicht am Raspberry 3B
    Rezension aus Deutschland vom 14. Januar 2020
    Das Relais schaltet, wenn der Eingang auf GND gelegt wird. Leider reichen die 3,3V der GPIO des PI 3B bei dem Relais nicht, dass es wieder abfällt - unabhängig davon ob der GPIO auf 0 (GND) oder 1 (3,3V) geschaltet wird, bleibt das Relais angezogen. Damit ist es an dem PI nutzlos. Ein 4 Relais-Modul des geichen Herstellers hingegen (am gleichen GPIO des gleichen PI) funktioniert einwandfrei.

    und:

    Quote

    All 3 failed while just testing them with a 5v supply. They would click a few times when powering them, and then let out some smoke and stop working. The capacitor seems to have failed in all 3, shorting out the relay coil, also the transistor has failed in one of them. And that transistor doesn't seem to really do anything, all the power is drained from the "in" pin, and you can't use it to switch 5 volts with just 3.3 (although the relay itself seems to work with 3.3, so that's not necessary). Still, if your transistor can't handle the draw (which is about 70mA) you may need another transistor to switch this.

    und:

    Quote

    ... schalten nicht bei 5V über den Raspi 3B in Octoprint. Leider für mich unbrauchbar.

    und:

    Quote

    Non compatibile Raspberry, Arduino ok

    Nimm lieber welche mit Optokoppler.

    Mir fällt gerade auf, dass die 1-fach Relaisboards keinen Optokoppler haben, erst die 2-8-fach Boards.

    Zumindest auf den Bildern:

    https://de.aliexpress.com/item/33019827278.html

  • Hast du Vcc wirklich 3,3 V oder doch an 5V. Das Relais ist für 5 V gebaut und dürfte bei 3,3 Mühe haben, überhaupt zu schalten.

    Wenn es mit 3,3 V schaltet, müsste es eigentlich mit dem Pi ansteuerbar sein, da es einen PNP-Transistor hat, wenn du an IN eine Spannung >= Vcc anlegst, sperrt der Transistor und das Relais schaltet ab. 3,3 V vom GPIO sollten also reichen. Wenn du an Vcc aber 5 V hast, klappt das nicht.

    Ich müsste mir aber die genaue Schaltung noch mal ansehen - wahrscheinlich hab ich so ein Modul hier. Schaffe ich aber erst heute Abend.

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

  • Wenn das Programm durchgelaufen ist, schaltet das Relais wieder ab.

    ... heisst doch, dass das Modul gerade noch mit 3,3 V funktioniert und der Fehler im Py liegt.


    Servus !



    Ed: Zeile 5 ... nitial=1 ??

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • Ich habe meine Relaiskarten mit diesem Artikel zum laufen gebracht:

    http://www.netzmafia.de/skript…sPi/RasPi_GPIO_Shell.html

    Ist allerdings Bash und nicht Python.

    Und wie fred0815 bereits in #13 anmerkte, solltest Du auf die Optokoppler-Variante wechseln.

    Diese Optokoppler-Relais mit diesen Script schalten seit Anfang Dezember meine Außenweihnachtsbeleuchtng,

    bis jetzt ohne einen Aussetzer.


    Du kannst die GPIO-Pins in der /boot/config.txt bereits voreinstellen, z.B.:

    Code
    # Set GPIOs to be an output set to 1
    gpio=17=op,dh
    gpio=22=op,dh
    gpio=23=op,dh
    gpio=24=op,dh


    MfG


    Jürgen

  • Versuch mal folgendes zum Test:

    Der Grund steht hier: https://gpiozero.readthedocs.i…_output.html#outputdevice

    So funktioniert es, ich kann den Ausgang steuern. Könnt ihr euch das erklären?


    Jedoch checke ich nicht ganz, wie ich den Pin hier als Eingang nutze. Ich kann ihn als Button nutzen, aber hier stoppt das Programm ja und läuft nicht weiter:

    Code
    button = gpiozero.Button(13)
    button.wait_for_press()
    print("The button was pressed!")

    Habt ihr hier andere Ansätze?



    Ich habe mich nun aber dazu entschieden, das ganze statt über ein Relais besser über einen Leistungs-Mosfet anzusteuern.

    Das ganze Setup befindet sich in meinem Van und da ist der Stromverbrauch (eben die 50mA, die ich in einem der Links entdeckt habe) doch relevant... Sorry für die unnötigen Fragen bisher!


    Daher mein neuer Plan:

    Ich schließe die Verbraucher (es geht lediglich um 2 LEDs zu je 2,5W) über den MOSFET an. Rausgesucht habe ich hierzu folgende: Link zum MOSFET (Affiliate-Link)

    Taugen die was?



    Eine weitere Frage habe ich jedoch noch, da komme ich nicht so recht weiter.

    Ich nutze als Zentralschalter für sämtliche eingebaute Elektrik in meinem Van von Victron Energy das BatteryProtect 48V-100A (Datenblatt). Hier gibt es zwei Kontakte, die, wenn sie verbunden sind, den Stromkreis schließen (wohl auch über einen Mosfet). Aktuell betätige ich diese über einen Schalter, möchte das jedoch in Zukunft über den Raspi steuern können. An den beiden Kontakten sollte jedoch keine Spannung anliegen, die muss ich ja lediglich verbinden (deshalb hatte ich auch ursprünglich das Relais angedacht). Wie würdet ihr das denn lösen?

    • Official Post

    jedoch checke ich nicht ganz, wie ich den Pin hier als Eingang nutze. Ich kann ihn als Button nutzen, aber hier stoppt das Programm ja und läuft nicht weiter

    Ja, weil das Programm nur auf den einen Event wartet und sich danach beendet. Was Du willst ist button.when_pressed.


    Siehe hier:

  • Danke dir, hyle! Die Funktion button.when_pressed() habe ich nicht gefunden. Sie löst aber definitiv mein erstes Problem!


    Kann mir jemand verraten, ob ich mit dem Gedankengang richtig oder falsch liege und wie ich das Battery Protect korrekt beschalten kann?

  • Hey,

    mir kam noch eine weitere Idee, wie ich mein zweites Problem eventuell lösen könnte.


    im Grunde muss ich nur eine leitende Verbindung zwischen den beiden Pins des Batteryprotect herstellen. Kann ich hierzu beide Pins an den Raspi anschließen und eins als Eingang und das andere als Ausgang definieren. Wenn ich nun den Ausgang als HIGH setze, sollte das