poniedziałek, 28 października 2013

Sterownik oświetlenia schodów na ATMEGA328P

EDIT: Po 10 latach powstała nowa wersja płytki. Możesz też kupić gotowe PCB nowej wersji, i zbudować sterownik samemu. Więcej szczegółów w tym wpisie: Sterownik oświetlenia schodów. Ciąg dalszy po prawie 10 latach :)

Jakiś czas temu natrafiłem na youtube na film, który pokazywał oświetlenie schodów za pomocą taśm LED. Spodobało mi się i stwierdziłem że w nowo budowanym domu też chcę coś takiego. Niestety autor filmu nie podał schematu, ani żadnych wskazówek. Trzeba zatem wymyślić coś samemu.

Zasada działania jest następująca:
Każdy stopień ma podklejoną około metrową taśmę LED. Do sterowania służą trzy włączniki dzwonkowe - jeden na górze, jeden na półpiętrze, jeden na dole.
Wciśnięcie przycisku na dole spowoduje płynne zapalanie się taśm od dołu do góry. Pojedyncze taśmy również powinny zapalać się płynnie, a nie na zasadzie stanu 0/1.
Po zapaleniu się taśm na wszystkich stopniach światło powinno palić się określoną ilość czasu (np minutę), po tym czasie stopnie powinny same płynnie się wygasić również od dołu do góry.

Układ powinien analogicznie zachowywać się po wciśnięciu przycisku na górze, z tym że kolejność zapalania i gaszenia stopni powinna być odwrotna - od góry do dołu. Przycisk na półpiętrze ma zapalać stopnie jednocześnie i w górę i w dół rozpoczynając od środka (w uproszczeniu - realnie będzie 5 stopni w górę a 13 w dół).

Jako że ostatnio trochę bawiłem się z Arduino stwierdziłem że będzie to dobry początek projektu.

Płynne rozjaśnianie można osiągnąć wykorzystując kanały typu PWM (Pulse Width Modulation).
Arduino UNO którym dysponowałem posiada jedynie 6 wyjść PWM. Do projektu potrzebowałem co najmniej 18.

Natrafiłem na układ TLC5940, który w bardzo prosty sposób można podłączyć do arduino. Poświęcając jedynie 5 cyfrowych pinów otrzymujemy 16 kanałów PWM, którymi możemy dowolnie sterować. Dodatkowo układy TLC5940 można łączyć ze sobą otrzymując kolejne kanały. Mnie wystarczyło połączenie dwóch układów. Dało mi to 32 kanały PWM, czyli dużo więcej niż potrzebowałem.

Dokładny opis i sposób połączenia arduino z TLC5940 można znaleźć na stronie

http://starter-kit.nettigo.pl/2012/01/tlc5940-czyli-co-najmniej-16-dodatkowych-pinow-pwm-w-arduino/

Złożenie układu na zwykłych diodach jest stosunkowo proste. Mogą działać na napięciu 5V, które standardowo mamy na wyjściach arduino.
Problem pojawia się gdy chcemy podłączyć taśmy LED, które do działania potrzebują napięcia 12V i sporo większego prądu, niż ten który arduino jest w stanie zapewnić. W tym przypadku do zasilania taśm będzie potrzebny odrębny zasilacz - 12V. Dodatkowo aby wysterować poszczególne taśmy niskim napięciem potrzebujemy tranzystorów oraz rezystorów podciągających ponieważ wyjścia układu TLC5940 są typu “otwarty kolektor” i przekazują tylko albo stan niski, albo nieustalony.

Nie pozostało zatem nic innego jak złożenie prototypu na zwykłych diodach LED - na początek na jednym układzie TLC5940:

Jak widać, działa całkiem sprawnie.

Po wstępnym sukcesie ze zwykłymi diodami zbudowałem prototyp już z taśmami LED. Tu już potrzebny był większy prąd. Do zasilania wykorzystałem zasilacz ATX przerobiony na zasilacz warsztatowy :)

Działało pięknie, ale podłączenie takiego "pająka" z przewodów do schodów byłoby mało praktyczne. Jedyną sensowną opcją było pozbycie się arduino i zbudowanie całego układu na jednej płytce drukowanej.  Trzeba przyznać że było to dla mnie spore wyzwanie. Był to mój pierwszy w życiu układ tego typu. Przerobiłem kilka tutoriali do Eagle'a w którym tworzyłem schemat i płytkę. W międzyczasie pojawiło się sporo innych problemów - chociażby zrobienie reduktora napięcia z 12V zasilających cały układ do 5V wymaganych przez ATMEGA328P i TLC5940. Wyzwaniem okazało się też zaprogramowanie ATMEGI. Kupiłem układy bez wgranego bootloadera co również okazało się dodatkową komplikacją. Ostatecznie stanęło na tym że wykorzystałem programator USBasp, do którego przygotowałem specjalną płytkę z podstawką pod ATMEGę dzięki którym teraz dość prosto mogę wgrywać zarówno bootloader jak i program docelowy (swoją drogą to chyba temat na odrębny wpis na blogu, ponieważ znalezienie kompletnych informacji na ten temat graniczy z cudem).


