Forum: Mikrocontroller und Digitale Elektronik LEDs mit Transistor dimmen


von fechu (Gast)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen,

Ich bin inzwischen den 5. Abend an einer kleinen Schaltung die einfach 
nicht will... Mein Ziel ist es eine Handvoll LEDs (25 Stück) die 
parallel geschaltet sind und alle einen eigenen Vorwiederstand haben zu 
dimmen. Da alle zusammen knapp 300mA Strom ziehen mache ich das mit 
einem Transistor. Ich verwende einen BC337. Der sollte das ohne Probleme 
schaffen.

Ich verwende einen ATTiny45 um das PWM Signal zu erzeugen. Der Code um 
den Timer zu einzustellen ist folgender
1
void initializePWM()
2
{
3
    TCCR0A |= (1 << WGM00) | (1 << WGM01) | (1 << COM0A1) | (1 << COM0B1);
4
    TCCR0B |= (1 << CS00); // Divide frequenz by 8
5
    
6
    // Set the PWM pins to output.
7
    DDRB |= (1 << PB0) | (1 << PB1);
8
}

Später sollen auf einem zweiten Kanal noch weitere LEDs gedimmt werden. 
Das spielt aber im moment keine Rolle.

Das PWM Signal funktioniert mit meinen Tests wunderbar. Ich habe eine 
LowCurrent LED direkt an den Ausgang gehängt und die wird wunderbar 
gedimmt. Dann habe ich die LED mit dem Katode an den Kollektor eines 
Transistors gehängt, den Pin über einen Basiswiderstand an die Basis und 
der Emitter an Ground. Auch das funktioniert wunderbar.
Der nächste Schritt war dass ich alle LEDs parallel auf dem Steckbrett 
an den Transistor gehängt habe. Da funktioniert das dimmen wunderbar.

Sobald ich aber die Schaltung auf eine Platine löte, flackern die LEDs 
nur noch ganz Langsam mit ca. 3 Hz.

Ich konnte das Problem bis auf den Transistor eingrenzen. Es sieht so 
aus, als ob der nicht durchschaltet und somit der Strom nie richtig 
fliessen kann. Den Basiswiderstand habe ich folgendermassen berechnet.

Stromverstärkung nehme ich 100 an des Transistors. Datenblatt sagt zwar 
mehr, aber sicher ist sicher. Somit benötige ich eine Strom an der Basis 
von

300mA / 100 = 3mA

Als sicherheit nehme ich das x 5 = 15ma

R = U/I => 5V / 0.015A = 333.3Ohm

Da ich keine solche Widerstände habe verwende ich 220Ohm Widerstände. 
Mit dieser Berechnung hat die Schaltung auf dem Steckbrett wunderbar 
funktioniert und ich konnte die LEDs dimmen.

Wenn ich aber auf der Platine kurz Kollektor und Basis des Transistors 
verbinde und Ihn so in den gesättigten Zustand bringe bleibt er 
wunderbar an solange der Duty-Cycle des PWM Signals 100% ist. Sobald das 
unter 100% geht gehen die LEDs wieder aus. Daraus schliesse ich wie oben 
bereits genannt dass der Transistor nicht durchschaltet.

Kann mir irgendjemand weiterhelfen? Ich weiss leider nicht wie ich 
weiter vorgehen kann.
An der Platine kann es auch nicht liegen. Ich habe Sie bereits ein 
zweites mal gelötet mit dem selben Effekt, da ich dachte dass es 
eventuell an einer unsauberen Lötstelle liegt.

Glg Sandro

von PullDown (Gast)


Lesenswert?

Ein Pull-Down Widerstand an die Basis bitte.

von Bernhard S. (b_spitzer)


Lesenswert?

Vermutung: Spannungsversorgung des Controllers = Spannungsversorgung der 
LEDs. Beim Schalten bricht die Spannung soweit zusammen, dass der 
Controller resetet. Jegliche Kondensatoren sind auf der Lochraster 
zumindest unsichtbar oder gut versteckt.
Wenn die Vorwiderstände der LEDs genauso berechnet und dann mit 50% 
unter Wert genommen wurden, dann dürfte der Transistorstrom ebenfalls 
einiges neben den berechneten 300mA liegen. Ein BC337-16 hat bei diesem 
Strom nur noch ein garantiertes B von 60.
Dein Basisstrom liegt mit dem Widerstand auch eher bei 20mA und damit 
für eine Controller High-Ausgabe schon recht hoch.

von fechu (Gast)


Lesenswert?

Das ist Korrekt. Die Spannungsversorgung ist die selbe. Die 
Kondensatoren fehlen ebenfalls. An die habe ich gar nicht gedacht, da es 
bis jetzt immer ohne funktioniert hat.
Die Vorwiederstände der LEDs sind exakter berechnet als der 
Basiswiderstand. Und dort habe ich auch die berechneten verwendet. ;-)

Die 300mA habe ich gemessen und die stimmen auch +-. Es sind auf meinem 
Multimeter 280mA. Ich werde die Kondensatoren einbauen und dann mal 
schauen was die Spannung macht.
Leider habe ich als Beginner (aus der Software Welt komment) keine Top 
Ausrüstung/Hintergrundwissen.

von fechu (Gast)


Lesenswert?

Ich habe nun einen 100nF Kondensator bei der Powerline zwischen Ground 
und Vcc gelötet. Das Flackern ist weg. Allerdings schaltet der 
Transistor immernoch nicht. Am PWM Ausgang erhalte ich wunderbar eine 
Variable Spannung wenn ich mit dem Multimeter ran gehe. Ich werde mich 
nochmals dransetzen wenn ich zeit habe. Mal schauen ob ich den Fehler 
finde.

@Bernhard Spitzer: Vielen Dank für die Hilfe. Es scheint nun sicher 
schon mal in die richtige Richtung zu gehen.

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
Noch kein Account? Hier anmelden.