Tania latarka No Name

co i jak zrobiłem...
Awatar użytkownika
greg
Posty: 3535
Rejestracja: środa 08 paź 2008, 00:16
Lokalizacja: Wrocław
Kontakt:

Post autor: greg »

Może sample zamów, jeśli Ci się zbytnio nie spieszy? Zamawiałem w Vishay SI2312BDS-T1-GE3, przysłali.
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post 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
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post autor: krzycho_ »

Pyra , a PCB drivera też dorzucisz ? :grin:
elektroda.pl
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post 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
Załączniki
sterownik ATtiny13 latarka.rar
(1.17 KiB) Pobrany 53 razy
MAX1797 lambda 16mm.rar
(1.02 KiB) Pobrany 37 razy
STEROWNIK LATARKI V1 bin.rar
(458 Bajtów) Pobrany 28 razy
STEROWNIK LATARKI V1 hex.rar
(636 Bajtów) Pobrany 53 razy
Ostatnio zmieniony środa 01 kwie 2015, 14:30 przez Pyra, łącznie zmieniany 2 razy.
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post 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 ;)
elektroda.pl
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post 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 ;)
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post 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
elektroda.pl
Awatar użytkownika
Volt
Posty: 408
Rejestracja: czwartek 26 mar 2009, 21:40
Lokalizacja: Bydgoszcz/W-wa

Post 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:
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post 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....
Awatar użytkownika
Pyra
Site Admin
Posty: 8527
Rejestracja: niedziela 02 sie 2009, 20:35
Lokalizacja: Gądki

Post 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
Załączniki
Sterownik latarki strobo.rar
(1.2 KiB) Pobrany 22 razy
Ostatnio zmieniony poniedziałek 14 wrz 2009, 22:31 przez Pyra, łącznie zmieniany 1 raz.
Izali miecz godniejszy niżli topór w boju?
Piszmy po polsku, wszak jesteśmy Polakami.
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post 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
elektroda.pl
Awatar użytkownika
Calineczka
Posty: 7578
Rejestracja: niedziela 11 lis 2007, 20:19
Lokalizacja: Wejherowo
Kontakt:

Post 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...
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post 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 ?
elektroda.pl
Awatar użytkownika
Volt
Posty: 408
Rejestracja: czwartek 26 mar 2009, 21:40
Lokalizacja: Bydgoszcz/W-wa

Post 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:
Awatar użytkownika
krzycho_
Posty: 2187
Rejestracja: piątek 08 maja 2009, 18:40
Lokalizacja: Poznań

Post autor: krzycho_ »

Volt , tzn parametr VGS . Ale według noty min - 2,0v max 4,0v
elektroda.pl
ODPOWIEDZ