Archiv verlassen und diese Seite im Standarddesign anzeigen : Multiplexing
Hallo,
ich habe mal folgende Frage:
Ich versuche gerade eine 3*12 LED-Matrix per Multiplexing anzusteuern. Das klappt soweit auch ganz gut, leider sind die LEDs durch das Multiplexen relativ dunkel. Eine Referenz-LED, welche direkt an 5V (mit Vorwiderstand) hängt, leuchtet viel heller!
Ich habe schon meinen externen 4.000 Mhz Quarz gegen einen 8.000 Mhz Quarz getauscht, was aber scheinbar überhaupt keinen Unterschied macht :(.
Liegt das Problem jetzt an meiner noch nicht ganz optimalen Programmierung ;) oder ist das beim Multiplexing normal? Wenn letzteres Zutrifft, bis zu welchem Grad kann ich eine LED beim Multiplexen überlasten?
Ich habe überlegt, die LEDs per Transistor an die 12V Stromversorgung zu hängen. Wie würde ich dafür den Vorwiderstand berechnen, um das Schrotten meiner LEDs zu vermeiden?
Gruß,
gyrosp
das ist natürlich normal, da du ja die LED nur immer kurz anschalten kannst ( wie bei PWM ) da du die restliche Zeit für die anderen Kanäle brauchst.
Höhere Spannung macht die LEDs kaputt, auch wenn sie nur immer kurz ist.
kann mann vielciht irgednwie mit kondensatoren lösen, dazu habe ich mich aber bis jetz zu wenig ( noch nie ) mit multiplexing beschäftigt.
also du kannst ganz klar die LED's mit höhrem Strom belasten als es in den Datenblättern drin steht, problem ist das die Haltbarkeit rapid abfällt!
(schlagworte hier wären FIT und Badewannenkurve)
Um diese Heller zu bekommen, musst du schauen welches Tastverhältnis du hast, musst du nachschauen, welchen Vorwiderstand du brauchst, um den Kondensator zu laden.
(T =R*C) nach 5*T hast du die zeit konstante, die du brauchst um den Kondensator aufzuladen.
damit sollten die LED's ein wenig heller erscheinen.
Aber achte darauf, das du den Kondensator über einen Widerstand auflädst (bei 8MHz würde ich dir dann Folien/Papier Kondensatoren empfehlen, elektrolyt haben zu hohe verluste, und können dann langsam in den induktiven teil übergehen - was nicht erwünscht ist).
PS: 8MHz gemultiplext ? sofern ich weiß haben wir die LED's mit 30 kHz gemultiplext 8 MHz finde ich, ist schon ein wenig zu extrem...
Hallo!
Das mit dem Kondensator beim Multiplexing von LED habe ich bisher noch nicht gehört, wie soll es funktionieren?
Um die gleiche Heligkeit wie ohne Multiplexing zu bekommen, erhöht man den Strom während des Impulses so viel mal, wie viel mal kürzer leuchtet die LED (z.B. bei 4 LED 4-fach).
Dabei darf aber der max. peak Strom, der im Datenblatt der LED angegeben ist, nicht überschreiten, weil die LED dann kaputt geht. Somit ist die Anzahl der LED, die gemultiplext werden können, begrenzt.
Die Frequenz sollte wegen der Steilheit der Schaltflanken möglichst niedrig sein (z.B. 100 Hz) und nur so hoch, dass man das Flimmern der LED nicht sieht.
MfG
Das mit den Kondensatoren beim Multiplexen ist mir auch neu.
Ich kann mir auch nicht vorstellen, wie das funktionieren soll.
Beim Multiplexen sind doch die LED in einer Matrix verschaltet.
Wenn da irgendwelche Kondensatoren verbaut sind, können doch da Ladungen über die komplette Matrix verschleppt werden.
Die Folge wären "Geisterzahlen" auf dem Display.
Hat das mit den Kondensatoren tatsächlich schon jemand ausprobiert, oder funktioniert das nur theoretisch ?
Ein probates Mittel um die LED's heller zu kriegen ist, einfach hellere Anzeigen zu nehmen.
Das mit der Überbestromung seh ich nicht so kritisch, wenn man innerhalb der Spezifikationen des Datenblattes bleibt. Darüber darf man natürlich nicht gehen.
Ein Problem ist natürlich auch, das man sich die LED's sehr schnell kaputt machen kann, wenn der steuernde Microcontroller hängen bleibt und somit das gerade aktive Segment dauerhaft mit dem vollen Strom beaufschlagt wird.
Der Vorteil von einem gepulsten Betrieb mit erhöhtem Strom ist auch, das man im Mittel für die gleiche Helligkeit weniger Strom verbraucht, als wenn die LED ständig angeschaltet ist - Das wurde vor zig Jahren auf jeden Fall bei "ELEKTOR" so geschrieben.
Hi also ich habe einfach mal einen Stromlaufplan dazu gezeichnet, dabei sind mir 3 Dinge aufgefallen, wenn man das mit Kondensatoren machen würde:
a.) Der Overhead ist beträchtlich (sehr viele Widerstände, dazu die Kondensatoren + Dioden).
b.) Die Kondensatoren müssten sehr schnell aufgeladen werden, dh. diese müssten beinahe Impulsfest sein T=R*C muss sehr klein sein - ob sich der Aufwand lohnt - ich glaube nicht aber seht selbst.
c.) Die Schaltung ist sehr frequenz abhängig - die helligkeit ist abhängig von der Frequenz (bei festen R und C).
Also korrigiere ich mich einfach mal - kondensatoren wären hier nicht angebracht, da hier die Vorteile vom Mulitplexen alle zurnichte gemacht werden durch den Overhead an Bauteilen. Der Stromverbrauch wäre wahrscheinlich sogar größer als normal da hier Verlustleistungen an den Auflade Widerständen und an den LED-Vorwiderständen abfallen würden.
Also bleibt dann doch nur noch das übersteuern.
Als Anhang lege ich einfach mal die Schaltung bei, wie sie bei Kondensaotren realisiert werden müßte - wie man dort sieht, lohnt es sich nicht im geringsten diesen Aufbau zu machen.
mfG
Pyro-Mike
09.11.2008, 13:27
Guck mal im Datenblatt, da müsste immer ne "Peak Forward Current" drin stehen, also wie viel Strom die LEDs für ne bestimmte Zeit aushalten, ich hab mal zufällig bei Reichelt in ein Datenblatt geguckt:
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FS C39-11%2523KIN.pdf
Da steht z.B. max. 150mA bei 0,1ms Pulsbreite.
Du kannst die LEDs also schon mit z.B. 50mA pulsen, ohne die Lebensdauer stark zu verkürzen!
Besserwessi
09.11.2008, 14:09
Die Schaltung mit den Kondensatoren ist relativ aufwendig. Den einzigen Vorteil den ich sehe ist eine Sicherheit gegen Programmfehler die ein LED dauernd an lassen würden. Die meisten LEDs kann man kurzzeitig bis zum etwa 10 fachen des Dauerstroms belasten. Bis etwa 10 LEDs an einer Leitung hat man also wenig Probleme mit der Helligkeit. OFt ist eher die Belastung der Ports eine Grenze, mehr als 20-30 mA sollte man da ohne etra Treiber nicht ziehen. Für die Seite die Mehr als eine LED schaltet braicht man sowieso fast immer Treiber.
Wenn das einfache LEDs sind, gibt es auch LEDs mit besserem Wirkungsgrad.
Hallo!
Für ein Multiplexing mit seinen Vor- und Nachteilen entscheidet man sich meistens wegen geringeren Stromverbrauch.
Um die µC Pins zur Steuerung der LED bis auf drei zu reduzieren, würde ich Schieberegister mit Zwischenspeicher empfehlen (z.B. 74XXX595). Wenn man "low current" LED anwendet, kann man auch Strom sparen und den gleichen Stromverbrauch wie beim Multiplexing erreichen.
@ BjoernC
Vielen Dank für den Schaltplan, der das Multiplexing mit Kondensatoren völlig erklärt.
MfG
kein problem nur wie gesagt - das war meine vorstellung gewesen wie man das machen kann nur ich habe ehrlich gesagt das gefühl, das ich so mehr strom verbrate als wenn ich die LED's direkt ansteure ^^
Aber da ich nächstes WE wieder zu meinen Eltern fahre, werde ich es da einfach mal ausprobieren - wenn gewünscht kann ich die ergebnisse hier reinstellen.
Aber nagelt mich nicht fest wenns dann doch noch 2 Wochen länger dauert - habe zZt. noch 2 Prüfungen - die haben vorrang :)
Besserwessi
09.11.2008, 18:25
Mit den Kondensatoren und extra dioden wird man auchnicht mehr strom verbauchen. Der ganze Strom fließt durch die LEDs und trägt somit zu Licht bei. Die Kondensatoren wirkennur als puffer. Allerdings wird die Spannung für blaue LEDs eventuell knapp wegen der extra 0,6 V an der Diode.
Danke erstmal für die Antworten ;).
Also ich verwende zu Testzwecken normale grüne LEDs (2,1 V bei 20 mA). Wenn ich das Datenblatt richtig lese, vertragen die max. 5 V und 160mA.
Kann ich also die 5V vom Spannungsregler per Transistor direkt an die LED anschließen oder muss ich trotzdem einen Vorwiderstand einbauen? Wieviel mA zieht die LED dann?
Gruß,
gyrosp
diese 160 mA sofern es eine standard LED ist, ist absolut maximum das bedeutet das ist der maximale Strom die, die LED verträgt => aber nicht im normalem Dauer Betrieb, da muss noch eine Zeitangabe mit verknüpft sein.
Wichtig ist hier der Faktor Zeit!
du kannst als Bsp: einen 1/2 Watt, 10 Ohm Kohleschicht-Widerstand mit bis 19KW (Impulsbreite 1us) belasten. Dieser Wert ist entstanden, als ich verschiedene Widerstände theoretisch durchgerechnet habe (in abhängigkeit ihres spez. Widerstandes).
das beispiel soll kurz verdeutlichen wie wichtig der Zeitfaktor ist.
Ich vermute, dass die o.g. 160 mA für Dauerstom gelten und bei Impulsen ("Peak Forward Current") könnte der Wert, je nach Impulsdauer, brößer sein.
MfG
Ich habe das Netzteil jetzt mal auf 12 V eingestellt und eine Zeile der LED-Matrix per Transistor an die 12 V gehängt. Ich habe einen Basisvorwiderstand von 1.0KOhm und einen LED-Vorwiderstand von 62 Ohm (hab gerade nix kleineres ;)). Im direkten Vergleich leuchtet die Zeile an den 12 V etwas heller aber das ist kaum merklich, ich hab mir etwas mehr davon versprochen :(.
Gibts eine Möglichkeit mir den LED-Takt zu berechnen? Ich programmiere in C und ich hab keine Ahnung wieviel Takte die einzelnen Befehle brauchen.
Wäre es vielleicht doch sinnvoller das ganze über Schieberegister zu machen?
Um deine letzte Frage beantworten zu können, muss man das "ganze" genau kennen. O:)
MfG
Um deine letzte Frage beantworten zu können, muss man das "ganze" genau kennen. O:)
MfG
:)... Also das ganze soll eine DCF77-LED-Uhr werden. Die einzelnen Ziffern sollen als Summe von LED-Punkten angezeigt werden. Ich habe eine 3x12 LED-Matrix, muss also 36 LEDs ansteuern (4 Segmente a 9 LEDs). Zudem sollen die LEDs ihre Intensität dem Umgebungslicht anpassen, was im Moment völlig überflüssig ist, da die sowieso viel zu dunkel sind ;). Unter anderem kommen diese LEDs zum Einsatz:
http://www.reichelt.de/?;ACTION=3;LA=4;GROUP=A5332;GROUPID=3019;ARTICLE=3 1605;START=0;SORT=artnr;OFFSET=16;SID=27gHtImKwQAR sAAA@tekYb24624e9ca708abc39c72cec59e5c7ae
Ich kann mir leider deine Schaltung ohne Schaltplan nicht vorstellen. :(
Normaleweise wird jede Ziffer mit 7 LEDs und ein Doppelpunkt mit 2 LEDs dargestellt. Man könnde dann fertige 7-Segment Dekoder ICs nehmen und für jede Ziffer nur 4 Bits in Schieberegister schicken.
Mit der Software kann ich dir leider nicht helfen, weil ich selber PIC und ASM benutze.
MfG
... Also das ganze soll eine DCF77-LED-Uhr werden
Das ist aber jetzt purer Zufall.
Ich bastel auch gerade an einer DCF77 Uhr mit Stoppuhr funktion rum.
Allerdings möchte ich die "großen" Kingbright 7 Segmentanzeigen SA 40-19 RT ( Reichelt ) verwenden.
Die möchte ich auch im Multiplex betreiben, also 7+1 Segmente zu 6 Stellen.
Die Darstellung der einzelnen Zahlen hab ich über eine Look Up Tabelle geplant.
Wo ich noch gar keinen Plan habe ist, wie ich die Uhr in regelmässigen Abständen mit der Funkzeit abgleiche.
In der übrigen Zeit möchte ich die Uhr mit dem Controllerquarz laufen lassen.
Die möchte ich auch im Multiplex betreiben, also 7+1 Segmente zu 6 Stellen.
Wie hast Du denn das Helligkeitsproblem gelöst? Du hättest ja sogar 48 LEDs anzusteuern.
Wo ich noch gar keinen Plan habe ist, wie ich die Uhr in regelmässigen Abständen mit der Funkzeit abgleiche.
In der übrigen Zeit möchte ich die Uhr mit dem Controllerquarz laufen lassen.
Ich werde wahrscheinlich jede Stunde die Uhrzeit vom Funkmodul ermitteln lassen und die Zeit dann über den Controller-Quarz laufen lassen.
Wo wir gerade beim Quarz sind ;):
Ich habe jetzt mal mit einem 4 Mhz und einem 8 Mhz Quarz gespielt, in der Erwartung, das bei der Verwendung einens 8 Mhz Quarz die LEDs heller leuchten, was aber nicht passiert. Hab ich hier einen Denkfehler oder ist meine Erwartung, dass die LEDs heller werden sollten richtig?
Hallo!
Die Frequenzänderung der CPU hat keinen Einfluß auf das Tastverhältnis von ihr generierten Signale, ändert nur seine Frequenz. Somit ändert sich zwar die Frequenz des Multiplexings, die LEDs bleiben aber gleich hell, weil sich das Verhältnis der Zeiten An/Aus nicht geändert hat.
MfG
MeckPommER
10.11.2008, 14:19
hi gyrosp,
mal eine ganz dumme Frage von mir zu deiner 3x12 Matrix: läßt du 3 mal 12 LEDs auf einmal leuchten, oder 12 mal 3 LEDs gleichzeitig?
Ich frage deshalb, weil es bei nur 3 Reihen in der Matrix bei normaler Bestromung eigentlich keine Probleme mit der Helligkeit geben sollte.
Teste auch einfach mal aus, einen 1MHz Quarz zu nehmen, vielleicht läuft dein PWM zu schnell ... oder bastelst einfach mal eine Pause in deine Anzeigenschleife.
Wie oben schon beschrieben sollte man PWM nur so schnell wie nötig betreiben, sodass das Flimmern der LEDs nicht mehr wahrgenommen werden kann.
hi gyrosp,
mal eine ganz dumme Frage von mir zu deiner 3x12 Matrix: läßt du 3 mal 12 LEDs auf einmal leuchten, oder 12 mal 3 LEDs gleichzeitig?
Es sind 3 mal 12 LEDs die auf einmal leuchten. Bei der Testschaltung sind es sogar nur 3x3, wobei die Software schon für die 3x12 Matrix ausgelegt ist.
Teste auch einfach mal aus, einen 1MHz Quarz zu nehmen, vielleicht läuft dein PWM zu schnell ... oder bastelst einfach mal eine Pause in deine Anzeigenschleife.
Wie oben schon beschrieben sollte man PWM nur so schnell wie nötig betreiben, sodass das Flimmern der LEDs nicht mehr wahrgenommen werden kann.
Ich habe gerade keinen 1 MHz Quarz aber ich werde einfach mal eine Pause einbauen und schauen was passiert ;). Danke für den Tip.
anatomio
10.11.2008, 14:38
Hallo Zusammen,
nach einer langen suche nach einer H-Bücke für ansteuerung z.B von
heiz/kühlelementen hab ich leider nichts viel darüber gefunden.
h-brücke schaltungen treten sehr häufig und leider nur bei motoren auf.
kann mir vielleicht einer von den netten experten dabei helfen oder was
dazu sagen wo man infos dazu finden kann.
vielen dank.
Hallo Zusammen,
nach einer langen suche nach einer H-Bücke für ansteuerung z.B von
heiz/kühlelementen hab ich leider nichts viel darüber gefunden.
h-brücke schaltungen treten sehr häufig und leider nur bei motoren auf.
kann mir vielleicht einer von den netten experten dabei helfen oder was
dazu sagen wo man infos dazu finden kann.
vielen dank.
Könntest Du für das Thema bitte einen neuen Thread aufmachen ;).
anatomio
10.11.2008, 14:47
pardon war falsch eingefügt....;-)
Wie hast Du denn das Helligkeitsproblem gelöst? Du hättest ja sogar 48 LEDs anzusteuern.
Eigentlich noch gar nicht.
Ich bin gerade beim Hardware zusammen löten.
Die Siebensegmentmatrix ist bereits fertig.
Beim Bau der Elektronik bin ich gerade.
Eigentlich wollte ich Heute die ersten Testroutinen proggen, aber leider ist mir ein Ladegerät kaputt gegangen, das ich unbedingt brauche - das hat Vorrang.
Besserwessi
10.11.2008, 17:57
Die gezeigten LEDs sind eigentlich schon etwas besser, die sollten selbst bei etwa 2 mA schon genügent hell sein. Wenns nicht gerade in der Sonne ist sollte die Helligkeit ausreichen, wenn die Softwarenicht irgend welche Probelem macht.
Das sollte sogar so gehen, dass 12 Ports direkt vom Controller kommen und nur die Seite mit den 3 Leitungen über Transistoren geschaltet wird. Die LEDs kriegen dann gut 20 mA als Strom und können auch einen Programmfehler noch gut überleben. Nur mit der Auswahl von 68 Ohm oder 1 K als Vorwiderstand könnte das knapp werden.
Bei mir gehen z.B. auch noch 7 stellen rote 7-Segment Anzeigen auf diese einfache Weise. Nicht besonders hell, aber ausreichend. Bei 4 Stellen eigentlich kein Problem, auch ohne Filter.
Wie hast Du denn das Helligkeitsproblem gelöst? Du hättest ja sogar 48 LEDs anzusteuern.
Eigentlich noch gar nicht.
Ich bin gerade beim Hardware zusammen löten.
Ich test und progge erst bevor ich löte, sonst ärgert man sich später um so mehr ;).
Das sollte sogar so gehen, dass 12 Ports direkt vom Controller kommen und nur die Seite mit den 3 Leitungen über Transistoren geschaltet wird.
Genau so mache ich es auch. Aber wieso könnte es mit den 68 Ohm und 1kOhm Widerständen knapp werden?
Die gezeigten LEDs sind eigentlich schon etwas besser, die sollten selbst bei etwa 2 mA schon genügent hell sein.
Die LEDs werden hinter einer Milchglasscheibe oder transparentem Papier versteckt werden, daher müssen sie ziemlich hell leuchten. Bei 20mA funktiert das ganz gut.
Ich test und progge erst bevor ich löte, sonst ärgert man sich später um so mehr
So mach ich das schon auch.
Ich hab die Schaltiung auf einer Euro Prozessor Platine aufgebaut und kann somit alles noch ändern.
Wenns stabil genug läuft wird es auch bei der Platine bleiben, da ich vermutlich nur ein Einzelstück bauen werde.
Also ich habe jetzt mal etwas an der PMW Geschwindigkeit rumgespielt aber an der Helligkeit ändert sich nix, es fängt höchstens an zu flackern :(.
Könnte mir vielleicht jemand beim Thema Transistoren helfen? Ich würde gerne versuchen den Strom für die LEDs zu verstärken aber ich hab da im Moment noch nicht den Durchblick. Welche Spannung muss ich an der Basis anlegen und wie muss ich die Widerstände wählen, damit meine LED hell leuchtet aber nicht in die ewigen Siliziumgründe verschwindet ;)? Wie berechnet man sowas generell?
Wäre eine Verwendung von Schieberegistern vielleicht doch sinnvoller?
Um den Vorwiderstand, der den durch die LED fliessenden Strom begrenzt zu berechnen, muss man das Tastverhältnis genau kennen, wie lange durch die LED der Strom fliesst und wie lange nicht. O:)
MfG
Um den Vorwiderstand, der den durch die LED fliessenden Strom begrenzt zu berechnen, muss man das Tastverhältnis genau kennen, wie lange durch die LED der Strom fliesst und wie lange nicht. O:)
MfG
Wie berechne ich das denn genau?
Ich hab nen 4 Mhz Quarz, 36 LEDs und nutze den 8 bit Timer.
Hätte ich dann eine Tastfrequenz von ca. 436 Hz (4.000.000 / 255 / 36)?
Ist das richtig, bzw. was würde mir das sagen :)?
MeckPommER
11.11.2008, 09:31
Nicht Tastverhältnis und Taktfrequenz durcheinanderwurschteln :-)
Als Tastverhältnis bezeichnet man hier den Zeitanteil, zu dem eine LED brennt bzw. maximal brennen kann. Hast du 36 LEDs und steuerst diese in Gruppen zu 12 an, so kommst du auf ein Tastverhältnis von 1 zu 3, denn eine LED kann maximal ein Drittel der Zeit leuchten.
In Datenblättern zu LEDs wird häufig ein Maximalstrom angegeben, der allerdings zu einem Tastverhältnis von 1:10 passt. Zudem wird auch desöfteren angegeben, wie lang die Off-Periode mindestens dauern muss. Wenn du also ein Tastverhältnis von 1:3 hast, dann dürfen die LEDs nicht so stark bestromt werden.
Was mir noch nicht so einleuchtet ist, warum deine LEDs nicht ausreichend hell werden. Entweder sind deine LEDs von Popo oder in der Soft- oder Hardware steckt noch ein Würmchen.
Wenn du das Ganze noch in der Testphase hast: teste das mal mit ner Ultrabright-LED aus und nicht mit einer trüben Standard-Funzel-LED :)
Es gibt viele LEDs die mit 20mA sehr hell sind, aber auch mit 2mA noch mehr als gut sichtbar sind. Probieren ...
Gruß MeckPommER
Nicht Tastverhältnis und Taktfrequenz durcheinanderwurschteln :-)
Als Tastverhältnis bezeichnet man hier den Zeitanteil, zu dem eine LED brennt bzw. maximal brennen kann. Hast du 36 LEDs und steuerst diese in Gruppen zu 12 an, so kommst du auf ein Tastverhältnis von 1 zu 3, denn eine LED kann maximal ein Drittel der Zeit leuchten.
In Datenblättern zu LEDs wird häufig ein Maximalstrom angegeben, der allerdings zu einem Tastverhältnis von 1:10 passt. Zudem wird auch desöfteren angegeben, wie lang die Off-Periode mindestens dauern muss. Wenn du also ein Tastverhältnis von 1:3 hast, dann dürfen die LEDs nicht so stark bestromt werden.
Was mir noch nicht so einleuchtet ist, warum deine LEDs nicht ausreichend hell werden. Entweder sind deine LEDs von Popo oder in der Soft- oder Hardware steckt noch ein Würmchen.
Wenn du das Ganze noch in der Testphase hast: teste das mal mit ner Ultrabright-LED aus und nicht mit einer trüben Standard-Funzel-LED :)
Es gibt viele LEDs die mit 20mA sehr hell sind, aber auch mit 2mA noch mehr als gut sichtbar sind. Probieren ...
Gruß MeckPommER
Mhh, da scheint dann wohl noch irgendwo der Wurm drin zu stecken, ich verwende ultrahelle LEDs (http://www.reichelt.de/?;ACTION=3;LA=2;GROUPID=3019;ARTICLE=31605;SID=32w 6W@E6wQASAAACIPbd8603d25f11ac9f319a1d491d3e307fe4a ) ;).
Du sagst ich hab ein Tastverhältnis von 1:3 wenn ich die in Gruppe von 12 ansteuere. Ich steuere aber jede LED einzeln an, müsste also ein Tastverhältnis von 1:36 haben.
Strahleman
11.11.2008, 09:46
Wenn du das Ganze noch in der Testphase hast: teste das mal mit ner Ultrabright-LED aus und nicht mit einer trüben Standard-Funzel-LED :)
Ich teste im Moment auch ein wenig mit LEDs das Multiplexing aus. Für meine Versuche verwende ich 3mm Low Cost LEDs, die ich bei Reichelt bestellt habe. Selbst bei 10 LEDs hatte ich keinen bemerkenswerten Helligkeitsverlust, selbst wenn alle LEDs gleichzeitig geleuchtet haben - egal ob direkt an den Port und gegen GND oder verknüpft mit zwei Ports und einem ULN2003.
Wenn du das Ganze noch in der Testphase hast: teste das mal mit ner Ultrabright-LED aus und nicht mit einer trüben Standard-Funzel-LED :)
Ich teste im Moment auch ein wenig mit LEDs das Multiplexing aus. Für meine Versuche verwende ich 3mm Low Cost LEDs, die ich bei Reichelt bestellt habe. Selbst bei 10 LEDs hatte ich keinen bemerkenswerten Helligkeitsverlust, selbst wenn alle LEDs gleichzeitig geleuchtet haben - egal ob direkt an den Port und gegen GND oder verknüpft mit zwei Ports und einem ULN2003.
Mhh, ich habe zwar 36 LEDs aber langsam beschleicht mich das Gefühl, das ich vielleicht einfach zu doof bin ;).
Strahleman
11.11.2008, 09:57
Du kannst ja mal deinen Schaltplan posten. Es gibt ja die verschiedensten Möglichkeiten, LEDs zu "bündeln" um möglichst wenig Ports/Pins eines AVR zu belegen.
Ich fahr bei meinem Tests sehr gut mit der Methode, die ich aus diesem Thread haben: https://www.roboternetz.de/phpBB2/viewtopic.php?t=43559 (musst ein bisschen runter scrollen ;))
MeckPommER
11.11.2008, 10:02
Du sagst ich hab ein Tastverhältnis von 1:3 wenn ich die in Gruppe von 12 ansteuere. Ich steuere aber jede LED einzeln an, müsste also ein Tastverhältnis von 1:36 haben.
Huppsala ... wieso steuerst du jede LED einzeln an? Wenn du sie als Matrix aufgebaut hast, dann steuerst du mit einem mal die LEDs 1 - 12 an, dann 13 bis 24 und dann 25 - 36.
Wenn du alle einzeln ansteuerst ist klar, warum die nicht hell leuchten wollen ;-)
Huppsala ... wieso steuerst du jede LED einzeln an? Wenn du sie als Matrix aufgebaut hast, dann steuerst du mit einem mal die LEDs 1 - 12 an, dann 13 bis 24 und dann 25 - 36.
Wenn du alle einzeln ansteuerst ist klar, warum die nicht hell leuchten wollen ;-)
Klingt logisch :). Ich habe bis jetzt den Zustand jeder LED überprüft und die einzeln geschaltet. Ich werde heute Abend mal meinen Quellcode etwas optimieren und es dann nochmal testen... ist halt meine erste LED-Matrix :oops: .
Du kannst ja mal deinen Schaltplan posten. Es gibt ja die verschiedensten Möglichkeiten, LEDs zu "bündeln" um möglichst wenig Ports/Pins eines AVR zu belegen.
Wenns heute Abend nicht klappt, dann poste ich mal etwas Quellcode und den Schaltplan ;).
Huppsala ... wieso steuerst du jede LED einzeln an? Wenn du sie als Matrix aufgebaut hast, dann steuerst du mit einem mal die LEDs 1 - 12 an, dann 13 bis 24 und dann 25 - 36.
Jetzt hab ich doch nochmal nachgedacht ;)... Wenn ich jeweils 12 LEDs gleichzeitig ansteuer, dann teilen sich diese LEDs doch auch meine 5 V Versorungsspannung. Je nachdem wieviele LEDs also an sind, würden die unterschiedlich hell leuchten oder nicht? Entschuldigt meine doofen Fragen aber ich habe glaub ich gerade wirklich nen Brett vor dem Kopf . :(
Hallo gyrosp!
Um dein Brett zu entfernen habe ich deine 12 LEDs mit Vorwiderständen und einem sie steuerndem Transistor skiziert, so wie ich es mir vorstelle (siehe Code). Wenn alle LEDs und ale Vorwiderstände gleich sind, dann werden die LEDs sicher gleich hell leuchten.
Hättest du gleich am Anfang ein Schaltplan (bzw. eine Skizze) gepostet oder um eine Skizze gebeten, würde dein Problem wahrscheinlich längst gelöst.
Du kannst dir das einfaches Zeichnungsprogramm (dessen Name ich diesmal nicht entfernt habe) kostenlos laden und wie ich, wenn nötig benutzen. :)
MfG
VCC
+
|
+---+---+---+---+---+---+---+-+-+---+---+---+---+---+---+---+
| | | | | | | | | | | | | | | |
.-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
Rv| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
'-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-'
| | | | | | | | | | | | | | | |
LED V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->V ->
- - - - - - - - - - - - - - - -
| | | | | | | | | | | | | | | |
+---+---+---+---+---+---+---+-+-+---+---+---+---+---+---+---+
|
___ |/
-|___|--| T
Rb |>
|
===
GND
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
MeckPommER
11.11.2008, 16:14
Nö, das ist sollte kein Problem sein, wenn deine Spannungsversorgung nicht grade aus uralten Knopfzellen besteht :) Du kannst 10 Millionen LEDs mit Vorwiderstand parallel an eine 5V Leitung hängen ... Deine Kraftquelle muss nur den nötigen Strom liefern können. Wenn deine LEDs 20mA ziehen, macht das * 12 = 220mA. Dazu noch ein wenig µC, hier und da ...
Das sollte jedes Netzteil schaffen.
Du kannst sie nur nicht direkt komplett an den µC anschließen da der µC nicht so viel Leistung bringen kann/darf, aber dafür hast du ja Transistorstufen.
Ein Schaltplan wäre hilfreich.
Also, ich würde jeweils 12 Anoden der LED's über einen Transistor auf +5V schalten.
In die Kathoden der LED's jede Gruppe weden miteinander verbunden und dann über einen gemeinsamen Widerstand an die Matrixsteuereinheit, die nach GND schaltet angeschlossen.
Also LED1, LED13, LED25 ( 2,14,26; 3,15,27; usw. ) wird an den Kathoden miteinander verbunden und dann über einen Widerstand an den Schalter gegen GND geschaltet.
Die Ansteuerung findet dann so statt.
Der Anoden Transistor 1 wird eingeschaltet, gleichzeitig werden die Kathoden auf GND geschaltet, die an dieser Stelle leuchten sollen.
Danach macht man das Gleiche für die 2te Stelle ( Transistor Stelle 1 aus, Transistor Stelle 2 an + zugehörige Kathoden ein ).
Und dann für die dritte.
Dann ist der Zyklus durch und es wird wieder von vorne angefangen.
Da dabei ja immer nur eine Anodengruppe eingeschaltet ist und jede aktive Kathode ihren eigenen Widerstand hat sollte es eigentlich zu keinen Helligkeitsunterschieden kommen.
Das Spielchen nennt man dann "Gemeinsame Anode", weil ein Digit immer eine gemeinsame Anode hat.
Natürlich kann man es auch genau umgedreht machen, also sprich die Anoden mit Widerständen versehen und die Digits an der Kathode schalten = gemeinsame Kathode.
Für die Anodentransistoren sollten sich viele PNP Kleinleistungstransistoren eignen. Ich würde da aber lieber einen kleinen P-Kanal Fet oder einen P-Darlintontransistor einsetzen.
Als Kathodenschalter kann man natürlich auch die Ports des Controllers verwenden, wenn der Strom pro Port nicht über 20mA liegt und der Gesamtstrom des Controllers unter 200mA bleibt.
Probleme sind dann aber trotzdem bei den PWM's und den A/D Wandlern zu erwarten, wenn man die benutzt.
Darüm würd ich ein paar Cent investieren und einen Treiberbaustein wie den ULN2003 ( 2 Stück )bzw. ULN2803 einsetzen.
Die Treiberbausteine hätten auch noch den Vorteil, das die Anodenspannung auch über 5V liegen darf, wenn man die Ansteuerung der Transistoren in den Anoden entsprechend ändert.
Ich hab das so gemacht, weil meine Displays 7,6V Schwellenspannung haben und ich somit das Display mit 12V betreiben will.
Ich habe es schon vor zig Jahren, so wie im Code skiziert, gemacht. Alle Steuerimpulse für Transistoren sind digital (+5V) unabhängig von der Versorgungsspannung der LEDs (Vcc).
MfG
VCC>5V
+
___ |
+-|___|-+
| |
___ | |<
+-|___|-+-----| Tzp1
| |\
___ |/ |
Ziffer >-|___|-| Tzn1 |
|> |
| |
=== |
GND |
+---+---+-------+---+---+-------+---+---+- - - -+---+---+
| | | | | | | | | | | |
.-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-. .-.
| | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | |
'-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-' '-'
| | | | | | | | | | | |
V ->V ->V -> V ->V ->V V ->V ->V-> V ->V ->V ->
- - - - - - - - - - - -
| | | | | | | | | | | |
+---+---+ +---+---+ +---+---+ +---+---+
| | | |
___ |/ ___ |/ ___ |/ ___ |/
>-|___|-| Ts1a >-|___|-| Ts1b >-|___|-| Ts1c >-|___|-| Ts1h
|> |> |> |>
Segmente | | | |
=== === === ===
GND GND GND GND
Besserwessi
11.11.2008, 22:02
Man bracht nicht zu jeder LED einen eigenen Vorwiderstand, einer je Gruppe, aus der höchstens eine gleichzeitig leuchtet reicht.
Bei blauen LEDs hat man nicht viel Spannung in Reserve. Ein ULN2003 als Treiber scheidet da schon aus, denn da gehen 0,6-1 V verloren. Wenn man mit 20 mA Strom klarkommt könnte man die eine Seite noch direkt vom Controller (AVR) teiben, sonst halt die etwas Komplizierteren extra Treiber, wobei man in der Schaltung obern den Transistor Tzn1 und einen Widerstand sparen kann. Das invertieren kann man auch gut in Software machen.
Der Tzn1 passt auch die größere VCC (z.B. +12V) an die +5V von µC. Wenn Vcc=+5V ist er selbstverständlich nicht nötig. :)
MfG
Guten Morgen,
ich hatte gestern wohl nicht nur ein Brett, sondern eine ganze Blockhütte vor dem Kopf ;). Ich steuere die Matrix jetzt Zeilenweise an und hab das PMW verlangsamt und siehe da, es leuchtet um einiges heller, sogar fast so hell, wie meine Referenz-LED ;). Ich werde jetzt noch etwas mit den Vorwiderständen spielen, dann sollte das passen.
Allerdings hab ich mir noch die letzten paar Posts durchgelesen und stelle meine Schaltung jetzt doch etwas in Frage ;). Die sieht in etwa folgendermaßen aus:
zu Pin 3 zu Pin 4 zu Pin 5
| | |
| | |
VCC 5V | | |
+ | | |
zu Pin0 | | | |
___ |/ | | |
---|___|-| | | |
|> | | |
| ___ LED| LED| LED|
'-|___|----->|----------->|----------->|-|
| | |
| | |
VCC 5V | | |
+ | | |
zu Pin 1 | | | |
___ |/ | | |
---|___|-| | | |
|> | | |
| ___ LED| LED| LED|
'-|___|----->|----------->|----------->|-|
| | |
VCC 5V | | |
+ | | |
zu Pin 2 | | | |
___ |/ | | |
---|___|-| | | |
|> | | |
|. ___ LED| LED| LED|
-|___|----->|----------->|----------->|-|
Um z.B. Reihe 1 einzuschalten, definiere ich Pin 0, 3, 4 und 5 als Ausgang und lege an Pin 0 5V und an Pin 3,4 und 5 0 Volt an, schalte die LEDs also über den Mikrokontroller auf GND. Spricht da irgendwas gegen, das so zu machen?
Das einzige was mir an meiner Schaltung noch aufgefallen ist, ist das es einen minimalen Helligkeitsunterschied gibt, sobald mehrere LED ins einer Reihe gleichzeitig aktiviert werden. Ist das normal?
Ich meine in deiner Schaltung ist ein grundlegender Fehler.
Du hast die LED alle in Reihe geschaltet, also wenn ein Transistor und der letzte Port rechts aktiviert werden leuchten alle 3 LED ( theoretisch, wenn die Schwellenspannung ausreichen würde ! ) .
Ich vermute, Du hast die LED's richtig verschaltet und nur einen falschen Schaltplan eingestellt ?!
Ausserdem würde ich für die Transistoren PNP Typen verwenden.
In deiner jetzigen Konzeption mit NPN Transistoren verlierst Du die BE Spannung am Transistor + die Verluste von deinem Microcontroller mit 0,1...0,3V. Insgesamt also ca. 0,8V.
Das könnte eventuell auch das minimale dunkler werden der LED teilweise erklären.
Bei der Benutzung von PNP Transistoren in der + Leitung geht aber nur die CE Spannung in höhe von ca. 0,2V verloren.
Die PNP Transistoren müssen natürlich mit GND über einen Widerstand vom Microcontroller angesteuert werden. Aber das dürfte ja programmtechnisch nicht wirklich ein Problem sein.
Bei einem P-Kanal FET dürfte der Spannungsverlust sogar noch weniger sein.
Ich vermute, Du hast die LED's richtig verschaltet und nur einen falschen Schaltplan eingestellt ?!
Stimmt, der Schaltplan ist falsch, die Schaltung aber richtig. Die einzelnen Spalten werden jeweils zusammen nach GND geführt.
Ausserdem würde ich für die Transistoren PNP Typen verwenden.
In deiner jetzigen Konzeption mit NPN Transistoren verlierst Du die BE Spannung am Transistor + die Verluste von deinem Microcontroller mit 0,1...0,3V. Insgesamt also ca. 0,8V.
Das ist ein guter Einwand. Allerdings verstehe ich nicht, wieso ich Verluste vom Mikrokontroller einrechnen muss. Der legt durch nur die Durchlassspannung an die Basis vom Transistor.
Allerdings verstehe ich nicht, wieso ich Verluste vom Mikrokontroller einrechnen muss. Der legt durch nur die Durchlassspannung an die Basis vom Transistor.
Der Controller wird es nicht schaffen die vollen 5V an die Basis des Transistors zu schalten.
Er wird 4,8 bis 4,9V schaffen.
Wenn an der Basis aber nur 4,8V liegen kann am Emitter maximal 4,2V liegen - So meine überschlägige Berechnung.
Allerdings verstehe ich nicht, wieso ich Verluste vom Mikrokontroller einrechnen muss. Der legt durch nur die Durchlassspannung an die Basis vom Transistor.
Der Controller wird es nicht schaffen die vollen 5V an die Basis des Transistors zu schalten.
Er wird 4,8 bis 4,9V schaffen.
Wenn an der Basis aber nur 4,8V liegen kann am Emitter maximal 4,2V liegen - So meine überschlägige Berechnung.
Ich habe sowieso einen Basisvorwiderstand von 1kOhm, da ich den Transistor nur als Schalter verwende. Ich dachte er schaltet die 5 Volt die am Kollektor anlegen dann einfach durch, so dass im am Emitter ca. 4,8 Volt habe. Kannst Du mir deine Rechnung mal erklären, das mit der Verstärkung beim Transistor habe ich sowieso noch nicht ganz geschnallt ;).
Hallo!
Ich finde den Ausdruck "schaltet durch" in Emitterschaltung nicht richtig.
Auf dem Emitter wird immer nur die Basisspannung aus dem µC minus Spannung auf der Basis-Emmitter Strecke, die ca. 0,6 V beträgt.
Um die LEDs mit (fast) voller Spannung +5V zu betreiben, musst du unbedingt pnp Transistoren nehmen, weil die npn, so wie sie geschaltet sind (Emmiterschaltung) höchstens ca. 4,4V ausgeben können.
MfG
Anbei ein Foto meines Stoppuhr ( + DCF77 Uhr ) Prototypen.
Ich hab, wie geschrieben, die Segmente im Multiplexverfahren am laufen.
Und brauche somit für die Ansteruerung des Displays 8 ( Segmente ) x 6 ( Zeichen - Digits ), also 14 Port Leitungen vom Controller.
Zu den kleineren Siebensegmentanzeigen gehen 8 seperate Kathodenleitungen, da der Segmentstrom nicht mit den großen Ziffern zusammen passt.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.