Mit A/D Wandler PCF 8574 LEDs ansteuern - zu wenig Strom?

#6389596
Lesenswert?

Hallo und vielen Dank, dass Du meinen ersten Forenbeitrag list.

Ich möchte gerne an einem Arduino die Ausgangsports erweitern. Hierfür 
habe ich hier zwei PCF8574 Expander. An den 8 Ausgängen möchte ich gerne 
8 LEDs betreiben (je 30mA). Nun haben die Ausgänge des Expanders als 
maximale Stromstärke 100uA, also viel zu wenige. Jetzt vermute ich, ich 
kann das durch vorgeschaltete OpAmps irgendwie planen, aber mir fehlt 
der richtige Ansatz. Welche Schaltung müsste ich dazu anwenden oder bin 
ich ganz auf dem Holzweg?

Vielen Dank für Deine Hilfe
Michael
Gast #6389605
Lesenswert?

Michael R. schrieb:
> Nun haben die Ausgänge des Expanders als
> maximale Stromstärke 100uA, also viel zu wenige.

Wo hast du das gelesen?
Im Datenblatt von TI wird für Low-level output current (I_OL) ein Wert 
von 25mA angegeben. Aber achte drauf, dass du den Maximalstrom von 100mA 
für Gnd und V_CC nicht überschreitest. Falls das bei deiner Anwendung 
nicht garantiert werden kann, wäre vielleicht ein TPIC6B595 eine 
Möglichkeit.
#6389610
Lesenswert?

Hallo Michael,
mein Tip wäre an der Stelle ein klassisches Schieberegister : HC595,
oder wenn es mehr Dampf haben soll ein TPIC6B595N gleich mit 
integrierten Treibern.
Eine Frage sei gestattet: Welche Uralt-LED verwendest du, da die mit 
30mA betrieben werden sollen? Oder willst du eine größere Halle 
beleuchten?

MfG von der Spree
Frank
#6389614
Lesenswert?

@Wolfgang und Frank:
Vielen Dank für den Tipp mit dem Schieberegister. Das scheint eine tolle 
Möglichkeit zu sein. Das werde ich ausprobieren.
Meine Neugier lässt mir jedoch keine Ruhe. Wäre es auch irgendwie mit 
OpAmps möglich die LEDs am PCF8574 direkt zu betreiben? Oder wäre das 
generell ein schlechtes Vorgehen?

@Frank: Das ist eine gute Frage. Die sind schon etwas älter. Sind blaue 
LEDs und auf der Tüte steht 30mA. Ich hab mal eine Kiste mit vielen 
alten Zeug bekommen und versuche damit meine Experimente zu machen.
Gast #6389616
Lesenswert?

Die PCF8574 haben am Ausgang eine "klassisches" Verhalten, wie es früher 
bei Mikrocontrollern üblich war. In Richtung HIGH, konnten sie nur 
kleine Ströme liefern, wogegen sie nach LOW einige mA (bis etwa 10) 
ziehen konnte und dabei eine Spannung von etwa 0,8 V einhielten. Diese 
Werte stammen noch aus der Zeit der TTL-Bauteile und haben sich vielfach 
bewährt. Man konnte so leicht bidirektionale Ports realisieren. Dazu 
wurde auf dem Port eine "1" ausgegeben. Durch Schalter, Transistoren 
konnte der Pegel von außen nach LOW gezogen werden ohne dass Schäden 
entstanden. Ein Lesebefehl fragte den Pegel (digital) ab und erhielt 
eine "1", wenn der Port nicht nach LOW gezogen wurde, anderenfalls 
erhielt man eine "0". Wollte man mit einem Port eine LED ansteuern 
reichte es für kleine Ströme, einen Widerstand von etwa 470 Ohm vom Port 
zur Versorgung zu schalten, um einen etwas höheren Strom für die LED zu 
erhalten. Brauchte man höhere Ströme, schaltete man einen PNP-Transistor 
(Emitter an die Versorgungsspannung, Basis über einen Widerstand von 
etwa 1 kOhm an den Port) als Verstärker vor und konnte dann am Kollektor 
deutlich mehr Strom abnehmen. (Feiglinge wie ich es bin schalteten 
zwischen Basis und Emnitter des Transistors noch einen weitern 
Widerstand von 1 kOhm ein, damit der Transistor sicher gesperrt wurde, 
wenn eine "1" ausgegeben wurde.) Durch die Transistorstufe wurde das 
Signal aber invertiert, d.h. wenn auf dem Port eine "0" (LOW-Pegel) 
ausgegeben wird, leitet der Transistor. Auch mit dem Transistor ist es 
noch möglich, direkt am Port diesen auf LOW zu ziehen und so diesen auch 
noch weiterhin als Input zu verwenden. (Wenn man den Port von außen nach 
LOW zieht, wird der Transistor leitend und eine angeschlossene LED 
leuchtet. Lässt das außen angelegte Signal den Port wieder los, bestimmt 
der Prozessor nach wie vor den Pegel.)
Gast #6389619
Lesenswert?

