PCF8574 + 5V 8 Kanal Relais

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

    ich bertreibe bereits ein 8 Kanal Relais-Board an meinem Raspberry Pi. Beim Board habe ich JD-VCC und VCC verbunden und speise es direkt von einem 5V Netzteil, an dem auch der Pi über Micro USB hängt. Zwischen GPIO und Relais-Board habe ich einen ULN2003 geschaltet. Alles ist mit dem gleichen GND verbunden und funktioniert wunderbar (bis zu 4 Relais in Benutzung gehabt). Die Schaltung dient als automatisiertes Beregnungs- und Beleuchtungssystem für ein Terrarium. Das Netzteil ist von einem alten externen CD-Brenner und liefert 5V 2A (und 12V 2A für LED Strips).

    Nun habe ich mir ein PCF8574 Board bestellt und möchte damit insgesamt 7 Relais schalten. Soweit ich verstanden habe, handelt es sich beim Expandboard um Open Collector Ausgänge, somit brauch ich ein Pull Up, um den ULN2003 zu schalten. Aus diesem Grund habe ich zusätzlich 4,7k Widerstände auf 3,3V+ vom Pi auf IN des ULN2003 gelegt. Das funktioniert prinzipiell auch schon und ich schalte damit bereits 2 230V Lampen.

    Jetzt habe ich dabei noch 2 Herausforderungen:
    1. Fährt der Pi hoch, sind die Ausgänge vom Expanderboard noch nicht geschaltet und die Relaiskarte schaltet auf "On". Erst wenn die Software initialisiert ist, wird der Ausgang auf den richtigen Zustand geschaltet. Für dieses Szenario habe ich über Pull Down gelesen. Da ich hier aber ein etwas spezielleres Szenario habe, benötige ich hier ein paar Denkanstöße oder Lösungen. :s

    2. Schalte ich die Pumpe (noch nicht mit den Relais verbunden) für die Beregnung ein, so springen alle Relais auf "On". Erst wenn die Software den Pin neu schreibt, wird der Ursprungszustand wiederhergestellt. Hier habe ich gelesen, dass das durch Störsignale des Schaltfunken entstehen kann, da auch beide Systeme im gleichen Stromkreis hängen. Abhilfte können hier Kondensatoren zur Glättung der Spannung verschaffen. Hier sollen 220nF auf die Versorgungsleitungen für die 5V vom Netzteil zum Relaisboard und die 3,3V vom Pi zum Expanderboard helfen. Bevor ich diese Bauteile besorge, würde ich mich gern absichern, ob ich hier richtig recherchiert habe, oder ich direkt noch etwas mehr berücksichtigen sollte un es mir zu leicht gemacht habe? :s
    Kann ich mir im Pi bestimmte Logs über solche Störungen anschauen? Mein Python Programm läuft ganz normal weiter und wirft keine Fehler.

    Über Hilfe würde ich mich sehr freuen!

    MfG, Ingo

    EDIT: In meinen Logs habe ich soeben einen Fehler gefunden, zusätzlich am I2C-Bus, neben dem Expander, habe ich noch ein 16x2 LCD-Display-Board, welches ich mit dem Python Treiber von Adafruit ansteuer. Hier gab es einen I/O Fehler (Errno 5) beim Lesen eines I2C Blocks.

    Einmal editiert, zuletzt von HeaDd (14. Oktober 2015 um 11:21)

  • Der ULN2003 ist überflüssig.
    Der PCF8574 kann die 2mA bei LOW, die der Steuerkreis des Relais braucht problemlos schalten, widerstände sind am Ausgang des PCF8574 nicht erforderlich.
    In der Zeichnung im Link zu sehen, die Katoden der LEDs sind praktisch die IN1 bis IN8 Anschlüsse des Relais-Boards.

  • hi barneyfeuerstein,

    vielen dank für dein feedback, bisher habe ich das expander board mit 3,3v, nicht mit 5v, wie in der zeichnung befeuert. das relais board braucht aber doch 5v.

    oder ist das problem, dass das board bei 3,3v am normalen gpio nicht genug strom bekommt, um die relais zu schalten?
    ich jumper also um, jd-vcc an 5v, vcc an 3,3v und die i/o-ports vom expander direkt an die relaiskarte?

    gruß, ingo

  • Das Relais-Board sollte ja auch mit 5V betrieben werden 3,3V am Steuereingang währe wahrscheinlich zu wenig für einen sicheren Betrieb.
    Die 5V werden durch den Widerstand die Optokoppler Diode und der LED zum IN Anschluss geleitet was die Spannung am IN auf maximal 2,9V reduziert womit die 5V keine Gefahr
    für die GPIOs darstellen.

Jetzt mitmachen!

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