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
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.
@ 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
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
@ 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
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.
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
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
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.
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
>(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€.
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.
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 :)
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
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"?
Ganz einfach: Weil sie ihre Hausaufgaben nicht gemacht haben.
Bevor ich jemandem eine Aufgabe stelle, sollte ich wissen, was das
Ergebnis ist.
Gruß
Jobst
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