Strona 3 z 5

: czwartek 03 wrz 2009, 18:19
autor: greg
Może sample zamów, jeśli Ci się zbytnio nie spieszy? Zamawiałem w Vishay SI2312BDS-T1-GE3, przysłali.

: czwartek 03 wrz 2009, 21:09
autor: Pyra
greg pisze:Może sample zamów, jeśli Ci się zbytnio nie spieszy? Zamawiałem w Vishay SI2312BDS-T1-GE3, przysłali.
Będę musiał, na razie jeszcze jeden mam, potem jeszcze w obudowie SOT-223.

No to zaczynamy opis sterownika.
Oto schemat:
Obrazek
Jako przetwornicę użyłem max1797, z małymi zmianami. Dałem trochę mniejsze pojemności, obawiałem się, że 47uF mogą zgromadzić za dużo energii, i będą się pojawiać naprawdę duże impulsy prądowe, szczególnie w niskich trybach. Na wyjściu są więc dwa kondensatory 10uF (1206) i 9uF (805), odzyskane z płyty głównej. Dławik zastosowałem taki jak mi się udało kupić w sklepie, czyli 22uH 1,6A ekranowany (kurcze duży...)
Procesor ma jedno wejście, użyłem PB3, i jedno wyjście PB0 (PWM A), Poza tym zasilanie z kondensatora 100uF ładowanego przez diodę (zwykła, ale w malutkiej obudowie, prąd pobierany przez układ jest malutki, więc tym parametrem diody się nie przejmowałem). Kondensator tantalowy jak i dioda, wyciągnięte z jakiegoś telefonu komórkowego.
Jako detektor przerw w zasilaniu pracuje 2N3904 (chyba najpopularniejszy na świecie SOT-23 :wink: oznaczenie 1Am), do tego zadania nadaje się dobrze. Aby ograniczyć prąd bazy, dałem szeregowo rezystor 5k1 (obudowa 805)
Jako tranzystor wykonawczy pracuje mosfet z kanałem typu n, (SOT-23 oznaczenie BBH9N)

Na koniec zamieszczam listing programu w BASCOMIE:

Dim A As Byte 'wartość PWM
Dim L As Byte 'Licznik trybu

Config Pinb.0 = Output 'wy PWM
Config Pinb.3 = Input 'we sterujące

Config Timer0 = Pwm , Compare A Pwm = Clear Up , Prescale = 1

Set Pinb.3 'podciągnięcie wejścia
A = 160 'startowa wartość komparatora
L = 2 'tryb startowy


Pwm0a = 160
Waitms 50

Do
Pwm:
' ustawienie wartości komparatora PWM
Pwm0a = A

If Pinb.3 = 1 Then Goto Zmiana

Loop

Zmiana:
Waitms 2
If Pinb.3 = 0 Then Goto Pwm ' eleminacja dgań styków

If L > 2 Then L = 0 'sprawdzanie zakresu trybów
L = L + 1

If L = 1 Then A = 252
If L = 2 Then A = 160
If L = 3 Then A = 2

Waitms 20
Goto Pwm


End

Pozdrawiam

: czwartek 03 wrz 2009, 22:49
autor: krzycho_
Pyra , a PCB drivera też dorzucisz ? :grin:

: czwartek 03 wrz 2009, 23:34
autor: Pyra
Ale tylko jako pliki Traxmakera.
Próbowałem przerobić na JPG lub coś podobnego, ale chyba nie umiem :wink:

To są dwie płytki złożone na kanapkę, jedna ma 16mm a druga 17mm, bo tak jest skonstruowana oryginalna tulejka dystansowa.

PS: Właśnie wypróbowałem drugą latarkę, 620mA w diodę CREE Q5 i gładki głęboki reflektor 32mm :mrgreen:

[ Dodano: Sob Wrz 05, 2009 7:16 pm ]
Ponieważ, lepsze jest wrogiem dobrego, to przyszedł czas na kolejne zmiany.