Poświęciłem sporo czasu zanim udało mi się osiągnąć w miarę sensowny wynik końcowy. W każdym razie oto rezultat:



Płytkę robiłem tzw. "metodą żelazkową", też pierwszy raz w życiu. Udało się za czwartym podejściem :D. Nie jest to cud techniki, pewnie elektronicy puryści będą na to patrzeć z lekkim ironicznym uśmiechem, ale jako że to mój pierwszy w życiu układ tego typu, jestem z niego dumny :).
Dom jeszcze nie jest gotowy, więc nie mogę zainstalować w miejscu docelowym. Jak tylko się uda, nie omieszkam podzielić się rezultatem :)

Jeśli ktoś chciałby odtworzyć taki układ, poniżej przedstawiam schemat elektroniczny, schemat płytki drukowanej, oraz kod źródłowy.
Kod jest w wersji roboczej, chwilowo na zasadzie "proof of concept". Docelowy kod powstanie już gdy układ zostanie zamontowany "produkcyjnie". Myślę że nie ma sensu dokładniejszego opisywania schematu. Jeśli ktoś będzie zainteresowany szczegółami, zapraszam do komentowania.


EDIT:

Wynik działania można zobaczyć tutaj: http://technika-laika.blogspot.com/2014/09/sterownik-oswietlenia-schodow-na.html

