
Witam
Dziś pragnę wam przedstawić kolejny mini projekt.
Tym razem jest to stroboskop LED i nie tylko.








Oto link do prezentacji: http://youtu.be/jdDlzm1kx9g
Mając na myśli to, że jest to kolejny projekt DIY postanowiłem wszystko wykonać ręcznie aby każdy użytkownik mógł to powtórzyć przy pomocy zwykłego pisaka odpornego na wytrawianie.
Współczesna technologia często zniechęca młodocianych konstruktorów do samodzielnych prac domowych ze względu na złożoną miniaturyzację oraz olbrzymie dziury w polskiej edukacji, (wszelkie spolszczenia w dokumentacji) dlatego postanowiłem zaprezentować projekt zrealizowany w polskim środowisku programistycznym VAMGRAF.
Program został skompilowany na ATmega168 w wersji THT (montaż przewlekany) zainstalowany na PCB ręcznie wykonanej od przysłowiowego brzeszczota do cięcia metalu.
A teraz kilka słów na temat samego urządzenia:
1) Obsługa wentylatora.
Możliwość dołączenia wentylatora chłodzącego radiator w przypadku większej ilości wydzielanego ciepła przez dynamiczny stabilizator napięcia LED.
Moc wentylatora jest sterowana wypełnieniem PWM w funkcji temperatury odczytywanej przez ATmega168 z cyfrowego czujnika DS18b20 umieszczonego na radiatorze.
Załączenie wentylatora następuje przy przekroczeniu temperatury 45°C. (40 % wypełnienia mocy PWM)
Moc wentylatora wzrasta wraz z temperaturą osiągając maksymalną wartość przy 60°C
2) Zabezpieczenie termiczne.
W przypadku braku wentylatora, bądź niewydolności układu chłodzenia moc LED będzie stopniowo ograniczana wraz ze wzrostem temperatury w zakresie od 63°C co 73°C w celu uzyskania równowagi zdolności oddawania ciepła.
3) Kontrola obecności czujnika DS18b20
W przypadku braku czujnika bądź jego uszkodzenia, urządzenie zostanie zablokowywane czego potwierdzeniem będzie migająca dioda statusu. (wszelkie operacje z pilota IR zostaną zabronione)
4) Zabezpieczenie przetężeniowe.
Zabezpieczenie jest realizowane na dwa sposoby:
- hardwarowe > pomiar prądu LED (ograniczenie max prądu)
- Softwarowe > odczyt tzw. kontrolki stanu logicznego hardware, oraz wyłączenie mocy.
W programie zamieściłem kompensację pulsacji stanu logicznego wynikającą ze stabilizacji źródła prądowego w czasie zwarcia, bądź przeciążenia.
Potwierdzeniem wyzwolenia zabezpieczenia prądowego będzie świecąca dioda statusu. (wszelkie operacje z pilota IR zostaną zabronione)
5) Softwarowa kompensacja filtra RC
W układzie wykonawczym jako referencyjne źródło odniesienia dla napięciowego drivera LED jest filtr RC ograniczający zjawisko stroboskopowe związane z wypełnieniem PWM.
Ten filtr nie jest wymagany aczkolwiek poprawia jakość takiego urządzenia.
Kompensacja pozwala osiągnąć odpowiednie wyprzedzenia dla stałej czasowej filtra.
6) Edycja w tle
Edycja wybranej funkcji nie ma wpływu na wykonywaną funkcję. (wyjątek stanowi edycja funkcji która jest już realizowana. Po zakończeniu takiej edycji funkcja przyjmie nowe wartości )
7) Software cross
Algorytm zabezpieczający przed błędem wyznaczeniem mocy maksymalnej i minimalnej. (dotyczy funkcji od 7-9 oraz przycisk OK)
8 ) Menu
Odnoszę się do przycisków pilota IR od monitora LG
Każdorazowo dioda funkcyjna potwierdza wybór przycisku w trakcie jego trzymania.
> 1-3 Stroboskop LED
> 4-6 Migotka LED
> 7-9 Pulsacyjne światło LED
> Przycisk OK Rozjaśnianie / przyciemnianie
9) Programowanie
Odnoszę się do przycisków pilota IR do monitora LG przedstawionego na tym zdjęciu

-Klawisz niebieski wejście do edycji programowania. Dioda funkcyjna świeci ciągłym światłem, wybór kolejnego przycisku spowoduje chwilowe zgaszenie w trakcie jego trzymania . (po zakończeniu edycji dioda zgaśnie )
- Klawisz czerwony wyjcie z edycji programowania w przypadku krótkiego naciśnięcia (czas mniejszy od 3s)
- Klawisz PWR wyjście z edycji z jednoczesny zakończeniem bieżącego efektu o ile był on realizowany w trakcie trwania tej operacji.
Uwaga!
W trakcie edycji wybraną funkcję definiujemy wpisując z pilota IR kod jej wartosci będący pięciocyfrową liczbą.
*---- Pierwsza cyfra kodu
> wybór funkcji (przyciski 1-9 oraz przycisk OK)
-*--- Druga cyfra kodu (przyciski 1-9)
> przyciski od 1-3 > wartość maksymalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
> przyciski od 4-6 > wartość maksymalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
> przyciski od 7-9 > wartość maksymalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
> przycisk OK > wartość maksymalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
--*-- Trzecia cyfra kodu (przyciski 1-9)
> przyciski od 1-3 > ilość impulsów (błysków 20ms) w serii
> przyciski od 4-6 > ilość okresów w serii
> przyciski od 7-9 > czas zrzutu mocy 0,8s, 1,2s, 1,6s, 2s, 2,4s 2,8s 3,2s, 3,6s, 4s, Wartości przybliżone
> przycisk OK > czas zrzutu mocy 0,8s, 1,2s, 1,6s, 2s, 2,4s 2,8s 3,2s, 3,6s, 4s, Wartości przybliżone
---*- Czwarta cyfra kodu (przyciski 1-9)
> przyciski od 1-3 > czas przerwy pomiędzy impulsami 40ms, 100ms, 120ms, 160ms, 200ms, 500ms, 1s, 1,5s, 3s
> przyciski od 4-6 > czas 1/2 okresu 100ms, 160ms, 250ms, 360ms, 500ms, 1s, 1,5s, 2s, 2,5s
> przyciski od 7-9 > czas naboru mocy 0,8s, 1,2s, 1,6s, 2s, 2,4s 2,8s 3,2s, 3,6s, 4s, Wartości przybliżone
> przycisk OK > czas naboru mocy 0,8s, 1,2s, 1,6s, 2s, 2,4s 2,8s 3,2s, 3,6s, 4s, Wartości przybliżone
----* Piąta cyfra kodu (przyciski 1-9)
> przyciski od 1-3 > czas przerwy pomiędzy seriami 40ms, 100ms, 120ms, 160ms, 200ms, 500ms, 1s, 1,5s, 3s
> przyciski od 4-6 > czas przerwy pomiędzy seriami 100ms, 160ms, 250ms, 360ms, 500ms, 1s, 1,5s, 2s, 2,5s
> przyciski od 7-9 > wartość minimalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
> przycisk OK > wartość minimalnej mocy 47%, 51%, 55%, 59%, 63%, 67%, 71%, 75%, 79% (przeliczonej na 5V)
Uwaga:
Wszelkie zmiany wprowadzone przez użytkownika zostaną utracone wraz z utratą zasilania.
Po ponownym uruchomieniu urządzenia zostaną wprowadzone ustawienia zadeklarowane jako wartości zerowe (zerowanie pamięci EEP) bądź inne śmieci będące pozostałością z poprzednich kompilacji innego oprogramowania wykorzystującego pamieć EEP...
Uwaga!
Aby nie utracić wprowadzonych zmian w edytowanych funkcjach, należy przytrzymać przez 3s czerwony przycisk
czego potwierdzeniem będzie zapalenie diody funkcyjnej. (zapis wartości do pamięci EEP)
W razie jakiś dodatkowych pytań postaram się udzielić odpowiedzi.

Edit: Mała zmiana kolorków, bo poprzednie były mało czytelne.
Pajączek