PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe zu LED Treiberschaltung (PWM / AVR)



Ronny G.
07.01.2009, 09:22
Hallo zusammen,

ich baue gerade an meinem LED - Projetkt - eine TV-Schrank Beleuchtung.
Es sollen 25 RGB LED´s betrieben werden:
- 5mm 4-Pin LED mit gemeinsamer Kathode
- 20 mA pro LED pro Farbe, also 25 Stück mal 20mA = 500mA pro Farbkanal
- ansteuern möchte ich das ganze mit einem Microcontroller (Attiny 2313)
über eine hardwaremäßige PWM

habe mir folgende Treiberschaltung ausgedacht um die 500mA pro Farbkanal zu schalten und im Anhang beigefügt.

Nun stellen sich mir folgende Fragen:
1. kann diese Schaltung so funktionieren
2. Wenn ja, welche Bauelemente sollte ich nehmen
3. oder gibt es spezielle Teiberbausteine
4. wie kann ich die Widerstände R1 und R2 berechnen

habe mir natürlich schon selbst viele Gedanken dazu gemacht und auch viel im Netz durchgelesen

meine Überlegungen:
zu 2. Transistor BD 135 ( schaltet bis zu 1,5 A)

zu 3. z.B. Treiber IC Uln 2803 (der schaltet aber nur Masse durch)

zu 4. Basisvorwiderstand R1:
- Schaltstrom (Ic) 0,5 A geteilt druch hFE 25 = 0,02 A
- Ausgangsspannung vom Atmel 5V minus Spannungsabfall BD 135 0,7V = 4,3 V
- R1 = 4,3 V geteilt durch 0,02 A = 215 Ohm

für Widerstand R2 wollte ich 10 KOhm nehmen

Viele Grüße aus Hamburg

oZe
07.01.2009, 09:48
Also generell funktioniert die Schaltun so. Ich würde dir allerdings dazu raten keinen Treiber zu benutzen sondern so wie du es gemacht hast einzelne Transistoren, da die Treiber bei 500mA schon ne menge Wärme abführen müssen und ich mir nicht sicher bin ob der ULN das so lange durchhält.
Es reichen normale Transistoren die einfach genug Strom aushalten wie z.b. der von dir angegebene Typ. Eventuell wäre ein TIP41 eine alternative. Der kann noch schön gekühlt werden ;-)

Hubert.G
07.01.2009, 10:02
So wie du die LED ansteuerst, wird der Transistor sicher warm, da er nie ganz durchsteuert. Du müsstest einen PNP nehmen, also BD136, Emitter an +5V, LED an Kollektor nach GND.
Dann musst du auch deine Stromversorgung gut überdenken. Ein normaler 7805 ist da nicht mehr, du solltest da schon an einen StepDown mit 2A ins Auge fassen.
Vielleicht würde auch eine ungeregelte Spannung gehen und die Vorwiderstände an die max. Spannung anpassen. Dann musst du allerdings auch die Ansteuerschaltung nochmal ändern.

hardware.bas
07.01.2009, 13:23
Genau... eine volle Durchsteuerung ist hier nur mit einer Emmitterschaltung
realisierbar. Wenns machbar ist, die LEDs an den gemeinsamen Plus zu legen - der darf in an den Anoden sogar die Ub des Ansteuer-IC
übersteigen - können weiterhin NPN-Transisoren Verwendung finden.
VG Micha

nollsen
07.01.2009, 17:24
hi,

also so wie du die schaltung gezeichnet hast, wird so wohl gar nicht funktionieren, da der transistor denke ich nicht ansatzweise durchgeschalten wird.

du musst mindestens den transistor (wie schon andere geschrieben haben) in einer emitterschaltung anschließen. d.h. konkret, emitter auf masse, collector an led ausgang (dort wo im moment masse ist), led eingänge auf Versorgungsspannung.

Mit was für einem Netzteil möchtest du das ganze betreiben? diese vielen Widerstände könntest du dir eigentlich sparen, wenn du die leds in serie schaltest. dann bräuchtest du allerdings eine höhere spannung (die du wahrscheinlich im moment eh schon haben wirst).

richtig fein wäre es, wenn du noch eine spule, diode und widerstand spendieren würdest, und eine stromgesteuerte hochsetzschaltung bauen würdest ;-)

viele grüße,

nollsen
07.01.2009, 17:27
übrigens, zu berechnung der widerstände:
angenommen du hast das ganze in emitterschaltung aufgebaut:

R2: brauchst du nicht
R1:
- der spannungsabfall über dem Transistor sind 0.7V.
- der AVR liefert 5V
- über dem Widerstand sollen 5 - 0.7 = 4.3V abfallen.
welcher strom soll fließen?
- angenommen der Transistor hat eine verstärkung von 100, 1A sollen fließen -> 1A / 100 = 10mA basis Strom ist erforderlich.

R = U / I -> 4.3V / 0.01 = 4.3kOhm

lieber etwas mehr strom durch die basis fließen lassen (wenn du nicht gerade auf ein low power design vor hast), d.h. lieber einen 3.9 kOhm widerstand nehmen (den gibts auch zu kaufen).