Michael R. schrieb:
> Wäre es auch irgendwie mit
> OpAmps möglich die LEDs am PCF8574 direkt zu betreiben?

OP-Amps haben da gar nichts verloren. Klar kann man sie zweckentfremden, 
aber das wäre ungefähr so schräg, wie mit einem Kipplaster Brötchen 
einzukaufen.

Wenn schon, nimmt man dazu einzelne Transistoren oder Treiber-IC's wie 
den ULN2003. Das würde ich aber nur machen, wenn es wirklich nötig ist. 
Jedes unnötige Bauteil erhöht die Wahrscheinlichkeit, etwas zu verbocken 
oder später kaputt zu gehen.

Michael R. schrieb:
> Sind blaue
> LEDs und auf der Tüte steht 30mA. Ich hab mal eine Kiste mit vielen
> alten Zeug bekommen und versuche damit meine Experimente zu machen.

Dann probiere sie dich erst einmal aus. Ich wette, dass sie bei 10 mA 
hell genug sind. Ich betreibe meine üblicherweise mit 1 bis 2 mA.
Gast #6389625
Lesenswert?

Michael R. schrieb:
> Wäre es auch irgendwie mit
> OpAmps möglich die LEDs am PCF8574 direkt zu betreiben? Oder wäre das
> generell ein schlechtes Vorgehen?

Wäre es. Ein OP ist viel zu aufwändig und hat ganz andere Qualitäten, 
zumal du da auch wieder einen mit ausreichendem Ausgangsstrom 
bräuchtest.
Du könntest einen Transistor als Treiber verwenden.

Frank S. schrieb:
> Eine Frage sei gestattet: Welche Uralt-LED verwendest du, da die mit
> 30mA betrieben werden sollen?

Heutzutage findest du einen Haufen LED-Typen mit Nennbetriebsstrom von 
300 oder 700mA ;-)
#6389763
Lesenswert?

Stefan ⛄ F. schrieb:
> Treiber-IC's wie
> den ULN2003

wobei der mit nur 7 Treiber nicht die geschickteste Wahl ist wenn man 8 
Ports hat, mich deucht ein ULN2803 mit 8 Treiber wäre klüger, die aber 
nur nach low schalten.
Wer unbedingt high statt low als geschalteten Ausgang braucht also hi 
side, der nehme doch besser den UDN2981
https://crazy-electronic.de/index.php/uln2803
#6389821
Lesenswert?

Michael R. schrieb:
> Meine Neugier lässt mir jedoch keine Ruhe. Wäre es auch irgendwie mit
> OpAmps möglich die LEDs am PCF8574 direkt zu betreiben? Oder wäre das
> generell ein schlechtes Vorgehen?

Schlecht. Besser wären einfach Transistoren (BC847 oder so) oder 
Transistorarrays.

Vorwiderstände für die LED nicht vergessen.

Und Achtung: Die 8574 sind beim Einschalten high / Eingang mit pull-up. 
Ein gegen GND geschalteter Transistor würde dann schalten und die LEDs 
leuchten bis der 8574 auf Ausgang / low geschaltet ist.

Das liegt an der Funktion des 8574, der kann eigentlich nur zwei 
Zustände: Pin als Eingang, pull-up, dann fließen 100µA gegen GND, je 
nachdem ob er außen kurzgeschlossen oder offen ist wird ein low / high 
detektiert.
Pin als Ausgang, open-collector schaltet nach GND, damit können bis 25mA 
gegen Vcc geschaltet werden.

Flexibler ist ein MCP23008 / MCP23017, der kann Eingang / Ausgang, mit 
high / low, mit Pull-up oder ohne. Allerdings auch ein wenig aufwendiger 
in der Ansteuerung.
#6389829
Lesenswert?

Karl K. schrieb:
> Flexibler ist ein MCP23008 / MCP23017, der kann Eingang / Ausgang, mit
> high / low, mit Pull-up oder ohne. Allerdings auch ein wenig aufwendiger
> in der Ansteuerung.

Der MCP23017 hat dann sogar gleich 16 Ausgänge. Wenn es noch einige mehr 
sein dürfen...HT16K33.

https://www.holtek.com/documents/10179/116711/HT16K33v120.pdf


Michael R. schrieb:
> @Frank: Das ist eine gute Frage. Die sind schon etwas älter. Sind blaue
> LEDs und auf der Tüte steht 30mA. Ich hab mal eine Kiste mit vielen
> alten Zeug bekommen und versuche damit meine Experimente zu machen.

Wenn deine Leds wirklich alt sind investiere in einige Neue. Dann reicht 
auch 1 bis 2mA für eine akzeptable Helligkeit.
Gast #6389837
Lesenswert?

Frank S. schrieb:
> mein Tip wäre an der Stelle ein klassisches Schieberegister : HC595,

weil Fahrrad besser als Auto ist?
Michael hat sich einen I2C-Expander ausgesucht, das ist erstmal nicht zu 
beanstanden.

Es sind einfachste Grundlagen der Elekronik, mit dem geringen 
Ausgangsstrom des PCF8574 einen Transistor anzusteuern und damit den 
Laststrom der LEDs zu schalten.

Interessant wird das erst, wenn weitere Randbedingungen dazu kommen.
#6389877
Lesenswert?

Manfred schrieb:
> Es sind einfachste Grundlagen der Elekronik, mit dem geringen
> Ausgangsstrom des PCF8574 einen Transistor anzusteuern

Ja aber man sollte schon die Besonderheiten des 8574 beachten. Wie die, 
dass die Ausgänge beim Einschalten quasi high sind, ein NPN Transistor 
also erstmal durchschaltet.

Weitere Vorteile des MCP23008 / 23017: Läuft auch mit 3.3V, bis zu 1.8V 
runtern, und braucht deeeeuuuutlich weniger Strom als der 8574.

Jörg R. schrieb:
> Der MCP23017 hat dann sogar gleich 16 Ausgänge.

Das ist jetzt nicht so ein großer Vorteil, denn die Summe des Stromes 
darf an VCC/GND 150mA nicht überschreiten. Dafür kann ein Pin aber 25mA 
nach Vcc und nach GND schalten.

Man könnte nun den alten Trick anwenden, einen Teil der LED gegen Vcc 
und einen Teil gegen GND schalten. Dann kann jede LED 18mA bekommen, und 
man ist noch innerhalb der Specs.

Und: Den MCP23017 bekommt man günstig als fertiges Modul:

https://www.amazon.de/Waveshare-MCP23017-Expansion-Interface-Expands/dp/B07P2KD39X/
#6389948
Lesenswert?

Michael R. schrieb:
> Nun haben die Ausgänge des Expanders als
> maximale Stromstärke 100uA, also viel zu wenige.

Der IC ist für low aktive Lasten gedacht, d.h. beim Power-On sind die 
Ausgänge high. Schalte die LEDs einfach gegen VCC, dann hast Du mehr 
Strom.

Michael R. schrieb:
> Sind blaue
> LEDs und auf der Tüte steht 30mA.

Die 30mA werden der Grenzwert sein, den man nicht überschreiten darf. 
D.h. bei 10mA sollten die LEDs schon gut leuchten.
#6390255
Lesenswert?

Karl K. schrieb:
> Jörg R. schrieb:
>> Der MCP23017 hat dann sogar gleich 16 Ausgänge.
>
> Das ist jetzt nicht so ein großer Vorteil, denn die Summe des Stromes
> darf an VCC/GND 150mA nicht überschreiten

Wenn der TO „vernünftige“ Leds nimmt reicht das locker aus.


Karl K. schrieb:
> Und: Den MCP23017 bekommt man günstig als fertiges Modul:
>
> 
https://www.amazon.de/Waveshare-MCP23017-Expansion-Interface-Expands/dp/B07P2KD39X/

Oder man nimmt ihn in DIL-Bauform, dann ist es günstig;-)

https://www.mouser.de/ProductDetail/Microchip-Technology/MCP23017-E-SP?qs=usxtMOJb1RyESXZDw7ia5A%3D%3D

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren