Skocz do zawartości

Sterownik oświetlenia sufitu LED


mwwojcik

Pomocna odpowiedź

Jest to schemat sterownika iluminacji sufitu LED (ok. 1000 sztuk), publikuję na prośbę kolegi SOYER-a.

Projekt powstał parę lat temu w dwóch celach:

1) zapewnić sterowanie jasnością oświetlenia w sposób przyzwoity (z pilota podczerwieni) czyli płynnie i z zapamiętaniem ostatnio ustawionej wartości w celu przywrócenia po włączeniu zasilania.

2) zachęcić syna do programowania Arduino 🙂

Obydwa cele zostały osiągnięte w sposób zadawalający wg mnie - to znaczy układ od pięciu bodajże lat działa poprawnie, a syn studiuje obecnie informatykę 😉

1574898255_SterownikSufitu_schem.thumb.png.b291f6baddd77bf768290d7262eca3b2.png

Schemat jak widać jest dosyć prosty, ale oczywiście należy się omówienie.

Ze względu na to, że miało to być zaprogramowane w Arduino użyłem procesora Atmega328 z bootloaderem i dorobiłem złącze JP1. Procesor ma typowy zestaw elementów towarzyszących a więc kwarc 16MHz , kondensatory C1 i C2 oraz układ resetu S1, R9, C8 i C9. Nie zaznaczyłem na schemacie ale zasilanie 5V jest zbocznikowane jakimś większym, bodajże 1000uF.

Nie dorysowałem tutaj schematu zasilacza, otóż są dwa - impulsowy 12V / ok 65W zasilający LEDy i transformatorowy (tradycyjny) plus stabilizator 5V do procesora.

Czemu tak? Potrzebowałem ~9V z prostownika aby poprzez wyprostowanie i odfiltrowanie przebiegu z sieci poprzez diodę D1 i kondensator C6 uzyskać informację o zasilaniu sieciowym. Jeśli go zabraknie, to R7 szybko rozładuje C6 i dzięki zwarciu do masy katody diody Shottky'ego D2 uzyskamy stan niski na wyprowadzeniu D11 które akurat tutaj pełni rolę wejścia. Dodatkowo dioda D2 zapobiegnie podaniu zbyt wysokiego napięcia na wejście procesora. Rezystor R8 podciąga to wejście do +5V a C7 filtruje ewentualne zakłócenia które procesor mógłby odczytać błędnie.

Dodatkowo, można programowo wyłączyć 12V więc jego zasilanie powinno być niezależne, inaczej musiałbym kombinować z kluczowaniem tych 12V.

Tranzystor Q1 służy do załączania wiatraka chłodzącego całość, gdyby temperatura zbyt wzrosła - mierzymy ją za pomocą termistora, który tworzy dzielnik napięcia z R2 i doprowadza sygnał do pomiaru na A0. Układ banalny, ale skuteczny - przynajmniej na testach - i z tego co kojarzę jeszcze się w ogóle nie włączył w praktyce 🙂

Samo sterowanie LEDów to dwa MOSFETy mocy odzyskane z płyty głównej, mam dwie sekcje, ale ostatecznie uznaliśmy zgodnie że sterujemy identycznie obie naraz, może w kolejnej wersji coś lepszego wymyślimy.

Odbiornik IR to wyciągnięty ze starego magnetowidu gotowy zintegrowany układ który od razu podaje sygnał na wyprowadzenie D12, sygnalizacja że odbieramy sygnał bądź układ jest w stanie czuwania to dioda czerwona LED sterowana z wyprowadzenia D13.

Ostatnią rzeczą jest sterowanie zasilaniem 12V z wyprowadzenia D2.

Rysunku płytki drukowanej nie ma, bo całość zmontowałem na płytce uniwersalnej jako że powstał jeden egzemplarz i nie spodziewam się ich większej ilości.

Z perspektywy czasu widzę, że układ się sprawdza, pomimo programowania EEPROMu w zasadzie codziennie przynajmniej raz (wyłącznik oświetlenia jest w salonie, więc całość jest regularnie włączana / wyłączana) nie zauważyłem od kilku lat żadnego problemu z zapisem i odczytem pamięci, czyli producent Atmegi nie oszukuje w danych.

