Forum: Analoge Elektronik und Schaltungstechnik Mit A/D Wandler PCF 8574 LEDs ansteuern - zu wenig Strom?


von Michael R. (michael_r920)


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

von Wolfgang (Gast)


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.

von Frank S. (_frank_s_)


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

von Michael R. (michael_r920)


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.

von Günni (Gast)


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.)

von Stefan F. (Gast)


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.

von Wolfgang (Gast)


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 ;-)

von Johannes S. (Gast)


Lesenswert?

Blaues LED Licht kann auch sehr penetrant sein, wenn die LED gedimmt 
werden sollen, dann geht das mit einem PCA9685 auch einfach. Den gibts 
auch als Modul und Arduino Libs gibt es auch dazu. Der schafft ebenfalls 
25 mA pro Kanal.

von Stefan F. (Gast)


Lesenswert?

Wolfgang schrieb:
> Heutzutage findest du einen Haufen LED-Typen mit Nennbetriebsstrom von
> 300 oder 700mA ;-)

Aber in Blau? Hoffentlich nur auf der Kirmes.

von Helmut -. (dc3yc)


Lesenswert?

Warum möchtest du ein analoges Bauteil (OpAmp) für ein Digitalsignal 
verwenden? Wenn du mehr Strom brauchst, nimm doch einfach einen 
Transistor. Am besten einen MOSFET. Näheres erfährst du in diesem Forum 
hier: https://www.mikrocontroller.net/articles/Transistor

von Chregu (Gast)


Lesenswert?

Michael R. schrieb:
> A/D Wandler

Wo ist da ein A/D-Wandler???

von Joachim B. (jar)


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

von Klugscheisser (Gast)


Lesenswert?

Blaue LED wuerden bei mir direkt in die Sondermuelltonne wandern.
Sowas von eklig.

von Karl K. (karl2go)


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.

von Jörg R. (solar77)


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.

: Bearbeitet durch User
von Manfred (Gast)


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.

von Karl K. (karl2go)


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/

: Bearbeitet durch User
von Pandur S. (jetztnicht)


Lesenswert?

Woher kommt die irrige Annnahe, eine LED muesse mit 20mA betrieben 
werden ? Die laeuft auch mit 10mA, oder mit 5mA noch gut. Ausser man 
moechte moeglichst viel damit beleuchten. Zu signalisationzwecken kass 
ich meine weniger mit vielleicht 0.5mA laufen.

von Falk B. (falk)


Lesenswert?

https://www.mikrocontroller.net/articles/Port-Expander_PCF8574#Anwendung

Mein Gott, endloses Geplapper wegen so einer einfachen Frage!

von Peter D. (peda)


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.

von Jörg R. (solar77)


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

: Bearbeitet durch User
von Michael R. (michael_r920)


Lesenswert?

Chregu schrieb:
> Michael R. schrieb:
>> A/D Wandler
>
> Wo ist da ein A/D-Wandler???

Da hab ich mich leider verschrieben. Kann man den Titel des Forenbeitrag 
nachträglich nochmal ändern?

Gemeint ist natürlich I/O Expander statt A/D Wandler.

von Falk B. (falk)


Lesenswert?

Michael R. schrieb:
> Da hab ich mich leider verschrieben. Kann man den Titel des Forenbeitrag
> nachträglich nochmal ändern?

Unwichtig, du hast genügend brauchbare Hinweise erhalten.

von Michael R. (michael_r920)


Lesenswert?

Vielen Dank für die vielen Antworten. Das hat mir sehr geholfen und ich 
kann weiter machen.

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Aber in Blau? Hoffentlich nur auf der Kirmes.

Dann guck mal, welche Farbe die LED hat, die bei einer "weißen LED" den 
photolumineszierenden Farbstoff zum Leuchten anregt. Oder guck dir 
einfach das Sprektrum an und frag dich, woher der ausgeprägte Peak bei 
um die 460nm kommt.

von Joachim B. (jar)


Lesenswert?

Michael R. schrieb:
> Das hat mir sehr geholfen

was davon?
Das ist ein Forum und wenn du schreibst was genau half dann hilft es 
auch anderen, wenn du es nicht schreibst ist der ganze Thread sinnlos 
und hilft niemanden!
Und du hast den Sinn eines Forums nicht verstanden!

: Bearbeitet durch User
von Michael R. (michael_r920)


Lesenswert?

In diesem Fall gibt es keine konkrete Lösung aber einen schubs in die 
richtige Richtung. Ich war der Meinung das Problem mit OpAmps zu lösen. 
Damit war ich auf dem Holzweg. Jetzt experimentiere ich mit den 
genannten Lösungsvorschlägen. Darüber hinaus hab ich mir LEDs mit 
geringerem Stromverbrauch bestellt :-)

von Wolfgang (Gast)


Lesenswert?

Michael R. schrieb:
> Darüber hinaus hab ich mir LEDs mit geringerem Stromverbrauch
> bestellt :-)

LEDs erbrauchen immer genau so viel Strom, wie man ihnen gibt.

Bei vielen Anwendungen ist es daher sinnvoll, auf Öffnungswinkel und 
Wirkungsgrad (Lichtstrom/Leistung) zu achten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.