Anzeige:

High Power LED Treiber

Hier finden sie die archivierten Beiträge des alten PHPBB Forums von www.loetstelle.net

High Power LED Treiber

Von ACE am 23.06.2012 12:31

Ich Möchte eine 10W LED mit einem ATtiny13 ansteuern:
Dies soll mit PWM passieren..

Da die LED aber eine Konstante Helligkeit aufweisen soll möchte ich die PWM über einen Shunt und ACD korrigieren ..

Bei mir Blitzt die Test LED aber nur egal was am ADC anliegt !!!

Bascom:
1]Regulate:
If Shunt < Set_current Then
If Pwm > 0 Then
Pwm = Pwm - 1
End If
Else
If Pwm < 255 Then
Pwm = Pwm + 1
End If
End If
Pwm0a = Pwm
Return
1]

Dieser Colde Will aber nicht Fuktionieren :?

PWM 255 = aus

Weiß jemand abhilfe ?

Von Sam am 23.06.2012 13:38

Du weißt schon, dass durch die PWM immer entweder voller Strom oder garkeiner fließt! Mit einem Shunt brauchst du da garnicht kommen.

Wozu willst du überhaupt den Strom durch die LED messen? Um die Helligkeit konstant zu halten gibt es Konstantstromquellen.

Von ACE am 23.06.2012 14:32

Das ist eine 10W LED und ich habe KEINEN platz für eine 3 A Konstantstromquelle ..

Ausserdem solldas regelbar sein.
Die Pwm schaltet ja so schnell das die Spannung bis auf ein Bestimmtes Niveau ansteigt .. (Led mit Kondensator)

Bei z.b. 2,9 zieht die LED eben 700mA
Wenn der Strom zu Hoch wird sollen die Pulse eben entsprechend Kürzer werden !

Von Sam am 23.06.2012 14:46

Dann zeig mal den ganzen Code und den Schaltplan dazu.

Von ACE am 23.06.2012 15:15

Da Fehlt aber noch die regelung für Temperatur und Batteriespannung

Code:
$regfile = "attiny13.dat"
$crystal = 1000000
$hwstack = 36                                               '8 Unterprogramme   32für interrupt 4 für(2) Sprünge
$swstack = 4                                                '2 Weitergabe der Variablen
$framesize = 4                                              '5 Byval Speicher
'64 Sram - 44 = 20
'Dim Pwm As Byte

Config Portb.0 = Output
Config Portb.1 = Input
Portb.1 = 1                                                 ' Pullup [Wort zensiert, bitte sofort ändern, sonst droht Sperrung]


Config Timer0 = Pwm , Pwm = On , Compare A Pwm = Clear Down , Prescale = 1
Enable Timer0
Config Adc = Single , Prescaler = Auto , Reference = Internal
Start Adc
Pwm0a = 255

Dim Modus As Byte
Dim Pwm As Byte
Dim Batt As Word
Dim Shunt As Word
Dim Temp As Word
Dim Set_current As Word                                     ' = mA

Modus = 1

Waitms 20



Do

Batt = Getadc(1)
Shunt = Getadc(2)
Temp = Getadc(3)
Shunt = Shunt * 10


Select Case Modus

Case 1
Set_current = 10
Goto Regulate
Case 2
Set_current = 900
Goto Regulate
Case 3
Set_current = 1200
Goto Regulate
Case 4
Set_current = 1500
Goto Regulate
Case 5
Set_current = 1700
Goto Regulate
End Select


If Pinb.1 = 0 Then
Waitms 200
If Pinb.1 = 1 Then
If Modus < 5 Then
Modus = Modus + 1
Else
Modus = 1
End If
Waitms 1
End If
End If

Loop



Regulate:
If Shunt < Set_current Then
If Pwm > 0 Then
Pwm = Pwm - 1
End If
Else
If Pwm < 255 Then
Pwm = Pwm + 1
End If
End If
Pwm0a = Pwm
Return

End

Von Sam am 23.06.2012 16:53

Ok, ein Schaltplan wäre auch noch ganz nützlich, oder ein paar Fotos vom Aufbau.

Ersetz' mal deine ganzen GOTOs durch GOSUBs, ich weiß nicht, was passiert, wenn ein RETURN kommt und keine Sprungadresse bereit liegt.

Von ACE am 23.06.2012 17:28

Einen Schaltplam Hab ich noch nicht Erstellt ...

Ist eigendlich Ganz einfach !
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Vcc
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \/
PB 0 = PWM --> 200Ohm --> NPN Darlington Transistor --> LED +

PB 1 = Moduseinstellung --> Taster --> GND

PB 2 = (ACD)Shunt --> 0,1Ohm Messwiederstand -- GND
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /\
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ |
_ _ _ _ _ _ _ _ _ _ _ _ _ _ LED -

PB 3 = (ADC)Temp --> NTC --> Vcc
_ _ _ _ _ _ _ _ _ _ |
_ _ _ _ _ _ _ _ _ _ \/
_ _ _ _ _ _ _ _ R 1k --> Gnd

PB 4 = (ADC)Batt --> Vcc
PB 5 = Reset --> Vcc

Wink

Von Sam am 23.06.2012 17:53

Naja, damit fang' ich jetzt nicht wirklich was an. Kritzel's doch kurz auf ein Stück Papier und mach ein Foto davon.

Wo ist der Kondensator?

Von BellaD am 24.06.2012 14:35

moin moin

Zitat:
Bei z.b. 2,9 zieht die LED eben 700mA
Wenn der Strom zu Hoch wird sollen die Pulse eben entsprechend Kürzer werden !


Da bist du wohl auf dem Holzweg Wink

LED haben eine mit Zehnerdioden vergleichbare sehr Steile Kennlinie
wenn die Vf erreicht wird werden sie leiten und das solange bis sie durch sind.
Also muss logischerweise der max. mögliche Strom auf den Wert begrenzt werden den die LED noch verträgt.
Einfachste Konstantstromquelle = Widerstand + konstannte Spannung

Wenn du also auf eine getaktete Konstantstromquelle(Schaltregler) verzichten willst solltest du wenigstens den Strom mit einem dicken Widerstand begrenzen (könnte dann auch der Shunt sein der seiner Funktion eh ad adsurdum geführt wird da nicht mehr erforderlich)

Ich nehme mal an es ist eine :
Huey Jann 10W
die hat eine Vf von ca.14V bei ca.700mA If

das heisst unterhalb von 14V wird die garnicht leuchten wollen


Für deine angestrebte Version (Tr. + LED + R)
bauchst du eine Spannungsversorgung in Höhe von
Uf + Uce sat + URvor

14 + 0,2 + 3 = ca.18V

als Tr. würde ich einen MosFet nehmen und den vom Tiny mit PWM ansteuern
- für den Widerstand dann entsprechend 3V /0,7 = 4,7Ohm / 3- 5 Watt
Der Widerstand wird dann aber schon gut warm.
Das geht aber wieder nur mit einer guten konstanten Versorgungsspannung (Schaltnetzteil billig bei Pollin oder sowas)
oder halt doch 5€ für einen vernünftigen Konstantstromregler ,der mittels Tiny ebenfalls über PWM regelbar ist, ausgeben.

übliche Verdächtige sind Micrell Zetex NXP usw...
oder du baust dir so ein ding selber aus drei Tr. macht auch schon 65-70% Wirkunggrad http://www.romanblack.com/smps/a05.htm

mfg

Von ACE am 24.06.2012 18:33

Alle teile :

1. Endkappe mit schalter
2. Hauptgehause
3. Lampenkopf
4. Batteriehalter -3xAAA
5. Hülse - Zur Federhalterung
6. Feder
7. Stopper - Hält die Hülse(5)
8. Led Platine
9. Scheibe
10. ATtiny13 ^^



Die Hülse ist :
aussen 25 x 26 mm Dm x L
innen 22 x 25 mm wovon ich max 15-20 mm nutzen kann ,da die Hülse noch die Feder halten muss

Anzeige: