Hallo zusammen, Ausgangspunkt ist eine Schaltung, in der 0-8 LEDs gleichzeitig leuchten können. Knackpunkt ist, dass es halt 1 oder 2 oder ... LEDs sind. Nach dem Aufbau hat sich nun herausgestellt, dass, je nachdem wieviel LEDs gleichzeitig an sind, die Helligkeit variiert. Die Ansteuerung jeder LED erfolgt prinzipiell über 3 Transistoren ungefähr so: + | |/ --| |\ | V - LED | | |/ --| |\ | | |/ --| |\ | GND Das Ganze stellt mehr oder weniger eine Matrix dar, die "ge-"multiplext ist. Frage ist nun eigentlich: Kann man da noch irgendwo ein Regler für Strom oder Spannung (?) möglichst zentral (es sind genau 512 LEDs) einbauen, der die Helligkeitsunterschiede ausgleicht und dies auch noch relativ schnell kann, da ja Multiplexing? Wie müßte dieser Regler aussehen und was müßte der eigentlich regeln? Bitte nicht für die Fragen gleich schlagen, ich bin halt nicht der Profi-Elektroniker... Grüße & Danke Uwe
Aus der Schaltung kann ich nicht viel entnehmen, es soll doch eine Matrix sein?? Poste mal bitte einen Schaltplan, wo man die Matrix (zB mit 10LEDS) erkennt. Wie ist also Zeilen/Spaltenansteuerung etc...
MoinMoin, > Poste mal bitte einen Schaltplan, wo man die Matrix (zB mit 10LEDS) > erkennt. > ja natürlich kein Problem. Unter diesem Link ist ein Stück Schaltplan zu finden: http://bralug.de/wiki-common/images/f/f7/Cube_matrix_schaltung.png Die dort abgebildete Schaltung ist zwar für eine Matrix mit einer kleineren Dimension, sollte aber das Prinzip besser verdeutlichen. Die vorgelagerte Steuerungselektronik sieht so aus: http://bralug.de/wiki-common/images/e/e2/Cube_decoder_schaltung.jpg Davor werkelt ein Mikrocontroller, der die Daten entsprecheend aufbereitet > Wie ist also Zeilen/Spaltenansteuerung etc... > Es handelt sich um eine 3D-Matrix die grob gesprochen so gesteuert wird, dass eine der quasi 64 vorhanden Zeilen zu je 8 LEDs adressiert ist und in dieser Zeile nun halt 1, 2, 3 ... 8 LEDs gleichzeitig an sein können. Das Problemchen, was ich jetzt habe (die Ungleichmäßige Helligkeit der LEDs) ist mit Sicherheit ein Designfehler, der mir schon früher hätte auffallen können. Rein theoretisch könnte ich diesen unschönen Effekt per Programm beheben, in dem ich nicht zeilenweise (zu je 8 LEDs) multiplexe sondern jede einzelne LED einzeln ansteuere. Aber trotzdem erstmal die Frage an die Elektroniker, ob man nicht an zentraler Stelle einen Regler einbauen könnte? Grüße & Danke Uwe
Der Schaltplan knausert aber ganz schön mit den Ports :-) Ne, ich würd mal meinen, da fehlen irgendwie Vorwiderstände für die LED. Bau die mal ein, dann wird die Helligkeit auch konstant.
MoinMoin, Sven Pauli wrote: > Der Schaltplan knausert aber ganz schön mit den Ports :-) > naja, auch bei einem Mega644 ist man etwas beschränkt, was die Anzahl der freien I/O-Ports betrifft. Insbesondere, wenn noch ein wenig mehr Peripherie (Ethernet, IR, Dataflash usw.) durch den MC angesteuert werden soll... > Ne, ich würd mal meinen, da fehlen irgendwie Vorwiderstände für die LED. > Bau die mal ein, dann wird die Helligkeit auch konstant. > die Vorwiderstände fehlen ganz bewußt, weil ich den Schaltungsaufwand so gering wie möglich halten wollte (es sind letztendlich immerhin 512 LEDs...). In der Praxis funktioniert auch die Schaltung so wie sie ist, halt nur mit diesem kleinen Manko, welches ich nicht vorher bedacht hatte. An welcher Stelle müßten den theoretisch die Vorwiderstände rein? Eigentlich stelle ich mir irgendetwas vor, was die Versorgungsspannung der Matrix in Anhängigkeit des momentan fließenden Strom regelt... Grüße Uwe
Uwe Berger wrote: > naja, auch bei einem Mega644 ist man etwas beschränkt, was die Anzahl > der freien I/O-Ports betrifft. Insbesondere, wenn noch ein wenig mehr > Peripherie (Ethernet, IR, Dataflash usw.) durch den MC angesteuert > werden soll... Hättstu jetzt gesagt, du schaffst mit nem ATMega8, dann hätt ich dir das geglaubt :-) Man könnte auch Portexpander benutzen -- der Übersichtlichkeit wegen. > die Vorwiderstände fehlen ganz bewußt, Haste des auch mal den LEDs erzählt? Wenn da nur eine einzige LED leuchtet, wirds der auch ganz schnell ganz warm ums Herz. Den Transen übrigens genauso. > weil ich den Schaltungsaufwand so gering wie möglich halten wollte Das glaub ich dir net. Die Schaltung so ist Bockmist: Entweder du machst es sauber und schaltest mit PNP-Transen nach (+) und mit NPN-Transen nach (-), dann brauchts Basisvorwiderstände und gut. Mit NPN sowohl nach (+) als auch nach (-) zu schalten, ist bissi komisch. Oder du schaltest mit PNP nach (-) und mit NPN nach (+) (also quasi vertauscht), dann brauchts keine Basisvorwiderstände. Dafür gehen aber durch die Transen unterm Strich rund 1.4V flöten. > (es sind letztendlich immerhin 512 LEDs...). In der Praxis funktioniert > auch die Schaltung so wie sie ist, > halt nur mit diesem kleinen Manko, welches ich nicht vorher bedacht > hatte. Tjoa...siehste :-) > An welcher Stelle müßten den theoretisch die Vorwiderstände rein? Dein Prinzip ist ja: Du legst ein Muster über Q4 bis Q15 an die LEDs und schaltest danach dann eine einzelne Zeile zur gleichen Zeit mit Q1 bis Q3 durch, richtig? Dann musst du vor jeden LED-Strang einen Vorwiderstand packen, du brauchst also insgesamt 9 Widerstände, die du unmittelbar hinter die Kollektoren von Q4 bis Q12 packst. > Eigentlich stelle ich mir irgendetwas vor, was die Versorgungsspannung > der Matrix in Anhängigkeit des momentan fließenden Strom regelt... Ja das geht ja net, du müsstest wenn schon die Versorgungsspannung (und damit den Versorgungsstrom) in Abhängigkeit von der Zahl der leuchtenden LEDs steuern. Das müsste dann auch wieder der Prozessor übernehmen. Vorwiderstände sind aber billiger und einfacher.
Sven Pauli wrote: >> die Vorwiderstände fehlen ganz bewußt, > Haste des auch mal den LEDs erzählt? Wenn da nur eine einzige LED > leuchtet, wirds der auch ganz schnell ganz warm ums Herz. Den Transen > übrigens genauso. > nö eigentlich nicht, zumindestens habe ich bei der "Finger-Anfass-Methode" nichts auffälliges feststellen können... Die jeweiligen LEDs sind ja auch nicht ständig an, sondern Multiplex: wenn ich mich jetzt gerade nicht verrechnet habe, ist eine LED bei einer "Bildwiederholfrequenz" von z.B. 50Hz alle 0,02s für 1/3200s durchgesteuert, bei einige zentralen Transistoren erhöht sich dann die Einschaltdauer maximal um den Faktor 8. >> An welcher Stelle müßten den theoretisch die Vorwiderstände rein? > Dein Prinzip ist ja: Du legst ein Muster über Q4 bis Q15 an die LEDs und > schaltest danach dann eine einzelne Zeile zur gleichen Zeit mit Q1 bis > Q3 durch, richtig? > ja so ungefähr, wobei Q1/3 die Ebenen darstellen..., aber vom Prinzip genau so. > Dann musst du vor jeden LED-Strang einen Vorwiderstand packen, du > brauchst also insgesamt 9 Widerstände, die du unmittelbar hinter die > Kollektoren von Q4 bis Q12 packst. > naja, in dem Schaltplan der oben verlinkt ist sind es nur 9 Widerstände (3x3). In Wirklichkeit wären das 64 (weil 8x8). Die Verdrahtung ist aber so gestaltet, dass man diese noch nachträglich reinbauen könnte, es muß nur jeweils ein Draht aufgetrennt werden. Wenn nicht jemand noch eine andere geniale Idee hat, könnte man dies in Erwägung ziehen. Dumme Frage nach einem Rechenbeispiel für die Dimensionierung der Vorwiderstände mit der Randbedingung, dass immer drei Kollektor-/Emitter-Strecken durchgeschaltet sind, wenn eine LED leuchten soll? Grüße & Danke Uwe
Die Ansteuerschaltung halte ich für großen Mist. Das hinter den Multiplexern sind doch nur Latches. Die können doch nichtmal Zustände speichern. Da kannst du die auch weglassen. Ich würde dir, da Portpins fehlen, zur klassischen Methode per Schieberegister für Zeilen/SPalten raten, also 74HC595. Die Matrix selber geht, aber du muss, wie schon gersagt, VOrwiderstände einbauen, und die Basiswiderstände bei der KOLLEKTORschaltung WEGLASSEN.
Matthias Lipinsky wrote: > Die Ansteuerschaltung halte ich für großen Mist. > naja, das kann man sehen wie man will, funktionieren tut es ja... > Das hinter den > Multiplexern sind doch nur Latches. Die können doch nichtmal Zustände > speichern. Da kannst du die auch weglassen. > 74HC244 setzt man nicht nur als Latches ein, sondern auch als Leistungstreiber und genau deswegen habe ich sie eingebaut. Die Decoder-Schaltung wurde von mir entwickelt und aufgebaut, bevor ich genau wußte wie die nachfolgende Matrix aussehen sollte. Und zu diesem Zeitpunkt meinte ich, dass ich diese Sicherheit einbauen sollte. Stimmt, jetzt könnten sie raus, aber wozu das ganze Zeug nochmal neu verdrahten, wenn es auch nicht stört? > Ich würde dir, da Portpins fehlen, zur klassischen Methode per > Schieberegister für Zeilen/SPalten raten, also 74HC595. > :-), wer hat behauptet, dass Portpins fehlen? Nebenbei, die Zeile wird via Schieberegister gesteuert. Für die Ebenen und Spalten sind 8aus3-Decoder sinnvoller, weil das sowieso nur eine gleichzeitig an sein sollte. Alles andere würde erhöhten Programmaufwand und -zeit bedeuten! > Die Matrix selber geht, aber du muss, wie schon gersagt, VOrwiderstände > einbauen, > das wäage ich gerade gegenüber einer softwareseitigen Lösung, bei der man überings das eine Schieberegister ebenfalls gegen einen 3aus8-Decoder austauschen könnte (was ich aber nicht machen werde), ab. Ich werde beides mal in meiner kleinen Testversion des Würfels ausprobieren. > und die Basiswiderstände bei der KOLLEKTORschaltung WEGLASSEN. > warum eigentlich, frage ich mal als Nicht-Elektronik-Profi der bestimmt nur Halbwissen ;-) hat? Grüße Uwe
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.