Co do programu, to nie jestem jego autorem jak zaznaczyłem powyżej więc nie będę się dzielił - generalnie były dwie wersje i ta druga okazała się na tyle dobra, że służy do dziś i nie ma powodu żeby coś zmieniać.

Układ ekologicznie powstał z wielu elementów odzyskanych stąd nie ma dokładnych oznaczeń tranzystorów ani odbiornika IR. Zasilacz 12V to przerobiony zasilacz komputerowy, całość została zamknięta w uziemionej metalowej obudowie z bardzo starego zasilacza jeszcze typu AT, więc miejsca było wystarczająco na wszystko łącznie z radiatorem.

 

Edytowano przez mwwojcik
literówki
  • Lubię! 1
Link do komentarza
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

Czy mógłbyś rozwinąć ten fragment:

image.thumb.png.f6ac7dda9fcd54f346a7c0c1cb46fcda.png

Oczywiście przeczytałem to:

Dnia 10.12.2021 o 19:43, mwwojcik napisał:

Potrzebowałem ~9V z prostownika aby poprzez wyprostowanie i odfiltrowanie przebiegu z sieci poprzez diodę D1 i kondensator C6 uzyskać informację o zasilaniu sieciowym. Jeśli go zabraknie, to R7 szybko rozładuje C6 i dzięki zwarciu do masy katody diody Shottky'ego D2 uzyskamy stan niski na wyprowadzeniu D11 które akurat tutaj pełni rolę wejścia. Dodatkowo dioda D2 zapobiegnie podaniu zbyt wysokiego napięcia na wejście procesora. Rezystor R8 podciąga to wejście do +5V a C7 filtruje ewentualne zakłócenia które procesor mógłby odczytać błędnie.

Zrozumiałem jak układ działa, ale jaki jest czas odkąd układ wystawi "0" a zanikiem zasilania na 5V? Nie chodzi mi o precyzyjną informację w ms, ale raczej co w tym czasie można zrobić i co robicie. Domyślam, że się w tym momencie mógłby być zapis do EEPROMu, ale zdziwiło mnie to:

Dnia 10.12.2021 o 19:43, mwwojcik napisał:

Z perspektywy czasu widzę, że układ się sprawdza, pomimo programowania EEPROMu w zasadzie codziennie przynajmniej raz (wyłącznik oświetlenia jest w salonie, więc całość jest regularnie włączana / wyłączana) nie zauważyłem od kilku lat żadnego problemu z zapisem i odczytem pamięci, czyli producent Atmegi nie oszukuje w danych.

Więc tam jest robione coś innego, tylko nie wiem co to by mogło być...

Link do komentarza
Share on other sites

Dobrze zrozumiałeś, chodziło mi o wykrycie stanu „0” zanim 5V na procesorze zaniknie. Z tego co testowaliśmy to była jakaś sekunda czy dwie więc wystarcza spokojnie czasu na zapis do EEPROMu. Takie rozwiązanie jest chyba najwygodniejsze i uniwersalne - oczywiście program sprawdza czy powinien zapisać nową wartość i czy już tego nie zrobił. Mam nadzieję ze pomogłem 😎

Link do komentarza
Share on other sites

@mwwojcik chciałbym Ciebie jeszcze chwilkę pomęczyć. Starałem się przez chwilkę zastanowić jak ja bym dobrał elementy tego układu...

Rozumiem, że napięcie ~9V ma amplitudę około 12.6V. Uwzględniając spadek na diodzie D1 napięcie ładowania kondensatora C6 to około 12V. Prąd rozładowania w szczycie to I = 12V/3.3kΩ czyli około 3.6mA. Jako, że jest to prostownik jednopołówkowy to t między szczytami wynosi 20ms. Patrząc na wzór opisujący jak dobrać kondensator filtrujący:

image.thumb.png.2b0b1d64352c1a2eaaaea0590929b8ff.png

Wygląda na to, że różnica napięcia (tętnienia) wyniosą: ΔV = (3.6mA * 0.02s)/10µF = 7.2V Czyli napięcie spadałoby do 12V - 7.2V = 4.8V. Wydaje mi się, że popełniam tu błąd myślowy, bo wychodzę z założenia, że prąd rozładowania będzie stały, ale wraz ze spadkiem napięcia on będzie malał. No i całość i tak musi spaść poniżej 2V aby ATMega uznał, że jest 0. Z drugiej strony, ja bym pewnie zamiast 3.3kΩ włożył 5kΩ. Wtedy największy prąd rozładowania wynosi 2.4mA. I w najgorszym przypadku napięcie spada do 7.2V. Tylko, że nie wiem czy to by było dobrze podejście, bo wydłużam latencję działania całego układu.

 @mwwojcik mógłbyś rozwinąć jak dobierałeś wartość C7. On jest tam na wszelki wypadek, czy były jakieś problemy bez niego? I dlaczego D2 jest diodą Shottky'ego?

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Aż taki skrupulatny nie byłem przyznam szczerze - kondensator dodałem na wszelki wypadek bo wolałem uniknąć niespodzianek a co do pozostałych elementów to oparłem się na wyczuciu więc jeśli chcesz skorygować to zapewne masz rację.

Dioda shottkyego zapewnia nam to, że stan niski na pewno zostanie dobrze odczytany, obawiałem się ze te ok 0,7 V spadku typowych dla diody krzemowej może stwarzać problemy. Znów, raczej wyczucie niż staranne obliczenia, ponieważ układ zadziałał i działa nadal nie uznałem za stosowne go korygować ale biorąc pod uwagę co piszesz przy kolejnej wersji przyglądnę się temu dokładniej 😎

dzięki!

  • Lubię! 1
Link do komentarza
Share on other sites

15 godzin temu, pmochocki napisał:

Praktyka vs teoria. Doświadczenie i intuicja vs karta papieru i wzory. Ja już stary jestem i mało czasu zostało na zbieranie doświadczenia, ale może jeszcze dam radę 😉

Popatrz na mój wiek i nie marudź 🙂 ja wciąż cieszę się czasem który mam - nie wiem ile go będzie...

Jeśli tylko chcesz to i doświadczenie zbierzesz i teorii na pewno się nauczysz, trzeba korzystać z możliwości jakie teraz się pojawiły. Dasz radę na pewno jeszcze niejedno zdziałać!

  • Lubię! 1
Link do komentarza
Share on other sites

9 minut temu, mwwojcik napisał:

Popatrz na mój wiek i nie marudź 🙂

No wiesz ja nie jestem dużo młodszy. Chyba nie zacząłeś zbierać doświadczenia w wieku 40 lat. 

Ale tak ostatni miesiąc był świetny. Udało się znaleźć czas i pobawić się trochę elektroniką. 

Link do komentarza
Share on other sites

22 godziny temu, ethanak napisał:

Pozwól że pominę to stwierdzenie znaczącym milczeniem 🙂

 

🙂 ano właśnie.

Co do zbierania doświadczenia, to mocno po 40-tce zacząłem drukowanie 3D i Arduino - mam jeszcze w planach wzmacniacze lampowe 😉

Projekt o którym tutaj temat zacząłem trwał kilka lat - zaczęło się od lutowania i montażu LEDów na suficie, jak już wszystko zostało zrobione i zaświeciło pojawiła się potrzeba sterowania tym za pomocą mikrokontrolera, moje doświadczenie z '51 i asemblerem było na tyle traumatyczne a czasy zmieniły się na lepsze że wybór padł na Arduino. Najważniejsze to mieć czas i miejsce na zabawy.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

1 godzinę temu, mwwojcik napisał:
23 godziny temu, ethanak napisał:

Pozwól że pominę to stwierdzenie znaczącym milczeniem 🙂

 

🙂 ano właśnie.

Dziękuję poczułem się młody 😉

1 godzinę temu, mwwojcik napisał:

moje doświadczenie z '51 i asemblerem było na tyle traumatyczne a czasy zmieniły się na lepsze że wybór padł na Arduino.

Tak rozumiem - pamiętam czasy jak pisałem w asm'ie na '51. Potem przerzuciłem się na AVRy i pisanie w C - to tez odmieniło moje życie. A potem było 10 lat przerwy.

1 godzinę temu, mwwojcik napisał:

Najważniejsze to mieć czas i miejsce na zabawy.

Nie mam ani jednego, ani drugiego. Ale staram się to zmienić.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.