Kolejne zmiany to nowe oprogramowanie driverka.
Nowa wersja posiada 4 tryby ciągłe.
Najsłabszy został jeszcze obniżony, potem trochę jaśniejszy, średni i jasny. Jasność dobrałem doświadczalnie dlatego wartości komparatora mogą się wydawać nieco dziwne.
Przy takiej strasznej ilości trybów :wink: postanowiłem zrobić pamięć ostatnio używanego trybu.
Jeśli tryb został ustalony na około 2s to zostaje porównana zawartość wskaźnika trybów z zawartością eeproma, w razie różnicy zostaje do eeproma zapisany aktualny nr trybu. Zapis odbywa się tylko wtedy, gdy numery trybów się różnią, w przeciwnym razie program przechodzi dalej, aby nie marnować zapisów.
Poprawiłem przy okazji pewność rozpoznania "klika".
Potem przyszedł czas na programowanie. Kawałek taśmy z 6-ma żyłami rozerwałem na końcach, potem pocynowałem końcówki i jedną stronę podlutowałem do płytki sterownika, drugi koniec wetknąłem do podstawki programatora.
Obrazek

Ponieważ mój sterowniczek nie może konkurować z komercyjnymi rozwiązaniami, to postanowiłem przedstawić oprogramowanie (BASCOM 1.11.9)

Lsiting:

Dim A As Byte 'wartość PWM
Dim C As Byte
Dim L As Byte 'wskaźnik trybu
Dim T As Eram Byte 'pamięć trybu
Config Pinb.0 = Output 'wy PWM
Config Pinb.3 = Input 'we sterujące
Config Timer0 = Pwm , Compare A Pwm = Clear Up , Prescale = 1 'konfig PWM

Pwm0a = 0 'eliminacja mrygnięcia po włączeniu

Set Pinb.3 'podciągnięcie wejścia

L = T 'odczyt trybu startowego

Goto Wlacz 'ustalenie wartości PWM

Pwm: 'sprawdzanie zaniku naięcia

Do
Pwm0a = A ' ustawienie wartości komparatora PWM

For C = 1 To 50 'pętla odczekująca na zapis trybu po zmianie
If Pinb.3 = 1 Then Goto Zmiana 'sprawdzenie stanu pinb3
Waitms 4
Next C

If T <> L Then T = L 'zapis trybu do eprom jeśli się zmienił

Loop

Zmiana:
Waitms 2
If Pinb.3 = 0 Then Goto Pwm ' eleminacja dgań styków
L = L + 1
Waitms 30

Wlacz: 'ustalenie wartości pwm dla trybu

If L > 4 Then L = 1 'sprawdzanie zakresu trybów
If L = 1 Then A = 253
If L = 2 Then A = 220
If L = 3 Then A = 140
If L = 4 Then A = 1

Goto Pwm

End

Pobór prądu z akumulatorka i dla LEDa dla posczególnych trybów to:
1 - 83mA / 10mA
2 - 220mA / 51mA
3 - 521mA / 142mA
4 - 954mA / 247mA



[ Dodano: Czw Wrz 10, 2009 6:47 pm ]
Wreszcie udało mi się uruchomić mój stary oscyloskop. Skubany jeden tranzystor w stopniu odchylania poziomego nie kontaktował emiterem :evil:

No ale jak go już uruchomiłem, to zrobiłem pomiary prądu diody. Okazało się, że nie jest tak tragicznie :wink: Obawiałem się, że podczas bezczynności (LED wyłączony) przetwornica napompuje kondensatory wyjściowe do napięcia 5V (jak to jest ustawione w Lambdzie) i potem dioda otrzyma spory impuls przy włączeniu, otóż pojemność 1uF dołączona równolegle do LEDa skutecznie (łącznie z impedancjami sterownika) ten problem likwiduje.
Oto oscylogramy:
Tryb LOW
Obrazek

Tryb LoMid
Obrazek

Tryb MID
Obrazek

Tryb HI
Obrazek

Co ciekawe, pojawiające się małe szpilki są przy wyłączeniu klucza, ale to może być wina układu pomiarowego. Swoją drogą okazało się, że LED ma też swoją i to sporą pojemność :roll:

Dla mniej obeznanych z tematem zdjęcia wyjaśniają zasadę działania PWM. Wykres na górze - LED świeci, wykres na dole - LED wyłączony. i tak jakieś 1000 razy na sekundę. Widać tu zmienny stosunek czsu włączenia do wyłączenia, przy stałej długości okresu.

A na koniec wzory płytek oraz wsady hex i bin do ATTiny13

: niedziela 13 wrz 2009, 15:19
autor: krzycho_
Pyra , mam jeszcze 2 pytanka a właściwie to 3 do Ciebie :

- jakie napięcie i prąd idzie w driver z maxa 1797 ? tzn gdzie jest ograniczenie prądowe , bo chcę złożyć ale sam driver
pewnie będę musiał dorzucić ogranicznik - rezystor