Hubert.G
07.01.2009, 17:57
Es sind 430 Ohm und nicht 4k3.
Mit in Serie schalten tut sich bei RGB-LEDs mit gemeinsamer Kathode nichts.

Besserwessi
07.01.2009, 21:33
Bei RGB LEDs ist nicht klar, das alle LEDs gleichzeitig mit 20 mA betriebenwerden dürfen. Das sollte man vorher im Datenblatt abklären.

Ronny G.
08.01.2009, 17:24
Hallo,

danke erstmal für die Antworten

Die LED´s (4-Pin mit gemeinsamer Kathode) lassen sich in meinen Augen
nicht anders als parallel verschalten. Ich denke auch, daß man vor jede
der drei Anode der einzelnen LED´s einen Vorwiderstand schalten sollte
(hatte ich mehrmals so im Netz gelesen um die Lebensdauer zu erhöhen).
Die LED´s mit den Widerständen (für 5V) sind schon fast verdrahtet.
Die Spannung 5V hatte ich bewusst gewählt, um den Spannungsabfall an
den Vorwiderständen (sind gesamt ja 75 Stück) gering zu halten.

Ich werde am Wochenende die LED´s fertig verlöten und dann mal messen
wie viel Strom pro Farbkanal fließt
Dann werde ich wohl die Emmitterschaltung mit einem PNP-Transistor (BD136)
aufbauen so wie es Hubert und Micha beschrieben haben.

Danke noch mal, ich werde mich nächste Woche noch mal melden.

Gruß Ronny

Ronny G.
13.01.2009, 08:49
Hallo zusammen,

ich habe am Wochenende meine LED – Leiste fertig verlötet und gemessen welchen
Strom ich pro Farbkanal schalten muß:
Farbkanal Rot = 350 mA
Farbkanal Grün= 256 mA
Farbkanal Blau= 328 mA
Es sind nun doch keine 500 mA pro Farbkanal geworden, weil ich nur noch 22 LED´s
verbaut habe und den Vorwidersand für grün und blau etwas höher gewählt habe, da
diese Farben gegenüber rot sehr dominant waren.

Ich möchte nun die Emmitterschaltung mit einem PNP-Transistor (BD136) aufbauen so wie es Hubert und Micha beschrieben haben.
Habe die Schaltung abgeändert und im Anhang beigefügt.

Könnt ihr euch bitte die Schaltung noch mal anschauen, ob ich das so machen kann!
Wie berechnet man richtig den Basisvorwiderstand R1???
Im Datenblatt des BD 136 steht ein Verstärkungsfaktor von min 40, max 250
welchen Wert muß ich ansetzen? (Datenblatt habe ich im Anhang beigefügt)

Grüße aus Hamburg

Hubert.G
13.01.2009, 10:45
Die Schaltung ist so richtig. Wenn der Ausgang des µC low ist, dann leuchten die LED.
Du solltest dir einen BD136-16 oder besser BD136-25 besorgen, die Zahl gibt den Verstärkungsfaktor an.
Es geht auch ein BC327-25, der kann auch genug Strom.
Den Basiswiderstand hast du in deinem ersten Posting schon richtig berechnet. Nur die Basis-Emitterspannung ist bei einem BC136 1V, dafür immer ins Datenblatt schauen.
Mit etwas Reserve sollte der Basiswiderstand dann 680 Ohm sein.

Ronny G.
13.01.2009, 11:50
Danke Hubert,

dann werde ich mir den BC327-25 bestellen den habe ich bei Reichelt gefunden. Du hast recht mit der Basis-Emitterspannung, im Datenblatt des BC327 steht sogar 1,2 V.
Werde meine Software des AVR noch anpassen damit es passt wenn AVR Ausgang 0 ist die LED´s leuchten.

Gruß Ronny

Goblin
16.01.2009, 17:36
Ich progge gerad auf diesem Tiny mit PWM und LEDs herum. Das Problem was ich heute entdeckt habe ist, dass du im spärlichen SRAM des Controllers (128 Bytes) nichtmal ansatzweise einen Lookup-Table für ne Gammakorrektur unterbringen kannst, ohne die eine LED-Dimmung per PWM ziemlich mies aussieht. Gibts ne Möglichkeit den Kram in nen andern Speicherbereich zu schreiben? Ist ja "read only". Ansonsten eher größeres Modell wie Mega8 nehmen.

Besserwessi
16.01.2009, 19:49
Man kann Tabellen von Konstanten auch im Flash haben. Bei GCC mal unter dem Stichwort Progmem nachsehen. Der Zugriff ist nicht viel schwieriger als im RAM. Alternativ sollte es auch möglich sein die Funktion jeweils zu berechnen.

Goblin
17.01.2009, 12:16
Ich hab die Farbabstufungen einfach mal auf 128 reduziert und ins eeprom geschrieben. funktioniert gut, und ich glaub es fällt auch nicht auf dass es weniger farbstufen sind.