GPIO Relais unzuverlässig (selten)

Begonnen von skynet, 04 November 2017, 21:40:48

Vorheriges Thema - Nächstes Thema

skynet

Hallo zusammen,

ich habe ein kleines Problem. Bisweilen schaltet an meiner 8er Relais-Karte mal ein Relais nicht sauber.
In FHEM ist alles korrekt -> Der GPIO Port steht auch im richtigen Status behält aber in diesem Fall weiterhin Strom.
Andersum geht es auch.
Andere GPIOs schalten andere Relais an der gleichen Karte problemlos.

Es hilft nur das System stromlos zu machen. Danach geht alles wieder ...
Jemand ein ähnliches Fehlerbild ?

Danke und Gruus

Frank_Huber

Tausche mal zwei gpio untereinander.

Du hast entweder ein kaputtes  Relais oder  nen kaputten gpio.

Die Relais haben aber schon noch ne Transistorstufe davor oder?

Mit dem Handy online, daher kurz gefasst...


skynet

Nein, es ist alles o.k.
Nehme ich alles einmal vom Strom klappt es ja wieder.
Man hört auch die Relais "leise" klacken.
Aber nicht so laut, wie bei einem funktionierendem Schaltvorgang.

Zu der anderen Frage: Nein ich habe keine Transistorstufe davor. Habe an versch. Stellen gelesen, dass dies unnötig ist, da die Relais selbst eine Stufe vorgeschaltet haben.

Frank_Huber

OK, dann nenne mal den genauen Relais Typ.

Was  hat denn der gpio Tausch gebracht?
Bleibt der Fehler am Relais oder am gpio?

Mit dem Handy online, daher kurz gefasst...

skynet

Habe nicht getauscht, da es auch Mal andere Gpios betrifft.

Passiert auch nur alle paar Monate. Und meist wenn ich etwas am FHEM mache.

Das ist das Ding - https://www.amazon.de/8-Kanal-Optokoppler-8-Channel-Arduino-Raspberry/dp/B00AEIDWXK

Frank_Huber

Zitat von: elektronik-kompendium.de link=https://www.elektronik-kompendium.de/sites/raspberry-pi/2006031.htm
GPIO als Ausgang beschalten (Output)
Ist ein GPIO als Ausgang definiert, dann kann man Schaltzustände an externe Schaltungsteile weitergeben. Wird ein GPIO als Ausgang beschaltet, dann sollte man dabei ein paar Grenzen beachten. Hält man sich nicht an diese Grenzwerte, dann läuft man Gefahr, dass der Raspberry Pi dabei ganz oder teilweise zerstört wird.

Die GPIO-Anschlüsse haben eine maximale Steuerspannung von +3,3 Volt.
Der entnehmbare Strom aus einem GPIO liegt bei maximal 16 mA.
Aus allen GPIOs zusammen darf maximal ein Strom von 51 mA entnommen werden.
Die Empfehlung pro GPIO liegt bei 2 oder 3 mA. Bei mehr muss man mit einem "Treiber" arbeiten.
An einem GPIO kann man nicht jede Art von Last betreiben.

Zitat von: Amazon link=https://www.amazon.de/8-Kanal-Optokoppler-8-Channel-Arduino-Raspberry/dp/B00AEIDWXK
DSP, ARM, ARM, MSP430, TTL-Logik etc.). 1,5 V 8-Kanal-Relais-Interface-Board, pro Kanal 15-20 mA Steuerstrom

Also wennb es sich um einen raspbery GPIO handelt bist mit dem Relais schon knapp über der Grenze,
Denke dass sich dadurch irgendwann die CPU aufhängt.
mehr als 3 Relais kannst auch nicht gleichzeitig aktivbieren, sonst kommst über die 51mA max.

Omega-5

#6
Zitat von: skynet am 05 November 2017, 23:16:30
Habe nicht getauscht, da es auch Mal andere Gpios betrifft.

Passiert auch nur alle paar Monate. Und meist wenn ich etwas am FHEM mache.

Das ist das Ding - https://www.amazon.de/8-Kanal-Optokoppler-8-Channel-Arduino-Raspberry/dp/B00AEIDWXK

Ich habe mir mal ein Relais-Modul aus dieser Serie angeschaut. Es ist zwar nur ein 2-fach Modul, aber die Schaltung ist identisch. Die Module haben zwei Spannungsversorgungsanschlüsse, VCC und JD-VCC sowie einen gemeinsamen GND. Für die verbauten 5V-Relais ist eine Spannung von mindesten 3,5V an JD-VCC und GND nötig. VCC wird mit der Betriebsspannung des Prozessors, also 3,3V verbunden. Die GPIOs steuern über einen Optokoppler und einen Transistor die Relais, deshalb sind die vom GPIO zu erbringenden Ströme auch ausreichend. Ich nehme an du versorgst auch die Relais mit 3,3V und das ist zu wenig.

Gruß Friedrich

PS: Der Jumper der JD-VCC und VCC verbindet muss natürlich entfernt werden!
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

skynet

Nein, ich habe da auch 1Wire dran. Daher versorge ich sowohl 1Wire als auch Relais mit 5V von einem Netzteil.

