Guten Abend, ich habe eine Charlieplexing Schaltung mit 4 RGB LED also 12 LED an 4 Arduino PIN fertig gemacht und die läuft auch. Grundlage war eine gute bebilderte Darstellung im www, welche ich ähnlich nachgebaut habe, ebenso habe ich einen fertigen Code/Sketch gefunden, in welchem ich nur die PIN Nummern verändert habe, und läuft auch. Ich habe ein kurzes Video mal hochgeladen, kann man sich unter dem Link ansehen. Dort ist auch das "Projekt" zu sehen, an welchem ich gerade baue und wofür ich diese 72 LED zum leuchten bringen möchte, vielleicht werden es ja auch noch mehr, wenn ich diese "Zauberei" verstanden habe. https://videobin.org/+10py/16dv.ogg Nun zu meinem Anliegen. Ich habe versucht, im www rauszubekommen, wie das mit dem Charlieplexing praktisch funktioniert um diese Schaltung mit 72 LED selbst zu erstellen, mit dem Highlight, mit einem Drehregler die Blinkgeschwindigkeit zu verändern. Das übersteigt mein Verständnis, mit den ganzen Zeichnungen, welche man da so sieht, dann das schlecht übersetzte deutsch in vielen Beiträgen, welche man über google findet, es ist für mich nichts halbes und ganzes, und mit Elektronik englisch habe ich es wirklich nicht so. Ich arbeite immer nach learning by doing, Theorie fällt mir schwer. Ich bin gelernter Metaller, einen 50ger Spiralbohrer anschleifen kann man auch nicht über Internet lernen, das muß man machen und ein Gefühl für entwickeln, dann entwickelt sich auch das Verständnis dafür, warum wieso.... Ich habe jetzt eine 2. Platine mit den 24 RGB LED (gemeinsame Kathode) also gesamt 72 LED aufgebaut und habe schon mal an jeder Kathode ein Kabel angebracht. Ich weiß auch das ich 9 Widerstände benötige, habe zunächst 220 Ohm gewählt, kann ich ja immer noch ändern, aber die sollten ja erstmal gehen. Ich würde mich freuen, wenn hier jemand im Forum ist, der mich bei diesem Vorhaben unterstützt und mich gleichzeitig dem Thema Charlieplexing näher bringt. Gern fang ich auch mit 2 LED an, um das ganze zu kapieren, nur, es wäre gut wenn mir denn jemand auch erklärt warum das so ist und nicht so. An Hardware habe ich alle notwendigen Sachen, denke ich jedenfalls. Sollte ich hier falsch sein mit meinem Anliegen, sagt es mir bitte, oder wenn meine Bitte zu weit geht........ Vielen Dank
[0] beschreibt Charlieplexing ganz gut. Du wirst aber einen 10. Pin oder mehr RGB-Leds brauchen (oder nicht alle Leds ansteuern können). HTH [0] https://en.wikipedia.org/wiki/Charlieplexing
Moin, Hm, ich weiss jetzt nicht wirklich, wo genau dein Problem ist, aber ich hatte hier mal ein 3x4 charlieplexing in einem Schaltplan als Matrix gezeichnet: Beitrag "VU-Meter mit Attiny13a statt LM3916" Das musst du halt entsprechend erweitern, damit du auf deine 72 LEDs kommst. Oder klemmts bei dir an der Software? - da ist 72 = 8x9 natuerlich ein bissl bloed, weil 9 bit grad nicht mehr in ein Byte passt... Gruss WK
Das Prinzip beim Charlieplexing ist, dass du „jeder mit jedem“ spielst und dabei ausnutzt, dass die Pins eines Controllers nicht nur high oder low, sondern auch passiv (floating / input) sein können, sodass ein entsprechend angesteuerter Pin gerade nicht in das Geschehen eingreift. Damit kannst du nun auch jedes Pinpaar mit 2 LEDs versehen, die antiparallel sind. Die erste leuchtet dann bei der Kombination "high-low", die entgegengesetzte bei "low-high". Nachteilig bei Charlieplexing im Vergleich zu klassischem Multiplexing ist, dass die Einschaltdauer einer einzelnen LED nur noch sehr kurz ist, wenn man eine große Matrix hat. Dadurch müsste man den Impulsstrom während dieser Zeit sehr hoch treiben, aber dem sind Grenzen gesetzt 1.) durch die maximal zulässige Impulsbelastung der LED selbst und 2.) durch die nur endliche Stromergiebigkeit der Ausgänge des verwendeten Controllers. Für so eine große Matrix wirst du mit deinen vergleichsweise großen Widerständen nur noch eine sehr geringe Helligkeit erzielen können. Wenn du nun auch noch nur einen Strombegrenzungswiderstand pro Pin vorsehen willst (statt einen pro LED), hast du überdies noch das Problem, dass bei einer RGB-LED die Flussspannung der einzelnen Komponenten extrem unterschiedlich sind, sodass insbesondere die blauen LEDs viel weniger Strom erhalten werden als die roten oder grünen. Prinzipiell könnte man mit 9 Ausgängen tatsächlich 72 LEDs ansteuern, allerdings müsste man dafür die Pins frei verfügbar haben. Bei dir haben allerdings immer drei LEDs eine gemeinsame Katode und müssen daher an den gleichen Pin angeschlossen werden. Daher denke ich, dass du deine 24 RGB-LEDs nicht auf diese Weise angeschlossen bekommst, denn es ist unmöglich, an einen Pin acht Katoden (für die anderen 8 Pins) zu verdrahten, da du nur 6 oder 9 Katoden dort anschließen könntest.
Charlieplexing benötigt spezielle Treiber-ICs, die Konstantstromausgänge in der einen Richtung und Spannungsausgänge in der anderen Richtung haben. Eine große Anzahl LEDs kannst Du eh nicht mehr mit dem MC direkt treiben. Du benötigts Treiber-ICs oder Transistoren. Z.B. der MAX6950 kann bis zu 400mA treiben. https://www.maximintegrated.com/en/products/power/display-power-control/MAX6950.html Ohne diese Treiber-IC hat Charlieplexing keinerlei Vorteile gegenüber einfachem Multiplexing, sondern nur die Nachteile der komplizierteren Programmierung und des komplizierterem Routing.
Vielen Dank, das mein Beitrag gelesen wurde und auch jemand geantwortet hat. Das ich jetzt RGB LED für mein Projekt verwende, ist dem geschuldet, das ich davon 200 Dinger liegen habe und diese verarbeiten möchte. Zukünftig werde ich nur noch Neopixel LED verwenden, weil das mit der Ansteuerung unkomplizierter ist, denke ich jedenfalls. Was habe ich jetzt zur Fertigstellung meines Projektes aus den Feddbacks gelernt? @Jörg W. - Vielen Dank "Prinzipiell könnte man mit 9 Ausgängen tatsächlich 72 LEDs ansteuern..." - das habe ich eigentlich gehofft und das gibt mir auch den Antrieb weiter zu machen. Und der Arduino UNO/NANO/MICRO hat ja, nach meinem Verständnis, 9 freie PIN, um die 72 LED anzusteuern. Meine Widerstände, kann ich ja kleiner wählen, das habe ich in meinem Eingangspost geschrieben, das ist mir bekannt, das merke ich ja wenn die LED nicht mehr hell genug sind. Neu war für mich jetzt der Begriff Flußspannung, das das die Ursache ist, wenn man einen Widerstand an die Katode einer RGB LED macht, das die Farben unterschiedlich hell leuchten und das man dies mit einem Widerstand an jeder Anode umgehen könnte - will ich aber nicht, ist für das Projekt auch nicht notwendig, es ist nur eine Bastelei, ich will damit keinen Preis für gleichmäßige Helligkeit gewinnen. Das Charlieplexing Nachteile hat, davon gehe ich mal aus, es ist aber, immer ausgehend von meinem Wissensstand der ganzen Materie, für mich die Möglichkeit, ohne viel Materialaufwand, die gewünschte Anzahl LED zum leuchten und blinken zu bringen. @g457 auch Danke, aber Englisch. Ich übersetze mir das mal mit google und werde sehen ob ich für mich neue Erkenntnisse entnehmen kann. Das mit den 10 PIN kapier ich jetzt gerade nicht, ignoriere ich jetzt im Moment aber mal, weil ich keinen Zusammenhang mit der Realisierung meines Projektes erkennen kann. Es wäre jetzt ein leichtes, noch zusätzliche LED rein zu nageln, sehe ich aber gerade keine Notwendigkeit. @Dergute W. ebenso ein Danke. Mein Problem ist, das ich Charlieplexing richtig cool finde, aber ich einfach nicht verstehe wie ich verdrahten muß.... z.B. (das ist jetzt nur ausgedacht) von PIN 8 zu Katode von LED 3, von Anode LED 8 zu Anode LED 65, von Anode LED 65 zu Anode LED 34, von PIN 3 zu Widerstand 9 usw. oder so ähnlich - so wird ja sowas im Prinzip gemacht, nur eine spezielle Anleitung zur Verdrahtung von 5 oder 6 oder 7 oder 60 LED kann ich nicht finden - ebenso wenig finde ich auch keine Anleitung/Lehrmittel wie ich es erlernen könnte eine solche Anleitung zu erstellen oder ein Verständnis dafür zu entwickeln. Arduino Kochbuch ist auch wieder zu speziell - habe ich reingeschaut. VU-Meter - wenn eine Lichtorgel damit gemeint ist - habe ich mit einem MSGEQ7 und mit Mosfets geübt und hinbekommen, da was zu basteln steht mittelfristig bei mir im Plan. @Peter D. auch vielen Dank, nur ich wollte auf Treiber IC verzichten. Ich denke doch, das ich die von mir gewünschte Anzahl LED mit dem Arduino steuern kann, bitte, ich bin nicht beratungsresistent, aber hier ist mein "Forschungsdrang" größer und ich möchte diese Erkenntnis, wenn, dann auch selbst gewinnen und nicht, weil zugerufen, übernehmen. Natürlich weiß ich auch, das man eine Lösung mit Shift Register finden könnte oder mit einem MAX6950, nur das möchte ich nicht. Meine Gedanken gehen auch zu einem LOL Shield, bei Ali Express für 3€, ist alles auf einer Platine, müssen nur noch die Drähte gelötet werden. Mein Ziel ist es nicht, unbedingt die optimalste und effizienteste Lösung zu finden. Die harte Tour wäre, ich nehme einfach weitere 5 Arduino, laß jeden davon ebenso 12 LED steuern (die Lösung habe ich ja), dann sind auch alle gewünschten 72 in Betrieb. Das was ich mir da zusammengebastelt habe, soll einfach nur leuchten und blinken und fertig. Das "Kunstwerk" muß zum Schluß in seiner Gesamtheit betrachtet werden, und da sind die Blinkeffekte "nur" wichtiges Beiwerk. Ich frage jetzt einfach nochmal, ausgehend davon das ich mit 4 PIN schon 12 LED am blinken habe. Wie muß ich verkabeln, wenn ich auf 5, 6, 7, 8 oder 9 PIN erweitern möchte? Gibt es da ein Prinzip oder eine Regel, welche ich bei der Verkabelung von weiteren PIN einfach fortführen muß, oder wie läuft das?
Heinz Z. schrieb: > auch Danke, aber Englisch. Ich übersetze mir das mal mit google übersetze es mit www.deepl.com, da kommen möglicherweise besser lesbare Texte raus.
Heinz Z. schrieb: > Meine Widerstände, > kann ich ja kleiner wählen Das ändert aber nichts an der Strombelastbarkeit der Ausgangspins. Der AVR ist mit max 40mA angegeben. Leuchten all 9 LEDs einer Zeile, dürfen nur je 40mA/9=4,4mA fließen. Durch das Multiplexen leuchtet jede LED aber nur 1/8 der Zeit, d.h. effektiv leuchten sie mit 4,4mA/8=550µA. Als Bastler kann man die 40mA noch leicht überschreiten. Wenns dem AVR zuviel wird, steigt der magische Rauch auf. Die zuverlässige Lösung wäre daher ein konventionelles Multiplex mit 2* 74HC595 und je 8 pnp und 9 npn dahinter. Das kostet dann 3 Ausgänge des Arduino + 1 Ausgang für die 9. Spalte = 4 Pins gesamt.
Hallo, einmal laut Gedacht. Könnte man nicht 3 Stück MAX7219 verwenden? Je einer für eine Farbe der RGB Leds. Einschränkung wäre 64 Leds oder man nimmt 6 Stück.
:
Bearbeitet durch User
@Veit D. Danke, na klar geht auch das. Mit geht es aber nicht um Alternativen zu meinem Vorhaben. Für mich steht eine Realisierung mit Charlieplexing im Vordergrund, nichts anderes. @Peter D. Danke für die Ergänzung wegen dem Übersetzen aus dem Englisch. Natürlich sind die 74HC595 mit Mosfets dahinter eine sehr zuverlässige Lösung, da habe ich keine 2. Meinung. Ich habe wohl noch 100 IRFZ44 (glaube ich - auf jeden Fall welche, die der Arduino nauch ansteuern kann) liegen, das wäre aber dann ein Plan B. Mein Drang geht aber immer noch dahin, mit "einfachem" Charlieplexing eine Lösung zu finden. Es sollen in meinem Projekt nicht 9 LED auf einmal leuchten oder was weiß ich. Meine "Lichtkomposition" sieht vor, das immer nur eine LED (ich habe in jeder kleinen Röhre 3 LED parallel verbunden - mit einem gemeinsamen Anschluß - das sollte jetzt aber wohl kein Problem darstellen) leuchtet und dann die nächste und dann wieder die nächste, so wie in meinem hochgeladenen Video, wo es mit 12 LED (in jeder Röhre ist praktisch 1 RGB LED, auch wenn 3 parallel zusammengeschaltet sind) schon wunderbar funktioniert. Als Gimmick hätte ich nur gern einen Drehregler, mit welchem ich die Pause vom Leuchten der einen LED zum Leuchten der nächsten LED verändern kann. Und diese einfache Lösung mit den 72 LED soll mit Charlieplexing nicht hinzubekommen sein? Glaube ich nicht.
Wenn immer nur eine LED leuchten soll, dann muß man nicht multiplexen, sondern nur umschalten, d.h. statisch ansteuern. Dann sollte der AVR den Strom schaffen.
Peter D. schrieb: > Charlieplexing benötigt spezielle Treiber-ICs, ... Als allgemeine Aussage ist das falsch.
Hallo, wenn du nicht im eigentlichen Sinne multiplexen möchtest und immer nur eine LED leuchten soll, dann möchtest du mit Charliplexing einfach nur Pins einsparen. Soweit dürfte das nun klar sein. Jetzt wäre die Frage nach all den Antworten zum Thema ob das Prinzip von Charliplexing nun klar ist oder noch nicht.
Heinz Z. schrieb: > Und diese einfache Lösung mit den 72 LED soll mit Charlieplexing nicht > hinzubekommen sein? Glaube ich nicht. Jedenfalls nicht so, wie geplant. Du brauchst statt 9 Widerständen 72 und statt 9 Pins 10. Warum das beides im Falle von RGB-LEDs mit einer gemeinsamen Elektrode so ist, wie es ist, hat dir Jörg W. etliche Postings höher zu erklären versucht. Auch im nochmal ein Stück höher verlinkten Wikipedia-Artikel ist zumindest die Widerstands-Thematik ebenfalls erklärt. Du bist offensichtlich 100% lernresistent...
@Peter D. "Wenn immer nur eine LED leuchten soll, dann muß man nicht multiplexen, sondern nur umschalten, d.h. statisch ansteuern. Dann sollte der AVR den Strom schaffen." -das ist mir von vorn herein klar gewesen, sonst wäre ich nicht so hinter dem Charlieplexing her. @Veit D. Danke, gute Frage. Das Prinzip, wie das in meinem "Projekt" funktionieren könnte, ist mir absolut klar, auch klar ist mir, das dies umsetzbar ist. Nur mir ist nicht klar, wie ich die Drähte ziehen/löten/anklemmen muß. Wie ich weiter oben schon einmal beschrieben habe...... Achtung Wiederholung: "Mein Problem ist, das ich Charlieplexing richtig cool finde, aber ich einfach nicht verstehe wie ich verdrahten muß.... z.B. (das ist jetzt nur ausgedacht) von PIN 8 zu Katode von LED 3, von Anode LED 8 zu Anode LED 65, von Anode LED 65 zu Anode LED 34, von PIN 3 zu Widerstand 9 usw. oder so ähnlich - so wird ja sowas im Prinzip gemacht, nur eine spezielle Anleitung zur Verdrahtung von 5 oder 6 oder 7 oder 60 LED kann ich nicht finden - ebenso wenig finde ich auch keine Anleitung/Lehrmittel wie ich es erlernen könnte eine solche Anleitung zu erstellen oder ein Verständnis dafür zu entwickeln." Meine Wunsch- oder Traumvorstellung wäre, wenn irgendwo steht: (Das folgende ist jetzt nur fiktiv, bitte nicht auf Richtigkeit checken) Charlieplexing mit 2 RGB LED: 1. Draht vom Arduino PIN 3 bis/oder 17 zum Widerstand 2. Draht vom Widerstand zu LED 1 Anode 1 3. Draht von LED 1 Katode zu LED 2 Katode 4. Draht von LED 2 Anode 3 zu LED 1 Anode 2 usw. 5. Wenn jetzt Charlieplexing auf 3 LED erweitert werden soll, ist es besser den Draht vom Arduino zuerst zur Anode 1 von LED 1 zu verbinden, weil damit erreicht wird, das.........oder damit vermieden wird....... . . . . . 98. bei Charlieplexing von 72 RGB LED kommt das Kabel vom Arduino zuerst in die Katode von LED 59, weil............. Und wenn das so ist, dann lerne ich auch dabei und verinnerliche das, bei vernünftigen Youtube Videos kann man ja auch lernen, habe ich auch schon gemacht. Aber für Charlieplexing gibt es nichts, oder ich habe es noch nicht gefunden. Dafür habe ich ja hier mal in das Forum geschrieben. Einen richtigen Schub hat das allerdings noch nicht gebracht. @c-hater Gut, wenn der Eindruck "lernresistent" entsteht, dann ist das so. Ich denke ich habe versucht zu erklären wie ich lernen kann, und wie nicht. Wenn das akzeptiert wird, habe ich auch Verständnis dafür, wenn jemand meint, das ich eine solche gewünschte Lösung hier nicht bekommen könnte. Das ist dann eben auch so. Lösungsorientierter wäre es allerdings gewesen, wenn Sie mir die Verdrahtung von Ihrem Vorschlag mit 72 Widerständen und 10 PIN nachvollziehbar aufgezeigt hätten.
:
Bearbeitet durch User
Heinz Z. schrieb: > Meine Wunsch- oder Traumvorstellung wäre, wenn irgendwo steht: > (Das folgende ist jetzt nur fiktiv, bitte nicht auf Richtigkeit checken) > > Charlieplexing mit 2 RGB LED: > 1. Draht vom Arduino PIN 3 bis/oder 17 zum Widerstand > > 2. Draht vom Widerstand zu LED 1 Anode 1 > > 3. Draht von LED 1 Katode zu LED 2 Katode > > 4. Draht von LED 2 Anode 3 zu LED 1 Anode 2 > usw. > > 5. Wenn jetzt Charlieplexing auf 3 LED erweitert werden soll, ist es > besser den Draht vom Arduino zuerst zur Anode 1 von LED 1 zu verbinden, > weil damit erreicht wird, das.........oder damit vermieden wird....... > . > . > . > . > . > 98. bei Charlieplexing von 72 RGB LED kommt das Kabel vom Arduino zuerst > in die Katode von LED 59, weil............. Das wäre "Malen nach Zahlen". Das ist das letzte Mittel, überhaupt irgendwas gebacken zu bekommen, wenn man unfähig/unwillig ist, die grundsätzliche Funktionsweise einer Sache zu verstehen. Weil: wenn man die verstanden hat, ist es absolut kein Problem, die Erweiterung von 6 LEDs auf 12 alleine hinzubekommen und natürlich auch alle weiteren. Außerdem stellt es dann kein Problem mehr dar, auch die Sache mit den Widerständen zu begreifen und die Einschränkungen, die dadurch entstehen, dass bei RGB-LEDs sich drei LEDs eine Elektrode teilen.
Vielen Dank an alle welche mir hier freundlich geantwortet und eine Hilfestellung versucht haben. Ich möchte mein Anliegen hiermit als erledigt erklären.
Hallo, vielleicht hilft dir der Link zum Verständnis. https://www.stuffandymakes.com/blog/2013/04/29/charlieplexing-leds-with-an-avr-atmega328 Aber Achtung, in den Schaltplänen fehlen die Widerstände! Aber das Prinzip sollte klar werden. Oder googelst weiter mit "avr charlieplexing".
Moin, Doktor Copy und Mister Paste waren da... Gruss WK
Dergute W. schrieb: > Doktor Copy und Mister Paste waren da... Nun versuche mal, das so zu zeichnen, dass du immer drei LEDs mit gemeinsamer Katode zusammen gruppierst … danach sollte klar sein, was ich oben geschrieben habe: geht einfach nicht. Man kann zwar (theoretisch) 72 LEDs mit Charlieplexing ansteuern, aber eben nicht 24 RGB-LEDs mit gemeinsamer Katode.
Jörg W. schrieb: > Nun versuche mal, das so zu zeichnen, Nagut, <schnauf> ;-) Sicherheitshalber sag' ich mal dazu, dass man bei den dann ueberzaehligen LEDs (>72) auch hergehen kann und z.b. mittels Edding oder PKW-Unterbodenschutz die Leuchtkraft so limitiern, dass sie nicht mehr stoert. Jaa, ich weiss, jetzt braucht man ploetzlich 10 Leitungen <quengel> Das ist ja eine mehr, womoeglich passts jetzt nicht mehr an den uC... Gruss WK
Dergute W. schrieb: > Das ist ja eine mehr, womoeglich passts jetzt nicht mehr an den uC Ja, offenbar, er schrieb irgendwas von 9 vorhandenen Ausgängen. Wenn man 10 Pins hat, funktioniert es, klar.
Vielen Dank für den Input. Ich werde das jetzt mal verarbeiten, begonnen habe ich mit dem Wiki Artikel, und bin, schätze ich so ein, auf einem guten Weg. So eine Zeichnung muß ich immer gleich auf dem Steckbrett machen. Dauert alles nur ein wenig. Über meinen Fortschritt gebe ich dann Feedback.
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.