Forum: Mikrocontroller und Digitale Elektronik LEDs über I²C ansteuern


von Tom Linz (Gast)


Lesenswert?

Hallo,

ich möchte/muss für eine Projekt 60 Leuchtdioden (geplant waren 
Duo-LEDs, womit wir dann bei 120 LEDs wären) über I²C steuern. Ich 
dachte mir einen IO-Expander, wie den PCF 8574 AP zu nehmen, aber von 
dem können ja nur 8 Stück adressiert werden (3-Bit-Adresse). Nun bin ich 
mir auch nicht sicher, ob man mit diesem diese große Anzahl an LEDs 
treiben kann. Zudem komme ich so ja nur auf 8*8 Duo-LEDs = 64 DUO-LEDs, 
aber ich benötige doppelt so viele.

Ziel der ganzen Geschichte ist es, das DCF-77-Signal zu visualisieren, 
wobei die Leuchtdioden aber nicht aus sein sollen, wenn der 
entsprechende Minutenpuls einer 0 entspricht. Eine Alternative wäre es, 
die LEDs in diesem Fall leicht zu dimmen, was natürlich noch viel 
aufwändiger wäre.

Kann mir jemand helfen, bzw. mir sagen wie ich diese große Anzahl 
(Duo)-LEDs über I²C betreiben kann?

Danke
Tom

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

I²C-fähigen Controller als Slave benutzen.  Die kann man normalerweise
in der Adresse frei programmieren, sodass man bis zu 127 Slaves an
einem Bus betreiben kann.  Weiß ja nicht, wie dick deine LEDs im
Stromverbrauch sind, wenn es nicht zu viel ist, kannst du die LEDs
direkt mit Controllerpins treiben, andernfalls brauchst du noch
ULN200x oder sowas als Treiber.

von Falk B. (falk)


Lesenswert?

@  Tom Linz (Gast)

>Kann mir jemand helfen, bzw. mir sagen wie ich diese große Anzahl
>(Duo)-LEDs über I²C betreiben kann?

Mach I2C in Software und mach zwei parallele I2C Busse an deinem 
Mikrocontroller. Oder nimm I2C MUXe, da kann man auch Busse parallel 
schalten.

Siehe

http://www.mikrocontroller.net/articles/Port-Expander_PCF8574

MFG
Falk

von Tom Linz (Gast)


Lesenswert?

Auf deiner verlinkten Seite ist mir klar geworden, dass PCF8574 und 
PCF8574A verschiedene Adressen haben. Damit kann ich meine 60 
Leuchtdioden locker mit dem ATMega16 ansteuern, bzw. vielleicht werde 
ich auch den I²C-MUX benutzen. Vielen Dank.

Vorraussichtlich handelt es sich bei meinen LEDs um 10mm-Duo-LEDs 
http://www.reichelt.de/DUO-LEDs-Blink-LEDs/LED-10-RG-3/index.html?;ACTION=3;LA=2;ARTICLE=10240;GROUPID=3022;SID=12TXUzdH8AAAIAADAHF9ceb11ea5f8ebac35831c8ad62a90d0c81
mit dem typischen 20mA-Stromverbrauch. Ich denke ich benötige hierfür 
keine Treiber, aber korrigiert mich, falls ich mich irren sollte :-)

Viele Grüße
Tom

von Jobst M. (jobstens-de)


Lesenswert?

Tom Linz schrieb:
> den PCF 8574 AP zu nehmen, aber von
> dem können ja nur 8 Stück adressiert werden (3-Bit-Adresse).

Im Datenblatt steht:
Address by 3 hardware address pins for use of up to 8 devices (up to 16 
with PCF8574A)

Also: 8x PCF 8574 AP und 8x PCF 8574 P benutzen = 128 Ausgänge

Edit : Hast es ja schon gefunden ;-)

Die ICs können aber nur gegen Masse Strom fliessen lassen, also müssen 
Deine DUO-LEDs mit gemeinsamer Anode sein.

