Relais schalten - LED ändert sich, Schaltung nicht

Crumar

Lieutenant
Registriert
Apr. 2009
Beiträge
1.009
Hallo zusammen,

ich versuche gerade mittels eines Relais vom Raspberry Pi aus einen anderen Signalkreis zu beeinflussen.

Sprich ich möchte das wenn ich am GPIO Out High / bzw low ist einen anderen Stromkreis öffnen/schließen.
Das scheint allerdings nicht so zu klappen wie ich das verstanden habe.

Folgendes habe ich dran:
RPI 3V3 - VCC Relais
RPI GND - GND Relais
RPI GPIO 17 - In1 Relais

Da ich bei dem anderen Stromkreis dauerhaft eine Verbindung hatte, wollte ich es mal am Breadboard ausprobieren.
Daher habe ich noch folgendes an die andere Seite des Relais angeschlossen:

Relais COM1 - RPI 3V3
Relais NC1 - Piezo Speaker
Piezo Speaker - RPI GND

Wenn ich nun GPIO 17 zwischen High und Low hin und herwechseln lasse, dann wechselt zwar die Relais LED, Strom scheint aber dauerhaft anzuliegen (der Speaker gibt ein Knacken von sich bei Berührung).

Python:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
pin = 17
GPIO.setup(pin, GPIO.OUT)


set = False
rdval=""
while rdval != "c":
    rdval = input()

    if set:
       GPIO.output(pin, GPIO.LOW)
       print ("Set Low")
    else:
       GPIO.output(pin, GPIO.HIGH)
       print ("Set high")
    set = not set



GPIO.cleanup()

Ich hatte dann die Vermutung, dass das Relais defekt ist. Ich habe drei bestellt (selbe Charge) und mal das zweite ausprobiert.
Beim ersten habe ich auch die zweite Relais Seite ausprobiert. Bei allen das gleiche Verhalten, es sollte also an mir liegen.
Was kann ich tun? :)
 
Kann es sein, das der RPi das Relais mit dem Ausgangsstrom nicht schalten kann?

welches relais ist es denn?
 
Es ist dieses Relais hier:
Relais

Es ist 5 V, was ich aber in einer Anleitung gelesen habe ist, dass man es auch erstmal mit 3 V schalten kann.
Die LED am Relais reagiert zumindest auch konsistent.

Bspw. diese Anleitung spricht auch von einem 5 V Relais, sagt aber das 3 V auch genutzt werden können.
 
Current >100mA
GPIO schaltet 16mA
Ergo-> geht nicht, das relais wird nie funktionieren, entweder suchst du dir was ganz kleines, dann auch in 3-3,3V oder du realisierst die schaltung mit einem transistor. ich gehe mal davon aus, das galvanische trennung nicht notwendig ist.

Wenn der Piezospeaker auch noch am selben GPIO Port hängt, wird der auch strom brauchen und noch weniger das relais schalten können. ein mosfet transistor hat z.b. den großen vorteil, das man den leistungslos schalten kann, da reicht es wenn man eine spannung am Gate anlegt, der strom bewegt sich dann im µA bereich. bei einem bipolaren transistor (NPN) müsste man noch etwas außenbeschaltung drum herumbasteln, damit man zwischen Basis und Emitter auf etwa 0,7V kommt, um den zu schalten. Die passenden Schaltungen für dieses vorhanden findet man im Internet recht leicht, da es Grundschaltungen sind (Transistor als Schalter)
 
@Crumar Laut Datenblatt 71.4 mA bei 5V.
Das ist etwas zuviel um es direkt mit dem PI GPIO zuverlässig anzusteuern. NPN oder PNP der direkt an der 5v rail hängt dürfte das Problem lösen.
Ansosnten freilauf Diode nicht vergessen.

Je nach dem was du schalten willst geht auch ein IGBT.
 
Nabend,

Elektrotechnik ist auch nicht so meins, aber laut Datenblatt hat das Relaismodul alles was hier gefordert wird. Einen Optokoppler, einen Laststromkreis der die Relaisspule befeuert und ne Freilaufdiode. Das die LED leuchtet, bedeutet doch, dass der Optokoppler Saft zum Schalten bekommt. Meine Frage wäre jetzt: Hat die Laststromseite auch Strom (Jumper zwischen VCC zu JD-VCC gesetzt)? Falls die LED leuchtet und die Himbeere nicht genug Saft für den Zwischenstromkreis liefert: Am Breadboard ne externe Stromquelle am JD-VCC ausprobieren. Sind ja genug Relais-Boards zum Ausprobieren da :p
 
  • Gefällt mir
Reaktionen: Mickey Mouse
Also dann hole ich nochmal mehr aus:

Was ich mit dem Relais will ist einen Schalter an einem externen Gerät "kurzschließen", also den Button umgehen.
Das Ding selbst hat 2 AA Batterien, wobei ich auch eben getestet habe, die 3V Schiene vom Raspi liefert genug Strom um den Button manuell zu tätigen, also dachte ich das ich vielleicht auch irgendwann ohne die Batterien auskomme. (Edit: manuell tätigen bedeutet, dass ich den Raspi statt der Batterien angeschlossen habe, und bei manuellem auslösen des Schalters das gewünschte Ergebnis Ton / Licht bekomme).

Da ich noch ein anderes Modul habe, was ebenfalls zwar mit 3 V gesteuert und betrieben werden kann (LED Matrix, md_max7219), aber eigentlich auch 5 V kriegensollte, habe ich noch diese Level Shifter bestellt.
Zudem sollte man die LED Matrix auch mit externer Stromquelle betreiben (es geht allerdings auch ohne), daher habe ich mir noch folgende Dinge bestellt:
USB 5V -> 2,1 mm DC Hohlstecker
Netzteilmodul

Könnte ich nun:
Relais & LED Matrix über externe 5V betreiben
1 Teil des 2 Modul Relais für überbrücken des Schalters
1 Teil des 2 Modul Relais für Rücksignal an RPI (Schaltung geschlossen durch manuelles Drücken)

Reichen diese Dinge aus um mein Vorhaben umzusetzen?
  1. Schalten des externen Buttons (Überbrücken)
  2. Betätigen des externen Buttons lesen
  3. Die LED Matrix vom Raspi aus steuern
  4. Optional: 2x AA Batterien weglassen und Strom über Raspi oder externe 5 V bereitstellen
@beni_fs Ja, Jumper steht auf JD-VCC VCC

Edit: Zusatzinfo, aktuell arbeite ich noch an einem Raspi 3, habe aber ebenfalls noch nen Raspi Zero bestellt, auf dem das ganze laufen soll.
 
beni_fs hat es durchschaut, da ist natürlich bereits eine Ansteuerung dabei.
beim Rest habe ich aber wirklich nicht verstanden, was du da an komischen Dingen vorhast. Button kurzschließen, umgehen, 3V, genug Strom (oder Spannung?), alles ziemlich wirr...
 
Gibt's nen guten kostenfreien Schaltplanzeichner?
 
hast du dir deinen eigenen Link mal angesehen? Da sind "Schaltpläne" für den Anschluss des Relais Moduls(!) an den Pi abgebildet. Die sind mit Fritzing gezeichnet, das ist ein nettes und kostenloses Tool für solche "Demo Pläne".
 
Hab ich tatsächlich nicht gesehen, dass da Fritzing dransteht. Mir sagt der Name allerdings auch nichts.
Ich habe mich da mal registriert, aber ich finde nichts, wo ich da kostenlos einen Schaltplan erstellen kann. Kannst du mir vielleicht bitte einen Fingerzeig geben, wo ich das bei Fritzing finde?
Ich sehe nur den Download der Desktop App.

Nvm: nach dem Login ist "Free" downloadbar

Ich schaff das heute nicht mehr, ich mach das Morgen in Ruhe.
 
Zuletzt bearbeitet:
Also, ich komm Fritzing nur grob klar, da ich ein paar Teile nicht finde (ein Relaismodul fehlt mir z.B. anscheinend). Zudem kann ich nicht die genaue Schaltung und Bauteile bei dem Button PCB erkennen.
Bei Bild [Schaltung] sieht man das PCB mit dem Button, es gibt zwei Batterien die in Reihe geschaltet sind)

VSS geht an Batterie -
VDD geht an Batterie +
L+ / L- gehen an die LEDs
PW1/2 (gelbe Kabel) gehen an Lautsprecher

Ich möchte nun folgende drei Dinge:

  1. Den Schalter programmatisch auslösen (GPIO OUT z.B. 17 High soll das gleiche bewirken wie den Schalter mit der Hand zu drücken)
  2. Ich möchte eine Callback Funktion einrichten, wenn der Schaltkreis des Buttons geschlossen ist (müsste dann ja steigende Flanke sein, nehme ich an, also dann an GPIO IN bspw. 27)
  3. Optional: Ich möchte VSS / VDD direkt am Raspberry oder an der 5V externen Stromquelle anschließen, um mir die AA Batterien zu sparen
Mit überbrücken habe ich mir vorgestellt, dass ich die zwei Seiten des Schalters (s. Bild) mit dem Relais verbinde (N0 / COM). Je nachdem ob das Relais also auf N0 oder N1 durchleitet, sollte also die LED und der Ton angehen.

Ist das verständlicher?

Weitergehende Verständnisfrage:
Das Relais ist nur das blaue Teil, der Rest ist das gesamte Relaismodul, weil es noch weitere Dinge für die Schaltung des Relais beinhaltet?

Edit: Fritzing Bild hinzugefügt - soweit mir bekannt. Das grüne PCB soll das Relais sein, das soll erstmal nur Punkt 1 ermöglichen - auslösen des Tones und des Lichtes ohne den Knopf zu drücken. Da der Ton und Licht weitergeht, ist der Button nur der Auslöser und das PCB macht noch irgendwas, dass Verhalten würde ich aber ja sowieso gerne beibehalten.
 

Anhänge

  • Schaltung.jpg
    Schaltung.jpg
    72 KB · Aufrufe: 408
  • FritzingSchaltung.PNG
    FritzingSchaltung.PNG
    198,4 KB · Aufrufe: 393
Zuletzt bearbeitet:
Nur um noch mal sicher zugehen das es kein Missverständnis ist du willst mit einem Relay einen microswitch simulieren?
schau dir Optokoppler wie den 817B an.
 
  • Gefällt mir
Reaktionen: Kanibal
@Michael-Menten
Danke für deine Antwort, ich verstehe sie aber leider nicht.
Ich habe dieses Gerät wie oben, was aus einem Knopf, PCB und sechs Kabeln besteht. Wenn dieser betätigt wird, geht für ein paar Sekunden die angeschlossene LED an und am Lautsprecher kommt für diese Dauer ein Ton. Dieses Gerät verwendet zwei AA Batterien.

Ich möchte im ersten Schritt die Aktion dieses Geräts auslösen (Ton abspielen / Licht an) ohne diesen Knopf mit der Hand zu drücken - ich möchte ihn durch Python vom Raspberry auslösen (in deinen Worten "mit einem Relay einen Microswitch simulieren"?)
Edit: Dabei soll die Möglichkeit den Knopf mit der Hand zu drücken bestehen bleiben.

Wenn ich dich richtig verstehe, sollte ich kein Relais(-modul) verwenden, sondern so etwas hier?
https://www.reichelt.de/optokoppler-5kv-35v-50ma-50-dip4-ltv-817-p76173.html
 
Zuletzt bearbeitet:
Relays: Galvanisch getrennt und für höhere Leistung im A Bereich
Optokoppler: Galvanisch getrennt und kleine Leistungen (wenige mA) dafür sind die im Prinzip so einfach wie ein LED/Transistor anzusteuern während Relays ordentlich Strom brauchen.
Da dein Strom irgendwo zwischen µA und mA ist reicht ein Optokoppler aus. Für den Schaltvorgang selbst kann der der Schalter kurzgeschlossen werden oder der entsprechende Pin einfach high oder low gezogen werden. Im zweiten Fall ist eventuell nichtmal ein Optokoppler notwendig.
 
  • Gefällt mir
Reaktionen: Kanibal
Okay, ich glaube das Grundproblem hat sich erstmal erledigt.
Wenn ich das Relais beim Raspi an 5V anschließe kommt ein sehr lautes Klack beim Wechseln zwischen Low und High, und es funktioniert genauso wie ich mir das vorgestellt habe. Bei GPIO 17 High schließt das Relaismodul den Button kurz, bei Low nicht.

Jetzt bin ich mir noch nicht ganz sicher, wie ich Schritt 2 erreiche.

Ich habe mal was ich mir aktuell gebaut habe aufgemalt, so gut es ging, s. Bild

Im Prinzip erfüllt das meine obigen genannten Anforderungen 1 und 3.
Ich kann mittels Python Code den Button kurzschließen, und der Button / Speaker / LED kriegen Strom von der Raspi 3V Schiene.

Jetzt fehlt mir nur noch die Rückrichtung, ich möchte also in Python eine Callback Funktion haben, wenn der Button gedrückt wurde. Ich bin mir aber unsicher über die Verkabelung.

Reicht es aus den GPIO 26 mit der nicht Stromführenden Seite des Buttons zu verbinden (dazwischen habe ich aktuell einen 2K Ohm Widerstand) und auf RISING den Callback einzustellen?

Das ist mein Code dazu:

Python:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
wrt = 17
GPIO.setup(wrt, GPIO.OUT)
GPIO.setup

rd = 26
GPIO.setup(rd, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)



def cb_button(channel):
    print("Button pressed")

GPIO.add_event_detect(rd, GPIO.RISING, callback=cb_button, bouncetime=500)



set = False
GPIO.output(wrt, GPIO.LOW)

rdval=""
while True:
    rdval = input()

    if rdval != "c":
        print ("Set high")
        GPIO.output(wrt, GPIO.HIGH)
        time.sleep(0.3)
        print ("Set Low")
        GPIO.output(wrt, GPIO.LOW)
    else:
        break


GPIO.cleanup()
 

Anhänge

  • FritzingSchaltung.PNG
    FritzingSchaltung.PNG
    161,5 KB · Aufrufe: 362
Zurück
Oben