33 komentarze:

  1. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  2. Witam super projekt właśnie takiego szukam do wykonania mógłby kolega podesłać prorekt w aegle płytki i wsadem pozdrawiam Tomek

    OdpowiedzUsuń
  3. witam mam pytanie dlaczego nie moge wysłac programu na mojego arduido cały czas wyswietla sie bład tlc.init(); a na dole mam taki bład 'tlc' was not declared in this scope. Dopiero zaczynam sie tym bawic wiec prosze o wyrozumiałosc

    OdpowiedzUsuń
  4. Witam.

    Chciałbym zbudować taki sam projekt. Czy byłaby możliwość wysłania pliku z eagla lub schematu płytki do wydrukowania i wytrawienia? Jeśli jest możliwość to proszę o kontakt mateuszlis1988@gmail.com

    Pozdrawiam

    OdpowiedzUsuń
  5. Witam,
    podoba mi sie to co zrobiles ale z tego co zauwazylem TLC5940 oraz Ethernet shield korzystaja z tych samych wyjsc SPI, czy to oznacza, ze tych dwoch rozwiazan nie da sie ze soba polaczyc i uzytkowac jednoczesnie? czy cos z tym juz robiles?
    Pozdrawiam

    OdpowiedzUsuń
  6. Cześć wszystkim.
    Zainteresowałem się tematem i po kilku godzinach stworzyłem klon projektu autora ale obawiam się, że bardzo nieudolny.. pierwszy raz widziałem na oczy soft Eagle. Wrzucam swoje wypociny, może ktoś bardziej ogarnięty rzuci okiem i ewentualnie wprowadzi poprawki.
    Link do projektu Eagle: http://przeklej.org/file/HPRzuo/LED.rar
    Martwi mnie, że po wybraniu Autoroute zaprojektowana płytka wygląda zupełnie inaczej pomijając kwestę rozmieszczenia elementów. Być może autor dopomoże :D

    OdpowiedzUsuń
    Odpowiedzi
    1. Ciąg dalszy jest pod adresem: http://technika-laika.blogspot.com/2014/09/sterownik-oswietlenia-schodow-na.html

      Tam też załączę pliki eagle

      Usuń
  7. Tylko niepotrzebne wykorzystanie urządzeń peryferyjnych (TLC5940) atmega 328 ma 22 wyjscia które bez większych wypocin obsłuży programowy PWM gdy każdy kanał jest osobno załączany i gaszony

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja zaproponowałem takie rozwiązanie, nikogo do niego na siłę nie zmuszam :). Nigdy nie mówiłem że jest jedyne i słuszne. Zawsze może Pan przedstawić swoje...

      Usuń
  8. Bardzo fajna instrukcja ja tez mam takie oświetlenie z tym, że mnie Pan w sklepie led-technik.com.pl wyperswadował wcześniejszy pomysł z halogenami i powiedział że taśma będzie lepsza. W sumie wyszło fajnie więc chyba miał rację =)

    OdpowiedzUsuń
  9. Pytanie do zaliczone plytkk pcb. Gdzie są polaczenia do masy?

    OdpowiedzUsuń
    Odpowiedzi
    1. W eagle trzeba jeszcze płytkę "oblać masą" przed wydrukowaniem

      Usuń
  10. Czy jest możliwość zobaczenia zdjęcia tej płytki z drugiej strony ?

    OdpowiedzUsuń
    Odpowiedzi
    1. Obecnie niestety nie, bo jest "produkcyjnie" zamontowana i zamknięta w obudowie

      Usuń
    2. Rozumiem, a więc mam pytanie. Czy mógłbyś mi wytłumaczyć jak mają być zamontowane rezystory, które są chyba zmostkowane tj. RN1, RN2, RN3 bo nie bardzo rozumiem to ze schematu ;/ A jeżeli nie wytłumaczyć to wskacać jak mam je lutować w które piny ?

      Usuń
    3. To rezystory drabinkowe. Wyszukaj w google jak wyglądają, wtedy odpowiedź nasunie się sama :)

      Usuń
  11. Witam. Ma ktoś schemat jak podłączyć pod arduino? Jestem początkującym podpiłem wg schematów do TLC5940 który podał autor ale nie wiem czy to jest ok i nie wiem gdzie i jak umiejscowić przyciski włączające. Narazie wykonuje na płytce prototypowej.
    Pozdrawiam

    OdpowiedzUsuń
  12. Witam BARDZO MI SIĘ PODOBA!!! super projekt właśnie takiego szukam do wykonania mógłby kolega podesłać prorekt w aegle płytki i wsadem pozdrawiam
    glogus6@wp.pl

    OdpowiedzUsuń
  13. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  14. Fajne i przydatne to informacje dla osób lubiących majsterkować i mających pojęcie o programowaniu. Jednak można skorzystać z gotowych rozwiązań i oświetlenie schodowe https://interblue.pl/oswietlenie-schodowe,c,110 możemy rozwiązać w odpowiednio prostszy sposób.

    OdpowiedzUsuń
  15. 839/5000
    Bardzo podobało mi się również oświetlenie schodów za pomocą pasków LED i szukałem rozwiązań, zarówno schematów, jak i gotowych systemów. Tutaj znalazłem kilka pomysłów.

    OdpowiedzUsuń
  16. Witam. Ma Pan projekt płytki na Pdf?

    OdpowiedzUsuń
  17. Witam, jest szansa kupić u pana gotową płytkę tak bym mógł u siebie spiąć ją z arduino i odpalić ? Nie jestem elektronikiem, z programowaniem sobie poradzę ale fizycznie nie wykonam płytki.

    OdpowiedzUsuń
  18. Ogólnie samo oświetlenie schodów jest bardzo fajne, ale wszystkie takie elementy niestety generują kolejne koszta za energię. Dlatego ja przede wszystkim zdecydowałem się na zmianę operatora na https://poprostuenergia.pl/ aby móc bez problemu zmniejszyć swoje opłaty za prąd.

    OdpowiedzUsuń
  19. Cześć, mam kilka pytań co do projektu, ponieważ sam chciałbym zrobić podobny u siebie.
    Jeśli możesz, napisz do mnie e-mail: klodzinski.marcin@gmail.com

    OdpowiedzUsuń
  20. Bardzo ciekawie to zostało opisane.

    OdpowiedzUsuń
  21. Z tego co mi wiadomo to najlepiej sprawdza się na pewno oświetlenie LED. Ja sam również chętnie z niego korzystam i muszę powiedzieć, że działa świetnie. Bardzo chętnie taśmy LED i inne sprzęty zamawiam ze sklepu https://sklep.neonica.pl/ gdyż zależy mi na jakości.

    OdpowiedzUsuń
  22. Naprawdę bardzo fajnie napisano. Jestem pod wrażeniem.

    OdpowiedzUsuń
  23. Podchodzę do tematu i stworzenia takiego sterownika ale w wersji SMD i upchnięcia tego w obudowie na szynie DIN.
    Jakie diody schottkiego są zastosowane w układzie? Czy IRF510 zamiast 512 będzie ok? Zakładam, że rezystory 1/8W będą wystarczające.

    OdpowiedzUsuń
  24. Akurat całkowicie się na tym nie znam więc również nie bardzo mogę się na ten temat wypowiedzieć. Natomiast w moim przypadku bardzo fajnym rozwiązaniem jest zawsze korzystanie z oferty elektryka https://wzu-energpol.pl/oferta/ i całość prac on u mnie właśnie wykonuje.

    OdpowiedzUsuń
  25. Bardzo fajnie opisane. Myślę, że taśmy led nadają się idealnie do oświetlania schodów. To bardzo praktyczne rozwiązanie, które fantastycznie wygląda.
    https://optoplast.pl/15-tasmy-led

    OdpowiedzUsuń
  26. Niestety na samych pracach elektrycznych ja się nie znam i również raczej samodzielnie się nie zabieram za nie. Akurat ja jestem zdania, że bardzo ważną kwestią jest to aby wiedzieć również, że jak coś to elektryk https://elektryk-wroclaw.pl/ na tych pracach się zna.

    OdpowiedzUsuń
  27. No dobrze dobrze. A czy wiecie w ogóle, jak obniżyć koszty za energię elektryczną? Na stronie tani-prad-dla-firm.pl możecie składać wniosek o tańszy prąd i z tego co wiem ta opcja jest mega opłacalna. Sama planuję na nią się zdecydować...

    OdpowiedzUsuń