Bei dem Preis könnte man sich auch überlegen, z.B. einen ATmega48 zu 
benutzen, der dann 16-20 LEDs ansteuert (Hälfte gegen +, die andere 
Hälfte gegen GND). Den kann man dann solche Sachen wie halbe Helligkeit 
selber erledigen lassen.


Gruß

Jobst

von Falk B. (falk)


Lesenswert?

@  Tom Linz (Gast)

>Vorraussichtlich handelt es sich bei meinen LEDs um 10mm-Duo-LEDs
>http://www.reichelt.de/DUO-LEDs-Blink-LEDs/LED-10-...

Geht nicht, du braucht LEDs mit gemeinsamer Anode, die hier haben 
gemeinsame Kathode.

MFG
Falk

von Björn C. (bjoernc) Benutzerseite


Lesenswert?

Also für diese Aufgabe könnte man den PCA9505 / PCA9506 einsetzen. Das 
Chip hat 40 Ausgänge / Eingäge und wird über I²C gesteuert. Zu kaufen 
gibts den jedoch nicht bei Reichelt oder Conrad oder Schuricht. 
Ebenfalls gibts ein kleines Problem der PCA9505 kann "nur" 10 mA pro 
Ausgang treiben - soweit ich das noch korrekt in Erinnerung haben.

von Tom Linz (Gast)


Lesenswert?

Oh, danke für den Hinweis mit der gemeinsamen Kathode. Da hätte ich mir 
das Datenblatt erst mal genauer ansehen sollen.

Es kennt nicht jemand von euch zufällig ähnlich große LEDs, die diese 
Bedingung, also Beschaltung, erfüllen?

Viele Grüße
Tom

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Wieso eigentlich I²C?
Das hier ist doch ein wunderbarer Fall für EINEN Mikrocontroller plus 
Matrix-Ansteuerung oder gleich Charlieplexing?

Immer dieser Aufwand...
Geht doch viel leichter und billiger!

Mit freundlichen Grüßen,
Valentin Buck

von Tom Linz (Gast)


Lesenswert?

Wenn mein Dozent das so wollte, bin ich eigentlich ziemlich machtlos. 
Wahrscheinlich stehen da irgendwelche didaktischen Geschichten im 
Vordergrund.

von Jörg S. (joerg-s)


Lesenswert?

PCA9501 hat 6 Adress Pins, kann also 64x eingesetzt werden und den 
gibt's bei Reichelt

Wenn alles auf einer Platine sitzt, kannst du ja auch die Adress-Pins 
vom Controller aus steuern und immer nur einen auf die "aktive" Adresse 
setzen.

von Tom Linz (Gast)


Lesenswert?

Stimmt, das mit der zugewiesenen Adresse hatte ich mir noch gar nicht 
überlegt. Die Sache mit der I²C-Ansteuerung werde ich aber jetzt wohl 
doch sein lassen und die ganze Sache aus Kostengründen über 
Schieberegister lösen, wie bei dem Conrad-Pong-Spiel 
http://www.produktinfo.conrad.com/datenblaetter/900000-924999/902766-an-01-ml-CONRAD_RETRO_SPIEL_PING_PONG_de_en_fr_nl.pdf
(meinen  Betreuern wurde die Lösung über I²C dann doch zu teuer)

Im Grunde kann ich doch die gleichen Bauelemente wie beim Pong-Spiel 
nutzen, oder? Zusätzliche Treiber sind doch nicht notwendig?
Benutzen möchte ich nun doch "normale" 5 mm Standard-LEDs (allerdings 
mit Reflektoren).

Viele Grüße und vielen Dank
Tom

von Falk B. (falk)


Lesenswert?

@  Tom Linz (Gast)

>(meinen  Betreuern wurde die Lösung über I²C dann doch zu teuer)

Hmm, 16 EUR sprengen das UNI-Buget? ;-)

>Im Grunde kann ich doch die gleichen Bauelemente wie beim Pong-Spiel
>nutzen, oder?

Ja.

>Zusätzliche Treiber sind doch nicht notwendig?

Nein.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister#Acht_LEDs_mit_je_20mA_pro_Schieberegister

MfG
Falk

von Jörg S. (joerg-s)


Lesenswert?

>(meinen  Betreuern wurde die Lösung über I²C dann doch zu teuer)
Also ich hätte PCA9532 genommen, das sind 16-fach I2C LED Dimmer und 
davon dann halt 8 Stück. Kosten bei Reichelt 1,90€ also zusammen 15,20€.

von Falk B. (falk)


Lesenswert?

Ein 74HC595 kostet 30 Cent, macht 4,80 in Summe. Old School baby!

von Jürgen W. (juergenw)


Lesenswert?

Schau Dir mal den I2C-Baustein SAA1064 an. Dort können 32 LED's 
(gemultiplext)angeschlossen werden und die Helligkeit in glaub 8 Stufen 
eingestellt werden.

von Jörg S. (joerg-s)


Lesenswert?

Falk Brunner schrieb:
> Ein 74HC595 kostet 30 Cent, macht 4,80 in Summe. Old School baby!
Dimmt aber nicht so schön, es sei denn man gibt ordentlich Kiloherzen 
drauf :)

von Jobst M. (jobstens-de)


Lesenswert?

Jörg S. schrieb:
> Falk Brunner schrieb:
>> Ein 74HC595 kostet 30 Cent, macht 4,80 in Summe. Old School baby!
> Dimmt aber nicht so schön, es sei denn man gibt ordentlich Kiloherzen
> drauf :)

Stimmt, das ist beim PCF8574 wesentlich besser!

:ironie off: ;-)


Tom Linz schrieb:
> (meinen  Betreuern wurde die Lösung über I²C dann doch zu teuer)

Abgesehen davon, daß es mich verblüfft: Das wussten die nicht vorher, 
was das kostet?
Die sind überbezahlt und müssten eigentlich dazu verdonnert werden, die 
Bauteile aus der eigenen Tasche zu bezahlen!



Gruß

Jobst

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jobst M. schrieb:

> Die sind überbezahlt ...

Ah, also du gehörst zu den Betreuern!

von Jobst M. (jobstens-de)


Lesenswert?

Jörg Wunsch schrieb:
> Ah, also du gehörst zu den Betreuern!

Nö, denn ich weiß ja, was da für Kosten auf einen zukommen.


Gruß

Jobst

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jobst M. schrieb:
> Jörg Wunsch schrieb:
>> Ah, also du gehörst zu den Betreuern!
>
> Nö, ...

Woher nimmst du dann die Einschätzung, seine Betreuer seien
"überbezahlt"?

von Jobst M. (jobstens-de)


Lesenswert?

Ganz einfach: Weil sie ihre Hausaufgaben nicht gemacht haben.

Bevor ich jemandem eine Aufgabe stelle, sollte ich wissen, was das 
Ergebnis ist.


Gruß

Jobst

von Tom Linz (Gast)


Lesenswert?

Meine Betreuer sind auf jeden Fall überbezahlt (als Angestellter der 
Telekom an einer Fachhoschule der Telekom). Ich darf fast 50,00€ für 
LED-Reflektoren und mehrere huntert Euro für die "Frontplatte" dieses 
Exponats einer Wissenschafts-Mitmach-Ausstellung ausgeben, aber bei 16€ 
für zwei der berühmten MAX7219 für meine Siebensegmentanzeigen reicht 
das Budget nicht mehr und ich muss mir eine preisgünstigere Alternative 
einfallen lassen. Nun werde ich also 120 LEDs und 20 
Siebensegmentanzeigen multiplexen und I²C nur für ein Display benutzen. 
Nur bleibt am Ende der Misserfolg an mir hängen und über das Finanzielle 
wird keiner ein Wort verlieren.

Vielen Dank für die zahlreichen Tipps und viele Grüße
Tom

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.