Relais schaltet nicht wie es soll.

  • Hallo,

    ich habe einen RPi3 und dieses Relais. Das Relais ist mit 5V und GND vom Pi verbunden.

    Die GPIO Pins des Pis führen jeweils über einen 1 kOhm Widerstand zur Basis eines Transistors (BC 547 B) und vom Emitter weiter zum Pin auf dem Relais. (Collector an GND am Pi)


    Wenn ich mein Testprogramm starte, sind am Anfang alle Lampen auf dem Relais aus und schalten danach wie geplant an/aus. Wenn aber am Ende des Programms die OutputDevices schließe gehen relais1 und relais2 nach dem schließen an. relais3 und relais4 bleiben nach dem Schließen aus, wie sie es ja auch sollen.

    Tausche ich Kabel1 mit Kabel3 leuchtet auch die dritte statt der ersten Lampe.

    Tausche ich die komplette Transistor-Konstrukton aus besteht das Problem weiterhin.



    Und in dem eigentlichen Programm, welches ich benutzen möchte geht oft, nicht immer, einfach das erste Relais an, obwohl noch überhaupt kein Befehl diesbezüglich gegeben wurde. Obwohl es schon an ist klackt es, als würde es nochmal angehen. Gefühlt in der drei Sekunden Schleife, in der die Temperatur gemessen wird.

    Habt ihr einen Rat?

    Gruß, Tom


    PS: Sofern es hilfreich sein sollte hier noch der Code, ich vermute aber, dass es ein Hardwareproblem ist.

  • Deine Schaltung ist wohl nicht ganz korrekt. Der Collector sollte an den In-Pin am Relais und der Emitter an GND. Und dann ist noch ein 10k Widerstand zwischen GPIO-Pin und GND nicht verkehrt. Ich hänge mal die Schaltung an, wie ich sie an meinem OctoPi zur Steuerung einer LED-Beleuchtung verwende. Tut exakt was sie soll.




  • Hallo, danke für deine Antwort. Tatsächlich hatte ich Collector und Emitter vertauscht.

    Ich hab es einmal so, wie es in deinem Bild ist angeschlossen. Dennoch habe ich immernoch dasselbe Problem, dass das Relais an schaltet, wenn ich es schließe.

  • Puh, das sind viele Informationen. Ich arbeite das mal ab.

    1.

    Das Script wird vermutlich einfach durchlaufen und beendet. Verhindert wird das mit: [...] pause()

    Ja, mit pause() bleibt das Licht aus, aber das Programm soll doch beendet werden und dann tagsüber einmal in der Stunde ausgeführt werden. Und meigrafd hat mir beigebracht, dass ich alles immer am Ende schließen soll.


    2.

    Hoffentlich ist I²C deaktiviert!

    Es war aktiviert. Deaktiviert (immernoch GPIO2) kommt aber dasselbe bei heraus. relais.close() -> relais zieht an.


    3.

    Versuch doch mal einen GPIO ohne Sonderfunktion...

    Habe es mit GPIO 26 versucht, da klappt es. Die Probleme im Skript traten ja bei GPIO 2 und 3 auf. Erörtern wir jetzt wie es mit 2 und 3 geht oder nehme ich einfach andere? ^^


    4.

    Kollektor über einen 1kOhm-Widerstand an VCC (+5V) und gleichzeitig an IN der Relaisplatine, Emitter an GND.

    Bin nicht sicher ob ich das richtig verstehe. Also ist das Bild aus Beitrag #2 falsch? Und wie müsste Beitrag #2 noch modifiziert werden?


    5.

    Und dazu unbedingt Relaisplatine mit einem eigenen 5V-Netzteil betreiben, möglichst nicht durch den Pi versorgen.

    Ernsthaft? Es kann doch nicht so kompliziert sein ein Relais an einen Pi anzuschließen.