@Frank Huber - Danke für den Hinweis. Werde die Widerstände mal einlöten. Plane zwar mit einem GPIO Expander. Aber das dauert noch ein paar Tage.
Aktuell sind 5 Relais aktiv. Die aber nie zusammen. Bin also quasi an der Grenze ...

Omega-5

Zitat von: skynet am 06 November 2017, 21:32:12
Nein, ich habe da auch 1Wire dran. Daher versorge ich sowohl 1Wire als auch Relais mit 5V von einem Netzteil.

OK, dann also noch mal messen und rechnen. Wenn an VCC 3,3V anliegt und GPIO auf ca. 0,2V, dann fallen an der LED 1,65V und am PC817 1,0V ab, bleiben am 1kOhm 0,45V. Das heißt nur 0,45mA. Das ist sehr wenig um am Ausgang des Optokopplers einen ausreichenden Basisstrom für den Transistor zu liefern.   :(
Notfalls könnte man die LEDs im Eingang überbrücken oder den Vorwiderstand verkleinern (ca. 500Ohm parallel zum 1kOhm).

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

skynet

Am VCC liegen 5,x an.
Welche LED ist gemeint ?
Und was soll PC 817 sein ?

Da hängt 1Wire und ein 8fach Relais dran.

Omega-5

Zitat von: skynet am 06 November 2017, 22:36:08
Am VCC liegen 5,x an.
Welche LED ist gemeint ?
Und was soll PC 817 sein ?

Da hängt 1Wire und ein 8fach Relais dran.

Schau dir doch mal die Schaltung an. JD-VCC ist die Versorgungsspannung für die Relais. VCC ist die Spannung des Raspi 3,3V. Mit LED sind die Funktionsanzeigen gemeint. PC817 sind die Optokoppler.

Gruß Friedrich
RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

skynet

Vielen Dank schonmal.
Hab mich nochmal eingelesen und nochmal frisch verkabelt.
Klappt aber nur ohne Widerstände.
Sobald die dazwischen sind gehen die LEDs in den Sparmodus und die Relais schalten nicht mehr.
Habe Am 10er GND und 3,3V plus 8 GPIOs
AN VCC liegen 5V vom RAS.
JD VCC und dazugehöriger GND kriegen Saft von einem Extra Netzeil.

Vermute nun die damals bestellten 470Ohmer sind wohl doch keine - Laut Farbcoderechner haben die 4700 :-(



skynet

Korrekte Widerstände sind jetzt drin.
4 Tage läuft es. Und wieder schaltet 1 v.8 Relais nicht mehr.
Vermutlich bis zum Neustart des RAS.

Komisch?

Omega-5

Zitat von: skynet am 22 November 2017, 07:20:17
Korrekte Widerstände sind jetzt drin.

Hallo skynet,

die Widerstände halte ich eher für kontraproduktiv, auf den Relaismodulen sind doch schon 1kOhm drauf (zwischen den Kontroll-LED und dem Optokoppler). Ich hatte ja angeregt diese Widerstände zu verkleinern, z.B. durch parallel schalten eines zweiten 1kOhm. Der GPIO arbeitet übrigens mit negativer Logik, d.h. das Relais schaltet wenn der IO-Pin auf annähernd 0V ist. Bei meiner Beispielrechnung bin ich von 0,2V am GPIO aus gegangen. Einen großen Einfluss hat auch die Serienstreuung der Optokoppler (der Buchstabe hinter der 817 sagt etwas über die "Verstärkung" zwischen Eingangs- und Ausgangsstrom aus. Leider spielen hier viele Parameter eine Rolle, noch nicht überprüft habe ich, welche Ströme der GPIO des Raspi nach LOW treibt und welche Spannung er dann hat? Ich war von 0,2V ausgegangen, könnte aber auch etwas höher sein.

Gruß Friedrich

RaspberryPi2, nanoCUL, 3x DS18B20, FS20: 4x Funk-Schalter ST-4, LaCrosseGW,
HomeMatic: HMLAN, HM-WDS10-TH-O, HM_MYS_RelaisBoard,
I2C: HYT221 über modifiziertes Modul I2_I2C_SHT21.pm (Q&D),

skynet

#14
Hallo Friedrich,

das mit dem "Ich hatte ja angeregt diese Widerstände zu verkleinern, z.B. durch parallel schalten eines zweiten 1kOhm." verstehe ich ehrlich gesagt nicht ganz.
Was bedeutet dies in der Praxis ?
Wie würdest du das machen ?

Übrigens ist es bei mir immer einer gewesen der zickt.
Es war das 6te Relais.
Jetzt habe ich vor einen paar Tagen sowie GPIO als auch Relais gewechselt.

Und heute passiert es wieder ! Das Hintergrundlicht (ein paar LEDs) geht nicht mehr aus ...
Ich raff es nicht. Denn alle anderen Relais machen was Sie sollen ...

P.S.
Ein einfacher Neustart / Strom weg und wieder ran bringt es auch nicht ... -> Das betroffene Relais schaltet nicht mehr korrekt ...