- próbowałeś zamiast mosfeta dać jakiś mocny NPN

- zamierzasz może dodać jakiśtryb migający ? to byłby prawie "komerycyjny" driver ;)

: niedziela 13 wrz 2009, 19:15
autor: Pyra
krzycho123 pisze: Pyra , mam jeszcze 2 pytanka a właściwie to 3 do Ciebie :

- jakie napięcie i prąd idzie w driver z maxa 1797 ? tzn gdzie jest ograniczenie prądowe , bo chcę złożyć ale sam driver
pewnie będę musiał dorzucić ogranicznik - rezystor
max 1797 pracuje tu na swoich maksymalnych parametrach, i prąd ograniczony jest jego wydajnością (ograniczenie prądu płynącego przez cewkę), na świeżym ENELOOP'ie 270mA w diodę, potem spada do około 250mA i tak się trzyma.
Sama aplikacja układu ustala napięcie wyjściowe na 5V, największym niebezpieczeństwem jest tryb niski, gdzie led otrzymuje krótkotrwałe impulsy pełnego napięcia, co jednak jest skutecznie tłumione przez kondensator połączony równolegle z LEDem i zmniejszoną pojemność wyjściową.
Jeśli chcesz użyć sam sterownik na uC to musisz w inny sposób ograniczyć prąd, dobre do tego celu są AMC7135, które skutecznie zastępują tranzystor MOS na wyjściu, pod końcówkę portu B0 podpinasz +zasilania AMC7135 i w ten sposób sterujesz nim sygnałem PWM

krzycho123 pisze: - próbowałeś zamiast mosfeta dać jakiś mocny NPN
Mało opłacalna sprawa, trudno znaleźć odpowiednio wytrzymały tranzystor bipolarny. Dodatkowym ograniczeniem jest ponadto Ucesat, czyli napięice nasycenia C-E, mające wartość w granicach 0,5V - 1V; czyli względnie dużo w naszych zastosowaniach.
Inną wersję sterowania już Ci wyjaśniłem wyżej.
krzycho123 pisze: - zamierzasz może dodać jakiś tryb migający ? to byłby prawie "komerycyjny" driver ;)
Na początku miałem taki plan, ale stwierdziłem jego znikomą przydatność w moich zastosowaniach, tym nie mniej miejsce jeszcze w pamięci jest.... :wink: Dziś napisałem fragment nadający SOS, ale to chyba tylko jako sprawdzenie, bo nie będę raczej stosował.
Jeśli masz życzenie to określ jaki mrygacz potrzebujesz a coś wymyślimy ;)

: niedziela 13 wrz 2009, 21:53
autor: krzycho_
Pyra , z AMC to już ostatnio wspominałeś . Rozdzielmy te tematy ;)

Co do trana , pytałem ponieważ jak może widziałeś w driverze który nie dawno zmajstrowałem
http://www.swiatelka.pl/viewtopic.php?t ... c&start=15

zastosowałem BC817 który daje max 500mA .

Szukając innych sprzętów natrafiłem na ciekawy BCX68 ,który polecany jest do driverów LED jednak też 500mA ale sądze że w Twoim driverze by działał prawidłowo ?
Pewnie tak samo dobrze jak wspomniany bc817 , chyba żeby chcieć 700mA i więcej w diodę .

Co trybów , jak wykombinowałeś jakiś program z miganiem to możesz się podzielić , sam miałbym problem z tym trybem a mając kod przerobię sobie na własny użytek ;)

Pozdrawiam

: niedziela 13 wrz 2009, 23:20
autor: Volt
krzycho123 pisze:Co trybów , jak wykombinowałeś jakiś program z miganiem to możesz się podzielić
Ja się też przyłączę do tej prośby, bo o ile ze zmianą jasności nie ma problemu to z trybami sekwencyjnymi/migającymi już nie wiem jak obsłużyć np. wyjście z takiego trybu...
Liczę na pomyślne rozpatrzenie wniosku :D :razz:

: niedziela 13 wrz 2009, 23:46
autor: Calineczka
Panowie, naprawdę przesiądźcie się na mosfety, sa idealne do zastosować latarkowych, małe rez. załączenia, wysterowywane napięciowo, moga przełączać duże prądy, idealnie się nimi steruje bezpośrednio z procka.
A Ucesat bipolarnego aż 1V????Ojj, chyba znacznie mniej....

: poniedziałek 14 wrz 2009, 06:23
autor: Pyra
Witam
Oto weług życzenia dodany piąty tryb strobo.
Co pół sekundy zapala diodę na około 0,2s, czyli "szybkie" mrygnięcia.
Nie zapamiętuje trybu strobo, uruchamia się w ostatnio zapamiętanym trybie ciągłym.

Może mało elegancko bo za każdym razem wejścia i wyjścia w tryb strobo dokonuje konfiguracji Timer0 jako PWM lub timer, ale działa ;) Prace trwają...

Pozdrawiam

Oto listing:


Dim A As Byte 'wartość PWM
Dim C As Byte
Dim L As Byte 'wskaźnik trybu
Dim T As Eram Byte 'pamięć trybu


Config Pinb.0 = Output 'wy PWM
Config Pinb.3 = Input 'we sterujące

Config Timer0 = Pwm , Compare A Pwm = Clear Up , Prescale = 1 'konfig PWM

Pwm0a = 0

Set Pinb.3 'podciągnięcie wejścia

L = T 'odczyt trybu startowego

Goto Wlacz 'ustalenie wartości PWM

Pwm: 'sprawdzanie zaniku naięcia

Config Timer0 = Pwm , Compare A Pwm = Clear Up , Prescale = 1 'konfig PWM

Do

Pwm0a = A ' ustawienie wartości komparatora PWM

For C = 1 To 50 'pętla odczekująca na zapis trybu po zmianie

If Pinb.3 = 1 Then Goto Zmiana 'sprawdzenie stanu pinb3

Waitms 4

Next C

If T <> L Then T = L 'zapis trybu do eprom jeśli się zmienił


Loop

Zmiana:
Waitms 2
If Pinb.3 = 0 Then Goto Pwm ' eleminacja dgań styków

L = L + 1
Waitms 30

Wlacz: 'ustalenie wartości pwm dla trybu

If L > 5 Then L = 1 'sprawdzanie zakresu trybów

If L = 1 Then A = 253
If L = 2 Then A = 220
If L = 3 Then A = 140
If L = 4 Then A = 1
If L = 5 Then Goto Strobo

Goto Pwm

Strobo:

Config Timer0 = Timer

Do

Set Portb.0
For C = 1 To 10 'czas załączenia
If Pinb.3 = 1 Then Goto Zmiana
Waitms 1
Next C

Reset Portb.0
For C = 1 To 30 'czas przerwy
If Pinb.3 = 1 Then Goto Zmiana
Waitms 1
Next C

Loop

End

A tu skompilowany plik HEX i BIN

: poniedziałek 14 wrz 2009, 18:49
autor: krzycho_
Pyra , dziś znalazałem w sklepie całkiem niezły według mnie tranzystor to tego driverka :

IRFL 014 - mosfet N-ch 60v i do tego 2,7A :grin:

powinnien być odpowiedni , prąd ograniczę rezystorem do zasilania

tylko powiedz mi jeszcze czy w przypadku zmiany napięcia zasilania na 4,5v zmienić też ten rezystor podciągający tranzystor npn czy to nie ma większego znaczenia na pracę układy ?

PS> dzięki za kod :) pozdrawiam

: poniedziałek 14 wrz 2009, 19:18
autor: Calineczka
krzycho123 pisze:IRFL 014 - mosfet N-ch 60v i do tego 2,7A :grin:
obejrzyj jego charakterystyki
http://www.datasheetcatalog.com/datashe ... L014.shtml
moim zdaniem jako driver led to nie bardzo...

: poniedziałek 14 wrz 2009, 19:23
autor: krzycho_
Calineczka pisze:
krzycho123 pisze:IRFL 014 - mosfet N-ch 60v i do tego 2,7A :grin:
obejrzyj jego charakterystyki
http://www.datasheetcatalog.com/datashe ... L014.shtml
moim zdaniem jako driver led to nie bardzo...
dlaczego , możesz mnie naprowadzić na trop ? :grin: napięcie przewodzenia ?

: poniedziałek 14 wrz 2009, 19:43
autor: Volt
m.in. napięcie załączające bramkę, o ile dobrze widzę w najgorszym przypadku 4V, przy których i tak prąd będzie bardzo mały...

PS. Pyra - dzięki za kod :wink:

: poniedziałek 14 wrz 2009, 19:50
autor: krzycho_
Volt , tzn parametr VGS . Ale według noty min - 2,0v max 4,0v