Hallo zusammen, nach langen Jahren des passiven Mitlesen habe ich eine Frage, die bisher glaube ich noch nicht gestellt wurde (zumindest habe ich keine gefunden). Folgendes Szenario: Ich möchte an einem Atmel ATMega328 ingesamt etwas unter 100 LEDs steuern können. Von diesen 100 LEDs ist immer nur eine gleichzeitig aktiv (!). Statt also mit Schieberegistern und massenweise Widerständen zu arbeiten, würde ich gerne einen passenden Widerstand nehmen, an VCC anschließen, alle 100 LEDs mit der Anode an die andere Seite des Widerstands und ein paar Schieberegistern mit Open Collector für die Kathoden benutzen. So kann ich mir einige Bauteile sparen. Man findet häufig Hinweise auf den 74HC596, der ist aber heute scheinbar unmöglich zu bekommen. Außerdem habe ich den TPIC6B595N (https://www.reichelt.de/powerlogik-8-bit-schiebe-register-dil-20-tpic-6b595-n-p147328.html) gefunden. Der ist allerdings mit 1,70€ doch recht teuer, und ich brauchte 12-13 Stück davon, was bei nem DIP-20 Gehäuse (nur 8 Drains pro IC) ziemlich viel Platz brauchen würde. Meine Fragen nun: Kennt ihr einen anderen, ähnlichen Chip (ggf sogar mit mehr Ausgängen)? Habt ihr eine andere Idee, um das Beschriebene sinnvoll zu realisieren? Herzlichen Dank! PS: Jetzt wo ich das gerade schreibe - da eh immer nur eine LED an ist... 74HC595 (DIP-16, also etwas kompakter), Anode der LED direkt an den IC, Kathoden zusammen führen und über Widerstand an GND müsste genauso gehen, oder übersehe ich etwas?
Daniel H. schrieb: > Statt also mit Schieberegistern und massenweise Widerständen zu > arbeiten, würde ich gerne einen passenden Widerstand nehmen, an VCC > anschließen, alle 100 LEDs mit der Anode an die andere Seite des > Widerstands und ein paar Schieberegistern mit Open Collector für die > Kathoden benutzen. So kann ich mir einige Bauteile sparen. Und was würde so schlimmes passieren, wenn du bei dem Konzept "ein passender Widerstand von zusammengeführten Anoden an VCC" bleibst und die Kathoden an Standard-Schieberegister mit Push-Pull-Ausgangsstufe anschließt (z.B. 74HC595)?
Die Stromaufnahme der LED wäre auch noch ein zu berücksichtigender Faktor. Wenn immer nur eine LED leuchtet könnte man auch über eine Matrix nachdenken. Nur 4 IC und 8 R.
Daniel H. schrieb: > Folgendes Szenario: Ich möchte an einem Atmel ATMega328 ingesamt etwas > unter 100 LEDs steuern können. Von diesen 100 LEDs ist immer nur eine > gleichzeitig aktiv (!). > > Statt also mit Schieberegistern und massenweise Widerständen zu > arbeiten, würde ich gerne einen passenden Widerstand nehmen, an VCC > anschließen, alle 100 LEDs mit der Anode an die andere Seite des > Widerstands und ein paar Schieberegistern mit Open Collector für die > Kathoden benutzen. Aha. Und warum glaubst du, du bräuchtest open-collector Ausgänge dafür? Sofern du die LED mit ihren Anoden an die Betriebsspannung deiner Schieberegister legst (und nicht etwa an eine höhere Spannung) dann geht das doch prima mit auch mit Gegentaktausgängen. Und dann kannst du die üblichen Verdächtigen wie HC595 oder 4094 verbauen. > Jetzt wo ich das gerade schreibe - da eh immer nur eine LED an ist... > 74HC595 (DIP-16, also etwas kompakter), Anode der LED direkt an den IC, > Kathoden zusammen führen und über Widerstand an GND müsste genauso > gehen, oder übersehe ich etwas? Das ist das gleiche in grün. Ob du die Anoden der LED ansteuerst und die Kathoden über einen gemeinsamen Widerstand an GND legst - oder - ob du die Kathoden der LED ansteuerst und die Anoden über einen gemeinsamen Widerstand an Vcc legst - das ist gehupft wie gesprungen.
Daniel H. schrieb: > oder übersehe ich etwas? Ja, den 74HC164 / 74HCT164. Der würde auch funktionieren. Ansonsten passt deine Idee schon ganz gut.
Noch einer schrieb: > Ansonsten passt deine Idee schon ganz gut. Das kommt drauf an, ob die LEDs linear oder quadratisch angeordnet werden sollen. In letztem Fall könnte man mit einer Matrixanordnung einiges an Verdrahtung/Treiberaufwand sparen.
Wie wäre es denn mit WS2812B LEDs? Die bekommt man ja heute schon so für etwas über 10 Cent/Stück. Und hat Farbe...
Vielen Dank für alle eure Antworten! Wolfgang schrieb: > Und was würde so schlimmes passieren, wenn du bei dem Konzept "ein > passender Widerstand von zusammengeführten Anoden an VCC" bleibst und > die Kathoden an Standard-Schieberegister mit Push-Pull-Ausgangsstufe > anschließt (z.B. 74HC595)? Also im Prinzip invertierte Logik am 595: Invertierte Logik, wenn der Output High ist, gibts keine Spannungsdifferenz und kein Strom fließt. Wenn er low ist, wird der Ausgang auf GND gezogen (haben die Schieberegister einen internen Widerstand, um den Ausgang auf GND zu ziehen? Oder werden die direkt auf GND gelegt? Ein Widerstand müsste man dann ja bei der Dimensionierung des anderen Widerstands berücksichtigen. Im Datenblatt hab ich dazu leider nichts gefunden. Allerdings ist der Stromverbrauch der 595er höher, wenn alle Ausgänge auf High sind. Das wäre abträglich bezüglich der Batterielaufzeit ;) Aber vermutlich verkraftbar. Einer schrieb: > Die Stromaufnahme der LED wäre auch noch ein zu berücksichtigender > Faktor. Mit ungefähr 30mA komme ich problemlos hin. Einer schrieb: > Wenn immer nur eine LED leuchtet könnte man auch über eine Matrix > nachdenken. > Nur 4 IC und 8 R. Was genau meinst Du mit einer Matrix in dem Fall? Axel S. schrieb: > Aha. Und warum glaubst du, du bräuchtest open-collector Ausgänge > dafür? Sofern du die LED mit ihren Anoden an die Betriebsspannung deiner > Schieberegister legst (und nicht etwa an eine höhere Spannung) dann geht > das doch prima mit auch mit Gegentaktausgängen. Und dann kannst du die > üblichen Verdächtigen wie HC595 oder 4094 verbauen. Wie oben schon geschrieben. VCC wird gleich der Spannung für die LEDs sein, dagegen spricht eigentlich nur der höhere Verbrauch der ICs wenn alle Ausgänge HIGH sind. Noch einer schrieb: > Ja, den 74HC164 / 74HCT164. Der würde auch funktionieren. > > Ansonsten passt deine Idee schon ganz gut. Danke für den Hinweis! Ist kleiner, das stimmt, hat aber kein Serial out. Entsprechend müsste ich alle separat vom Prozessor aus ansteuern. Könnte knapp werden mit den PINs, müsste ich mal zählen ;) Wolfgang schrieb: > Das kommt drauf an, ob die LEDs linear oder quadratisch angeordnet > werden sollen. In letztem Fall könnte man mit einer Matrixanordnung > einiges an Verdrahtung/Treiberaufwand sparen. Es wird ein Raster von 10x12 LEDs, also kein Quadrat, aber schon in einem mxn Raster. Wie würde man das denn anders beschalten können? Joe F. schrieb: > Wie wäre es denn mit WS2812B LEDs? > Die bekommt man ja heute schon so für etwas über 10 Cent/Stück. > Und hat Farbe... Eine sehr interessante Idee! Ich sehe sie bisher nur als SMD, allerdings brauche ich eine "normale" Form, die ich von unten durch eine dünne Holzplatte stecken kann. Danke schonmal an alle für die vielen Antworten!
Daniel H. schrieb: > Joe F. schrieb: >> Wie wäre es denn mit WS2812B LEDs? >> Die bekommt man ja heute schon so für etwas über 10 Cent/Stück. >> Und hat Farbe... > Eine sehr interessante Idee! Ich sehe sie bisher nur als SMD, allerdings > brauche ich eine "normale" Form, die ich von unten durch eine dünne > Holzplatte stecken kann. Gibts auch als "traditionelle" 5mm LED. hier für 0,50 EUR/Stck https://www.watterott.com/de/WS2812-5mm-LED-matt-10Stueck Auf eBay aus .cn teilweise auch für 0,04 EUR/Stck zu finden, wenn man das riskieren möchte...
Daniel H. schrieb: > Folgendes Szenario: Ich möchte an einem Atmel ATMega328 ingesamt etwas > unter 100 LEDs steuern können. Von diesen 100 LEDs ist immer nur eine > gleichzeitig aktiv (!). Dann ist "Charlieplexing" das Mittel der Wahl. Kostet genau elf Pins. Kann dann sogar 110 LEDs ansteuern. Ansonsten brauchst du nix. Alles andere, was nötig ist, kann der Mega328. Und wenn die elf Pins nicht verfügbar sind und du keinen Weg siehst, elf Pins freizuschaufeln, dann ist die günstigste Lösung: Mega32. Oder eine modernere Abart davon. Jedenfalls irgendwas, was eben genug Pins bietet und die ansosnten benötigte Funktionalität. Alles andere ist geistiger und kostenmäßiger Dünnschiss.
Joe F. schrieb: > > Gibts auch als "traditionelle" 5mm LED. > > hier für 0,50 EUR/Stck > https://www.watterott.com/de/WS2812-5mm-LED-matt-10Stueck > > Auf eBay aus .cn teilweise auch für 0,04 EUR/Stck zu finden, wenn man > das riskieren möchte... 50€ sind natürlich ne Hausnummer für so ein Bastelprojekt, aber dafür wäre ich sicher, dass die Dinger auch funktionieren ;) Für 4Cent pro Stück finde ich sie selbst allerdings auf Ebay aus CN nicht... darf ich fragen, nach was du gesucht hast? c-hater schrieb: > Daniel H. schrieb: > >> Folgendes Szenario: Ich möchte an einem Atmel ATMega328 ingesamt etwas >> unter 100 LEDs steuern können. Von diesen 100 LEDs ist immer nur eine >> gleichzeitig aktiv (!). > > Dann ist "Charlieplexing" das Mittel der Wahl. Kostet genau elf Pins. > Kann dann sogar 110 LEDs ansteuern. Ansonsten brauchst du nix. Alles > andere, was nötig ist, kann der Mega328. > > Und wenn die elf Pins nicht verfügbar sind und du keinen Weg siehst, elf > Pins freizuschaufeln, dann ist die günstigste Lösung: Mega32. Oder eine > modernere Abart davon. Jedenfalls irgendwas, was eben genug Pins bietet > und die ansosnten benötigte Funktionalität. > > Alles andere ist geistiger und kostenmäßiger Dünnschiss. Wieder was gelernt, danke sehr! 11 Pins sollten kein Problem sein, eine Frage allerdings: Auch wenn die anderen LEDs nicht leuchten, verbrauchen sie aber nun doch (minimal) Strom. Bei knapp 100 inaktiven LEDs, die jeweils "minimal" Strom verbrauchen, summiert sich das eventuell. Hast du ne ungefähre Idee, wie viel Strom dabei verloren geht? Danke! Daniel
H.Joachim S. schrieb: > Wirst du nicht messen können :-) Haha okay ;) wollte nur nachfragen, da das ganze ja über lange Zeit über Batterien laufen soll und ich versuche, auch beim Prozessor jedes mA rauszuquetschen. Hab eben kurz gesucht und nicht gefunden - gibts irgendwie ein Generator für größeres Charlieplexing? :)
Daniel H. schrieb: > Es wird ein Raster von 10x12 LEDs, also kein Quadrat, aber schon in > einem mxn Raster. ... Das sind bei mir 120 LEDs ;-) > ... Wie würde man das denn anders beschalten können? 10 Leitungen die jeweils eine Zeile über den Widerstand nach VCC schalten, 12 Leitungen die ein Spalte nach Gnd schalten. Am Kreuzungspunkt leuchtet es. Charlieplexing spart aber noch mehr Leitungen und bei WS2812B kämest du mit einer Leitung vom µC aus. > Also im Prinzip invertierte Logik am 595: Invertierte Logik, wenn der > Output High ist, gibts keine Spannungsdifferenz und kein Strom fließt. Das wird man nicht hin kriegen, weil die leuchtende LED die Sammelleitung auf U_F + U_CE runter zieht. Die nicht leuchtenden LEDs bekämen eine negative Spannung, die von der Farbe der leuchtenden LED abhängt.
Wolfgang schrieb: > Das sind bei mir 120 LEDs ;-) > Stimmt wohl ;-) >> ... Wie würde man das denn anders beschalten können? > 10 Leitungen die jeweils eine Zeile über den Widerstand nach VCC > schalten, 12 Leitungen die ein Spalte nach Gnd schalten. Am > Kreuzungspunkt leuchtet es. > > Charlieplexing spart aber noch mehr Leitungen und bei WS2812B kämest du > mit einer Leitung vom µC aus. Okay, danke für die Erklärung, irgendwie stand ich vorhin auf der Leitung ;) > Das wird man nicht hin kriegen, weil die leuchtende LED die > Sammelleitung auf U_F + U_CE runter zieht. Die nicht leuchtenden LEDs > bekämen eine negative Spannung, die von der Farbe der leuchtenden LED > abhängt. Dann habe ich glaube ich deinen ersten Vorschlag oben nicht verstanden :( Danke! Daniel
Daniel H. schrieb: > Für 4Cent pro > Stück finde ich sie selbst allerdings auf Ebay aus CN nicht... darf ich > fragen, nach was du gesucht hast? PL9823 F5 Ist nen WS2812 Clone. https://www.led-genial.de/mediafiles/Sonstiges/PL9823.pdf
:
Bearbeitet durch User
Daniel H. schrieb: > Wieder was gelernt, danke sehr! 11 Pins sollten kein Problem sein, eine > Frage allerdings: Auch wenn die anderen LEDs nicht leuchten, verbrauchen > sie aber nun doch (minimal) Strom. Nein. Wie kommst du darauf? Neben der einen, die tatsächlich angesteuert werden soll, gibt es noch eine, die an denselben Pins hängt, aber "falsch gepolt" ist. Die verbraucht im schlimmsten Fall ihren maximalen Sperrstrom bei der Betriebsspannung des AVR. Also so gut wie nix. Alle anderen LEDs "verbrauchen" den Leckstrom der Ausgänge eines AVR. Also quasi garnix.
Daniel H. schrieb: > Axel S. schrieb: >> Aha. Und warum glaubst du, du bräuchtest open-collector Ausgänge >> dafür? Sofern du die LED mit ihren Anoden an die Betriebsspannung deiner >> Schieberegister legst (und nicht etwa an eine höhere Spannung) dann geht >> das doch prima mit auch mit Gegentaktausgängen. Und dann kannst du die >> üblichen Verdächtigen wie HC595 oder 4094 verbauen. > > Wie oben schon geschrieben. VCC wird gleich der Spannung für die LEDs > sein, dagegen spricht eigentlich nur der höhere Verbrauch der ICs wenn > alle Ausgänge HIGH sind. Wie kommst du darauf? Der Stromverbrauch der Schieberegister wird annähernd Null sein. Nennenswert Strom fließt da nur durch die LED. Daniel H. schrieb: > Es wird ein Raster von 10x12 LEDs, also kein Quadrat, aber schon in > einem mxn Raster. Wie würde man das denn anders beschalten können? Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. Das könnten z.B. 3 kaskadierte HC595 sein. Von den insgesamt 24 Ausgängen läßt du einfach zwei unbenutzt. Lies den Artikel LED-Matrix im hiesigen Wiki. Da bei dir immer nur eine LED leuchten soll, brauchst du weder Treiber noch Multiplexing. Du schaltest einfach einen der Zeilen-Ausgänge auf H und einen der Spalten-Ausgänge auf L. Dann leuchtet die LED im Kreuzungspunkt der Zeile und Spalte. Du brauchst entweder in den Zeilen oder den Spalten jeweils einen Vorwiderstand. Da du sparen willst, nimmst du die Dimension der Matrix, die kleiner ist. Also 10 Widerstände.
Daniel H. schrieb: > Hab eben kurz gesucht und nicht gefunden - gibts irgendwie ein Generator > für größeres Charlieplexing? :) Wozu braucht man da irgendeinen Generator? Du musst doch über jede LED nur zwei Sachen wissen: 1) An welchen Pin ist die Anode angeschlossen 2) An welchen Pin ist die Kathode angeschlossen Wenn die Aufgabe ist: Lasse LEDx leuchten, dann macht die Software einfach nur folgendes: 1) Setze alle LED-Pins auf High-Z 2) Ermittle die beiden Pins für die gewünschte LED (hier bietet sich wohl eine Tabelle an) 3) Setze die beiden Ausgänge, den für die Anode auf high und den für die Kathode auf low. Oder umgekehrt, ich kann mir einfach nicht merken, was nun Anode und Kathode ist...
Daniel H. schrieb: > Wolfgang schrieb: > ... >> Das wird man nicht hin kriegen, weil die leuchtende LED die >> Sammelleitung auf U_F + U_CE runter zieht. Die nicht leuchtenden LEDs >> bekämen eine negative Spannung, die von der Farbe der leuchtenden LED >> abhängt. > > Dann habe ich glaube ich deinen ersten Vorschlag oben nicht verstanden So war das gemeint - ganz direkt ...
Daniel H. schrieb: > Für 4Cent pro Stück finde ich sie selbst allerdings auf Ebay aus CN > nicht... darf ich fragen, nach was du gesucht hast? Soviel muss man dafür doch gar nicht mehr ausgeben, z.B. 200 Stk. für 7€. https://www.ebay.de/itm/254388479089 Allerdings sollte man sich überlegen, ob man klare oder diffuse bevorzugt.
Joe F. schrieb: > PL9823 F5 > > Ist nen WS2812 Clone. > https://www.led-genial.de/mediafiles/Sonstiges/PL9823.pdf Danke, gefunden und bestellt ;) c-hater schrieb: > Neben der einen, die tatsächlich angesteuert werden soll, gibt es noch > eine, die an denselben Pins hängt, aber "falsch gepolt" ist. Die > verbraucht im schlimmsten Fall ihren maximalen Sperrstrom bei der > Betriebsspannung des AVR. Also so gut wie nix. Alle anderen LEDs > "verbrauchen" den Leckstrom der Ausgänge eines AVR. Also quasi garnix. Denkfehler meinerseits. Bin heute nicht ganz so fit im Kopf... Charlieplexing hab ich nun verstanden, auch der Generator wird überflüssig. Hab den High-Z Status irgendwie verdrängt... Axel S. schrieb: > Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. Das könnten > z.B. 3 kaskadierte HC595 sein. Von den insgesamt 24 Ausgängen läßt du > einfach zwei unbenutzt. > > Lies den Artikel LED-Matrix im hiesigen Wiki. > > Da bei dir immer nur eine LED leuchten soll, brauchst du weder Treiber > noch Multiplexing. Du schaltest einfach einen der Zeilen-Ausgänge auf H > und einen der Spalten-Ausgänge auf L. Dann leuchtet die LED im > Kreuzungspunkt der Zeile und Spalte. Du brauchst entweder in den Zeilen > oder den Spalten jeweils einen Vorwiderstand. Da du sparen willst, > nimmst du die Dimension der Matrix, die kleiner ist. Also 10 > Widerstände. Hier fehlt mir noch was.. ich habe mir die Datenblätter und Logikdiagramme angeschaut. Beim HC595 kann ich einen Ausgang auf High oder Low stellen, oder alle Ausgänge "aus schalten", aber nicht individuell. Wenn ich also den Ausgang A für die A-te Reihe (oder Spalte, egal) ändern will, muss ich allen vorherigen Ausgängen ebenfalls einen Wert geben. D.h. wenn ich eine Spalte auf High setze, müsste ich eine bestimmte Zeile auf Low setzen. Die davor wären ja aber dann auch low. Einen individuellen High-Z Status wie beispielsweise der Atmel haben die 595er nicht. Ich hab das Gefühl ich hab noch einen gravierenden Denkfehler hier drin... Siehe https://cdn-reichelt.de/documents/datenblatt/A240/74HC595%23STM.pdf Seite 3. High-Impedance geht nur für alle Ausgänge, wenn G high ist. Wolfgang schrieb: > So war das gemeint - ganz direkt ... Vielen Dank für die Grafik! Aber auch hier die gleiche (vermutlich dumme) Frage wie oben drüber: sagen wir, ich möchte Q_c auf low setzen, damit die dritte LED leuchtet. Auf was setze ich dann Q_a und Q_b? Danke auch für den Ebay-Link, genau die habe ich in der 100er Packung mal bestellt. Habe ich nach dem Hinweis auf PL9823 F5 dann auch gefunden ;) Nochmals danke für eure Geduld mit mir!
Es gibt das 8-bit-Latch 74x259. Das hat 3 Steuerleitungen (je Ausgang eines), eine Daten- und eine Adreßleitung. Du könntest also alle LEDs über einen gemeinsamen Anodenwiderstand betreiben und auf insgesamt 13 Latches die Kathoden anbinden. Dazu brauchst Du effektiv * 3 Adreßleitungen * 1 Datenleitung * 13 CS-Leitungen
Daniel H. schrieb: > Auf was setze ich dann Q_a und Q_b? Auf High - anders kann der 74HC595 nicht, weil Q_c aktiv sein muss und der Chip nur über ein gemeinsames Output Enable verfügen. Weil auf Grund des Spannungsabfalls über dem Widerstand die Sammelleitung deutlich unter VCC liegt, bekommen die nicht eingeschalteten Dioden dann eine geringe Spannung in Sperrrichtung.
2x MAX7219 oder 3x TM1637 Beides Matrix-Treiber. Die müssen nicht zwingend mit 7 Segmentanzeigen oder fertigen Matrixanzeigen beschaltet werden. Beide ICs sind aus China Pfennigware.
Daniel H. schrieb: > Axel S. schrieb: >> Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. ... >> Da bei dir immer nur eine LED leuchten soll, brauchst du weder Treiber >> noch Multiplexing. Du schaltest einfach einen der Zeilen-Ausgänge auf H >> und einen der Spalten-Ausgänge auf L. Dann leuchtet die LED im >> Kreuzungspunkt der Zeile und Spalte. > > Hier fehlt mir noch was.. ich habe mir die Datenblätter und > Logikdiagramme angeschaut. Beim HC595 kann ich einen Ausgang auf High > oder Low stellen, oder alle Ausgänge "aus schalten", aber nicht > individuell. Ja. Und? > Wenn ich also den Ausgang A für die A-te Reihe (oder > Spalte, egal) ändern will, muss ich allen vorherigen Ausgängen ebenfalls > einen Wert geben. D.h. wenn ich eine Spalte auf High setze, müsste ich > eine bestimmte Zeile auf Low setzen. Die davor wären ja aber dann auch > low. Einen individuellen High-Z Status wie beispielsweise der Atmel > haben die 595er nicht. Ich hab das Gefühl ich hab noch einen > gravierenden Denkfehler hier drin... Anscheinend glaubst du, es wäre verboten, eine LED in Sperrichtung zu betreiben. Ist es nicht. Wie Vorredner schon anmerkten, liegt die Sperrspannung in dieser Schaltung bei (Vcc - Uf). Wenn du mit Vcc=5V unterwegs bist (Arduino-Fraktion) und deine LED 2V Flußspannung haben, dann sind das 3V. Das hält jede LED aus. Die meisten LED sind bis 5V spezifiziert und der Sperrstrom liegt bei wenigen µA. Da das die Angabe über den ganzen Temperaturbereich ist, kannst du bei Raumtemperatur von Faktor 10 bis 100 weniger ausgehen. Sprich: nicht meßbar.
:
Bearbeitet durch User
Daniel H. schrieb: >> Ist nen WS2812 Clone. >> https://www.led-genial.de/mediafiles/Sonstiges/PL9823.pdf > > Danke, gefunden und bestellt ;) Nun ja, hast du geschaut was die verbraucht auch wenn die LED aus ist? 7-8mA pro PL9823 > Die Batterie wirds nicht lange machen! Hier in dem Blog der Verbrauch und Vergleich zur WS2812 http://laneboysrc.blogspot.com/2014/07/ws2812-and-pl9823-led-power-consumption.html
GeGe schrieb: > Nun ja, hast du geschaut was die verbraucht auch wenn die LED aus ist? > 7-8mA pro PL9823 > Die Batterie wirds nicht lange machen! Huch, das ist bei 100 Stck im Batteriebetrieb natürlich echt unbrauchbar. Hoffentlich noch Zeit die LED Bestellung zu stornieren... Selbst 2mA wären bei der Stückzahl an 5V noch 1 Watt Verbrauch für nichts. Hätte nicht gedacht, dass diese Dinger solche Stromsäufer sind.
:
Bearbeitet durch User
Jürgen W. schrieb: > Es gibt das 8-bit-Latch 74x259. > > Das hat 3 Steuerleitungen (je Ausgang eines), eine Daten- und eine > Adreßleitung. > > Du könntest also alle LEDs über einen gemeinsamen Anodenwiderstand > betreiben und auf insgesamt 13 Latches die Kathoden anbinden. > > Dazu brauchst Du effektiv > * 3 Adreßleitungen > * 1 Datenleitung > * 13 CS-Leitungen Danke für den Hinweis! Allerdings habe ich das Gefühl, dass das 595 Schieberegister+Latch dann effektiver ist. Die Schieberegister kann ich seriell hintereinander schalten und brauche damit effektiv nur 4 PINs, und die gleiche Anzahl ICs. Oder übersehe ich etwas? Wolfgang schrieb: > Daniel H. schrieb: > Auf High - anders kann der 74HC595 nicht, weil Q_c aktiv sein muss und > der Chip nur über ein gemeinsames Output Enable verfügen. > Weil auf Grund des Spannungsabfalls über dem Widerstand die > Sammelleitung deutlich unter VCC liegt, bekommen die nicht > eingeschalteten Dioden dann eine geringe Spannung in Sperrrichtung. Und Axel S. schrieb: > Anscheinend glaubst du, es wäre verboten, eine LED in Sperrichtung zu > betreiben. Ist es nicht. Wie Vorredner schon anmerkten, liegt die > Sperrspannung in dieser Schaltung bei (Vcc - Uf). Wenn du mit Vcc=5V > unterwegs bist (Arduino-Fraktion) und deine LED 2V Flußspannung haben, > dann sind das 3V. Das hält jede LED aus. Die meisten LED sind bis 5V > spezifiziert und der Sperrstrom liegt bei wenigen µA. Da das die Angabe > über den ganzen Temperaturbereich ist, kannst du bei Raumtemperatur von > Faktor 10 bis 100 weniger ausgehen. Sprich: nicht meßbar. Mir ist bewusst, dass eine LED immer noch eine Diode ist ;) Ich hatte Wolfgangs Kommentar oben falsch verstanden: Wolfgang schrieb: > Daniel H. schrieb: >> Also im Prinzip invertierte Logik am 595: Wenn der >> Output High ist, gibts keine Spannungsdifferenz und kein Strom fließt. > > Das wird man nicht hin kriegen, weil die leuchtende LED die > Sammelleitung auf U_F + U_CE runter zieht. Die nicht leuchtenden LEDs > bekämen eine negative Spannung, die von der Farbe der leuchtenden LED > abhängt. Jetzt klärt sich einiges ;) Du hattest den Aufbau ja Anfangs vorgeschlagen, ich habe versucht, das in eigenen Worten wiederzugeben und dann von "keine Spannungsdifferenz" gesprochen. Dann habe ich deine Antwort "das wird man nicht hinkriegen" falsch verstanden. Ich dachte, dass Du damit meinst, dass der von mir wiedergegebene Aufbau nicht funktionieren würde, was dann zu Verwirrung bei mir geführt hatte, weil ich dachte, deinen Vorschlag nicht richtig verstanden zu haben. Du meintest allerdings nur, dass man "keine Spannungsdifferenz" nicht hinbekommen würde, der Kommentar war nicht auf den Aufbau selbst bezogen. Dass die Spannungsdifferenz kein Problem ist, ist klar und jetzt auch verstanden. Schwere Geburt, danke nochmal :-) GeGe schrieb: > Nun ja, hast du geschaut was die verbraucht auch wenn die LED aus ist? > 7-8mA pro PL9823 > Die Batterie wirds nicht lange machen! > Hier in dem Blog der Verbrauch und Vergleich zur WS2812 > > http://laneboysrc.blogspot.com/2014/07/ws2812-and-pl9823-led-power-consumption.html Mist... vielen Dank für den Hinweis. Das hatte ich mir tatsächlich nicht angeschaut, ich hab naiv angenommen, dass der WS2812 Klon sich dann auch ähnlich verhält ;) Dann schauen wir mal, ob wir das noch stornieren können... Gerald B. schrieb: > 2x MAX7219 oder 3x TM1637 > Beides Matrix-Treiber. Die müssen nicht zwingend mit 7 Segmentanzeigen > oder fertigen Matrixanzeigen beschaltet werden. > Beide ICs sind aus China Pfennigware. Vielen Dank auch für den Hinweis! Der 7219 scheint vielversprechend zu sein, auch wenn dann etwas Gehirnakrobatik notwendig sein wird, um das Mapping zwischen LED Position in der 8x8 Matrix und der tatsächlichen Position hinzubekommen. Aber das sollte machbar sein :) Falls jemand hierauf stößt, ich habe zufällig ein ziemlich guten Blog-Eintrag zum 7219 gefunden: https://tronixstuff.com/2013/10/11/tutorial-arduino-max7219-led-display-driver-ic/ Ich werde heute im Laufe des Tages mal die verschiedenen Optionen vergleichen und melde mich dann nochmal wieder. Danke nochmals an alle!
Axel S. schrieb: > Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. Soll das etwa Charlieplexing werden? Wohl nicht. Für selbiges braucht man aber Steuerleitungen, die man einzeln hochohmig schalten kann. Da sind TTL-IC's aus dem Rennen. Und die Rechnung geht so: LedAnzahl = N*(N-1); mit N = Anzahl der Steuerstrippen. Für N=11 wären das 11*10=110 LED's. W.S.
W.S. schrieb: > Axel S. schrieb: >> Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. > > Soll das etwa Charlieplexing werden? Wohl nicht. Natürlich nicht. Hast du mal die Posts des TE überflogen? Das ist ein Anfänger. Mit Charlieplexing wird der nie fertig. > Für selbiges braucht man aber Steuerleitungen, die man _einzeln_ > hochohmig schalten kann. Da sind TTL-IC's aus dem Rennen. TTL IC sind seit 20 Jahren aus dem Rennen. 74HC595 ist kein TTL.
Daniel H. schrieb: > Vielen Dank auch für den Hinweis! Der 7219 scheint vielversprechend zu > sein, auch wenn dann etwas Gehirnakrobatik notwendig sein wird, um das > Mapping zwischen LED Position in der 8x8 Matrix und der tatsächlichen > Position hinzubekommen. Aber das sollte machbar sein :) Vor allem brauchst du 2. Warum nicht Charlyplexing mit 12 Ausgangspins des uC reichen soll, ist mir schleierhaft.
Axel S. schrieb: > W.S. schrieb: >> Axel S. schrieb: >>> Na als Matrix 10×12. Mit insgesamt 10+12=22 Steuerleitungen. >> >> Soll das etwa Charlieplexing werden? Wohl nicht. > > Natürlich nicht. Hast du mal die Posts des TE überflogen? Das ist ein > Anfänger. Mit Charlieplexing wird der nie fertig. Ich würde mich mal als Wiedereinsteiger bezeichnen. Dass ich gelötet habe und Schaltungen erstellt habe liegt inzwischen >10 Jahre zurück und ich habe einiges aus dieser Zeit (und auch meinem Elektrotechnik-Studium) vergessen und muss ich etwas langsamer wieder heran tasten. Charlieplexing hatte ich tatsächlich noch nie gehört, vielleicht hat es deswegen einen Moment länger gedauert. Mir zu unterstellen, dass ich das nicht hinbekomme ist aber etwas weit her geholt, dafür reicht mein Intellekt gerade noch ;) Michael B. schrieb: > > Vor allem brauchst du 2. > > Warum nicht Charlyplexing mit 12 Ausgangspins des uC reichen soll, ist > mir schleierhaft. Ja das ist mir schon klar... der erste kann wirklich als 8x8 Matrix fungieren, der andere muss die restlichen LEDs übernehmen, die nicht mehr so schön quadratisch angeordnet sein werden. Daher der Hinweis auf Gehirnakrobatik, aber auch das schaffe ich gerade noch... :) Charlieplexing mit 11 Ausgängen (110 LEDs) reicht vermutlich auch schon... Es gibt kein Grund warum das nicht reichen soll, ich würde nur gerne unterschiedliche Alternativen vergleichen.
So, wie versprochen meine Summary. Ich habe mich schlussendlich für die LED Matrix mit 74HC595 Schieberegistern (3 Stück reichen in diesem Fall) entschieden. Die Alternativen waren: - Direkt ansteuern mit Schieberegister (gemeinsame Anode oder Kathode erstmal egal) über 74HC164 oder 74HC595: zu viele ICs, ich bräuchte 13 Stück mit je 8 Ausgängen um dies zu realisieren. Das macht kein Sinn für mich. - Charlieplexing: Für mich eigentlich am elegantesten, es hat aber einen entscheidenden Nachteil bei der Verdrahtung. Ich müsste sowohl Anode als auch Katode einer jeden LED ans PCB führen. Ja, man könnte durch geschickte Platzierung der LEDs einige Kabelwege sparen, das ist mir aber zu viel Aufwand - WS2812B / PL9823: Zu teuer / zu stromhungrig, wenn ausgeschaltet. Leider :( - MAX7219 Scheint mir ein bisschen Overkill verglichen mit den anderen Lösungen, ich brauche 99% der Funktionalität nicht. Außerdem wäre die Matrix-Lösung mit 3 74HC595 und 10 Widerständen am günstigsten und ich denke auch am einfachsten. Nochmals danke für alle eure Vorschläge.
:
Bearbeitet durch User
Daniel H. schrieb: > Es gibt kein Grund warum das nicht reichen soll, ich würde nur > gerne unterschiedliche Alternativen vergleichen. In diesem Falle vermute ich mal sehr, daß du schon übermorgen auf die Idee kommst, ja vielleicht doch nicht nur eine LED, sondern mehrere davon leuchten lassen zu wollen. Ich hab sowas schon oft erlebt, daß zum Anfang das Pflichtenheft schön übersichtlich war und mit der Zeit durch hereintröpfelnde Zusatz-Wünsche aufgebläht wurde. Falls so etwas auch nur in deine Nähe käme, würde ich dir zu einem CPLD raten (XC95144 oder so). Kostet bei Ali nur ne Mark und du hast annähernd 100 Ausgänge parallel. Hauptsache die GND-Pins schaffen's. W.S.
Gerald B. schrieb: > 2x MAX7219 oder 3x TM1637 > Beides Matrix-Treiber. Die müssen nicht zwingend mit 7 Segmentanzeigen > oder fertigen Matrixanzeigen beschaltet werden. > Beide ICs sind aus China Pfennigware. Oder einen einzelnen HT16K33. Die Version im SOP28-Gehäuse kann max. 128 LEDs ansteuern. Im Gegensatz zum TM1637 hat dieser ein richtiges I²C-Interface.
W.S. schrieb: > Daniel H. schrieb: >> Es gibt kein Grund warum das nicht reichen soll, ich würde nur >> gerne unterschiedliche Alternativen vergleichen. > > In diesem Falle vermute ich mal sehr, daß du schon übermorgen auf die > Idee kommst, ja vielleicht doch nicht nur eine LED, sondern mehrere > davon leuchten lassen zu wollen. > > Ich hab sowas schon oft erlebt, daß zum Anfang das Pflichtenheft schön > übersichtlich war und mit der Zeit durch hereintröpfelnde Zusatz-Wünsche > aufgebläht wurde. > > Falls so etwas auch nur in deine Nähe käme, würde ich dir zu einem CPLD > raten (XC95144 oder so). Kostet bei Ali nur ne Mark und du hast > annähernd 100 Ausgänge parallel. Hauptsache die GND-Pins schaffen's. > > W.S. Uiuiui, VHDL/Verilog sind noch länger her als der Rest, ich habe damit effektiv nie gearbeitet. Das würde dann in die Kategorie "mal was neues lernen" fallen ... :) In diesem Fall bin ich sehr sicher, dass die Anforderung mehrerer LEDs nicht kommen wird. Dafür ist das Projekt einfach nicht gedacht. Aber danke für deinen Tip! ;) P.S. schrieb: > Gerald B. schrieb: >> 2x MAX7219 oder 3x TM1637 >> Beides Matrix-Treiber. Die müssen nicht zwingend mit 7 Segmentanzeigen >> oder fertigen Matrixanzeigen beschaltet werden. >> Beide ICs sind aus China Pfennigware. > > Oder einen einzelnen HT16K33. Die Version im SOP28-Gehäuse kann max. 128 > LEDs ansteuern. Im Gegensatz zum TM1637 hat dieser ein richtiges > I²C-Interface. Der sieht auch interessant aus - ähnlich wie der MAX7219 aber overkill - es muss wirklich nur eine LED leuchten ;)
Daniel H. schrieb: >> Oder einen einzelnen HT16K33. Die Version im SOP28-Gehäuse kann max. 128 >> LEDs ansteuern. Im Gegensatz zum TM1637 hat dieser ein richtiges >> I²C-Interface. > > Der sieht auch interessant aus - ähnlich wie der MAX7219 aber overkill - > es muss wirklich nur eine LED leuchten ;) Ob eine oder mehrere ist doch egal. 1 IC, für ein paar Euro schon auf PCB aufgelötet im Handel, 2mA Stromverbrauch und alle LEDs können kabelsparend als Matrix angeschlossen werden. Einfacher gehts doch nicht. Würde ich nehmen.
:
Bearbeitet durch User
W.S. schrieb: > Falls so etwas auch nur in deine Nähe käme, würde ich dir zu einem CPLD > raten (XC95144 oder so). Stolze 160mA ist aber nicht gerade stromsparend und High liegt bei 3,5V. Und wer weiß, wie lange es die 5V Typen noch gibt. Die CMOS-Typen XCR3128 gehen nur bis 3,3V.
Daniel H. schrieb: > Außerdem wäre die Matrix-Lösung mit 3 74HC595 und 10 Widerständen am > günstigsten und ich denke auch am einfachsten. Da eh nur eine LED an sein soll kann man das auch gleich mit "3to8 decoder" machen. Einen 74HC238, dort ist nur immer ein Ausgang von den acht auf HIGH. Dazu einen 74HC138 bei dem nur immer ein Ausgang von den acht auf LOW ist. Das ganze verschaltet als Matrix und man kan schon 64 LEDs einzeln schalten. Da beide Dekoder noch je drei Chip-Enable Eingänge haben kann man das leicht kaskadieren. Die Programmierung mit einer einfachen Byte-Ausgabe ist sicher deutlich einfacher als Schieberegister zu bedienen.
Ehrlich gesagt läuft ein erster Prototyp mit dem Arduino und ner 4x5 LED Matrix mit 2 kaskadierten 74HC595 schon, siehe Anhang. Die Bauteile dafür hatte ich zufällig noch hier. Der Sketch macht momentan nichts außer von oben links nach unten rechts die LEDs nacheinander anzumachen, aber die Funktion, eine LED mit gegebener x/y Koordinate anzuschalten funktioniert schon. Vielen Dank aber für den Hinweis ;) Als nächstes steht die Kommunikation zwischen dem Raspi auf dem Tisch und dem Arduino mittels NRF24L01+ Modulen auf dem Programm, da die extrem wenig Strom brauchen.
:
Bearbeitet durch User
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.