Hallo! Ich hab ein kleines Problem und hoffe, ihr könnt helfen. Bevor ich lange rumprobiere, kein zufriedenstellendes Ergebnis bekomme und viel Geld ausgebe... Mein Problem ist folgendes: Ich muß eine LED-Matrix mit insgesamt 64 LEDs (8x8) im Multiplebetrieb ansteuern. Dabei kann ich weder die LEDs noch die Vorwiderstände (jede LED einen eigenen) austauschen, da sie bereits in einer gefliesten Tanzfläche (in den Fugenkreuzen) eingearbeitet sind und nur noch die 16 Anschlußkabel (8xAnode/8xKathode) zugänglich sind. Jede LED soll jetzt einzeln angesteuert werden können, die Software (AT Mega 8535) ist bereits fertig. Mein bisheriger Versuch mittels ULN2803 (Low-Side) und TD62783 (=UDN2981, High-Side) läßt allerdings zu wünschen übrig (LEDS viel zu dunkel), bisher lief das ganze aber auch nur auf 5 Volt, außerdem ziehen die Transistoren in den Treiberbausteinen noch Spannung ab. Die Vorwiderstände der LEDs sind auch für den Betrieb an 5V ausgelegt (180Ohm), allerdings für Dauer-An, nicht für Multiplex. Um jetzt eine höhere Helligkeit zu erreichen, würde ich die LEDs gerne mit 12 Volt )oder gar mehr???) ansteuern. Was meint Ihr, eigentlich müßten die das doch locker mitmachen, da sie bei Multiplex-Betrieb ja nur ein 8-tel der Zeit an sind? Kann man bei LEDs linear rechnen, also: 1/8 Leuchtdauer = Strom 8 mal so hoch? Die nächste Frage ist, womit steuere ich sie an? Wenn ich das richtig sehe, werden die bisherigen ULN/UDN Treiberbausteine den daraus resultierenden höheren Strom nicht verkraften, da bei 8 LEDs gleichzeitig an, je 180Ohm Vorwiderstand, bei 12 Volt (=ca.10V an den Widerständen) schon ca. 440mA fließen. (55mA je LED, aber bei einem Duty-Cycle von 12,5%). Wenn man dann davon ausgeht, daß alle 64 LEDs leuchten sollen, muß der Treiberbausten insgesamt diese 440 mA dauerhaft liefern können, laut Datenblatt kann zwar jeder Kanal max 500mA, aber sicher nicht wenn alle gleichzeitig an sind, denn da steht noch was von "Duty 10% = 160mA /ch" usw, jedenfalls weit entfernt von den 440mA... Hoffe, ihr könnt mir etwas helfen, wie ich den Aufbau jetzt am Besten machen könnte. Diskret? Mit MosFETs? Oder doch lieber mit PNP/NPN-Transistporen? Was ist besser? Vor allem für die Highside, hier dachte ich zunächst an ein P-Kanal MosFet, gesteuert über ein NPN-Transistor vom Port des uC, allerdings habe ich noch keine großen Erfahrungen mit FETs. Könnte das Probleme mit der Gate-Kapazität und somit der Umladezeit geben, da ich eine sehr hohe Frequenz (weit jenseits 10KHZ) anstrebe? Also doch lieber nen PNP statt FET? Oder gar irgend ein fertiger High-Side-Baustein wie "BTS..."? So, nun genug getextet, ich hoffe Ihr könnt mir helfen. Jede Antwort willkommen: Kritik, Gegenvorschläge, Teilantworten,..., immer her damit! :-) Bis dann! ciao, Andi
Schon die Suche konsultiert? Die folgenden Threads sollten dir eigentlich alle Antworten und Lösungen aufzeigen, wenn nicht, dann frag nochmal kurz. http://www.mikrocontroller.net/forum/read-1-226415.html http://www.mikrocontroller.net/forum/read-1-339909.html http://www.mikrocontroller.net/forum/read-1-185453.html http://www.mikrocontroller.net/forum/read-1-176347.html http://www.mikrocontroller.net/forum/read-1-244017.html cu joern
Ach ja zum Pulsstrom noch ergänzend: Dafür musst du mal in das Datenblatt der LEDs gucken, der Hersteller gibt den Wert dafür immer an. Bei IR-LEDs sind das z.B. durchaus mal einige Ampere, die man pulsen darf, bei anderen LEDs manchmal auch nur sehr wenig. Hier sind z.B. viele solche Angaben zu Kingbright-LEDs zu finden: http://www.kingbright-europe.de/_daten/Application_note.pdf Da steht zum Beispiel, dass du bei der LED ganz rechts 0,1ms lang (wenn du danach 0,9ms Pause machst! 1/10 duty cycle) 200mA anstatt nur 30mA "bestromen" darfst (Seite 8). Die Spannung dazu ganz normal über U=R*I und dem Spannungsabfall (Vf) aus dem Datenblatt berechnen. Irgendwelche Werte (z.B. mal eben 12V) zu nehmen ist eine schlechte Idee. Weil was machst du, wenn es zwar prima funktioniert, die LED dann aber nach 50 Betriebsstunden bereits ausfällt und du die Fliese rausklopfen darfst. cu joern P.S. Rechenbeispiel: Rote LED: Vf=2,5V R=180Ohm U=5V 5V-2,5V=2,5V 2,5V/180Ohm= 14mA (Dauerstrom) - ein bischen wenig sind die 5V also allemal, wenn deine LEDs auch so ein Vf haben. Blaue LED: 5V-3,5V=1,5V 1,5V/180=8,3mA (viel zu wenig, bzw. viel zu großer Vorwiderstand) Nun also pulsen mit sagen wir erstmal nur 100mA (bei 180Ohm): rot: 100mA*180=18V 18V+2,5V = 20,5V 20,5V dürftest du bei duty cycle und 0,1ms Puls also anlegen. blau: 100mA*180=18V 18V+3,5V=21,5V 21,5V dürftest du bei duty cycle und 0,1ms Puls also anlegen. 12V sollte also kein Problem geben bei so kurzem duty cycle und puls
Mittlerweile ist es etwas haarig auf die Suche zu verweisen, da in diesen Threads auch oft wieder auf die Suche verwiesen wird g Versuchs doch mal mit einem Hi-Side Driver à la UDN... Die haben soweit ich weiß einen integrierten Levelshifter, sodass du mit der Spannung hochkannst. Du hast zwar schon den Controller fertig, aber da Du von einer Tanzfläche gesprochen hast ist vielleicht auch mal mein Matrix-Projekt irgendwann interessant für Dich: www.hoelscher-hi.de/hendrik/light/matrix.htm Mich würden auch ein paar Details zu deiner Steuerung interessieren... Viele Grüße, Hendrik
Hallo! Erstmal Danke für Eure Antworten! @Jörn: Problem ist, daß ich die LEDs schon länger liegen hatte, und natürlich kein Datenblatt dazu... Sind übrigens weiße. Mein Puls wird wohl bei längstens 100ns liegen, eher kürzer. Müßte ich nochmal genau nachrechnen. Auf alle Fälle hilft mir das schonmal weiter, kann ich mit 12 Volt also problemlos mal testen. Für den Test nehm ich natürlich noch nen paar LEDs, die noch nicht eingefliest sind, da ists nicht so schlimm, wenn mir eine bei drauf geht. @Hendrik: Die UDN2981 habe ich derzeit verwendet, um mit 5Volt den höheren Strom liefern zu können, mein Problem ist jetzt aber, daß ich ja durch den Multiplex-Betrieb eine höhere Spannung benutzen möchte, die der UDN zwar liefern könnte, aber wohl den dann daraus resultierenden wesentlich höheren Strom nicht mehr verkraftet. Das schrieb ich aber oben auch schon ;-) (Gibts vielleicht noch andere, die noch mehr strom liefern können? Also dauerhaft bis zu 1 Ampere insgesamt? Hab noch nicht gezielt nach gesucht...) Meine Steuerung ist ein DMX-Empfänger auf Mega8535-Basis. 64DMX-Kanäle werden dazu benutzt, um meine 64LEDs anzusteuern. Der uC erhält per DMX die Daten von einem WinXP-System mit "e:cue"-Software (siehe www.ecue.tv) und einem ecue-nano. In der derzeitigen Version werden die LEDs lediglich ab einem Schwellwert von 128 ein bzw. ausgeschaltet, später sollen insgesamt mehrere Dimmstufen (strebe 8-16 an) implementiert werden. Dabei hat der 8535 dann auch alle Hände voll zu tun, er läuft übrigens auf 16MHz. Deine Seite kenne ich übrigens, auch ganz interessant. Ähnliche Anwendungen hab ich auch schon entwickelt, bisher hab ich DMX-Empfänger (bzw Sender) allerdings nie IRQ-gesteuert programmiert, da meine uC immer genug Zeit hatten zu pollen. Der Vorteil dabei war, daß ich das Brake-Signal auch mittels Schleife besser auswerten konnte, indem ich die entsprechende Low-Phase nach abschalten des UART abgewartet habe. Für dieses Projekt hab ich jetzt aber wie Du eine IRQ-gesteuerte Routine entwickelt, mit dem gleichen Nachteil wie dem Code auf Deiner Seite, daß ein eigentlicher UART-Fehler dazu verwendet wird, um das Brake-Signal zu erkennen. Was aber, wenn tatsächlich ein Fehler auftritt und zufällig danach ein korrektes Byte mit $00 empfangen wird, was aber in wirklichkeit KEIN Startbyte ist? naja, daran tüftliche ich später nochmal, erstmal funkioniert es ja (solange das DMX-Signal sauber genug ist). Hätte ich Deine Seite übrigens früher gefunden, hätte ich mir einiges an Arbeit gespart, letzten Endes funktioniert meine Empfangsroutine nach dem gleichen Prinzip wie Deine... ;-) --- Soweit so gut, was mir jetzt immer noch fehlt: Eine gute und vor allem preiswerte Möglichkeit, einen relativ großen Strom (100-200mA) bei 12V (oder höher) je Kanal bei insgesamt 8 Kanälen auf der High-Side mit 5V zu steuern. Also insgeamt bis ca 1,5A Stromaufnahme bei 12V, aufgeteilt auf 8 Kanäle. Low-Side wäre das ka kein Problem mittels 8 mal N-MosFet oder NPN-Tansistor. Aber wie die HighSide? Bisher haben mir die links bzw. Forumssuche nicht genügend helfen können. Wie ich die LED-Matrix per uC und Software ansteuere ist kein Problem, auch schon fertig. Aber die "Endstufe" fehlt mir noch, zumindest wie die 5V-Portspannung (High- oder Low-Aktiv ist wurscht, das läßt sich ja per Software ändern) auf den großen 12V/200mA-Strom umgesetzt werden kann. Und zwar bei 8 Kanälen, möglichst preiswert... Gruß, Andi.
@Andi: Ich würde Dir gern eine Mail schicken, habe aber noch keine Addy von dir... Schreib mir bitte irgendwas an hoe1scher|ät|web.de. Grüße, Hendrik
<offtpic>...ich hab mich mal angemeldet...</offtopic>
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.