wtorek, 23 września 2014

Sterownik oświetlenia schodów na ATMEGA328P - wdrożenie produkcyjne

Ostatnio bardzo dużo się u mnie działo w temacie przeprowadzki do nowego domu, przez co niestety zaniedbałem trochę bloga. Mam jednak nadzieję że teraz znajdę trochę więcej czasu na nowe wpisy. Udało się produkcyjnie odpalić sterowanie oświetleniem za pomocą arduino i OpenHab. Wrażeniami z tego rozwiązania podzielę się jednak w kolejnych wpisach.
Dzisiaj chciałem pochwalić się działaniem sterownika oświetlenia schodów, o którym pisałem jakiś czas temu. Płytka leżała sobie od tego czasu w szufladzie i czekała aż schody będą gotowe.
Teraz już mogę pokazać końcowy rezultat. Warstwa sprzętowa pozostała bez zmian. Gruntownie zostało zmienione oprogramowanie. Wcześniejsza wersja nie przyjmowała żadnych sygnałów w trakcie zapalania / gaszenia oświetlenia. Obecnie nie ma już tego ograniczenia.
W projektach tego typu świetne jest to, że mając jedno rozwiązanie sprzętowe można zmieniać działanie układu jedynie modyfikując oprogramowanie układu ATMEGA.
Przykładowo - w trakcie korzystania z oświetlenia pojawiła się potrzeba zapalania światła na stałe, bez automatycznego gaszenia. W prosty sposób udało się osiągnąć efekt jedynie zmieniając program.
Fajne... :)



Jeśli macie jakieś pytania lub uwagi, piszcie w komentarzach
Pod tym adresem znajdziecie pliki Eagle ze schematem i płytką (pamiętajcie że płytkę trzeba "oblać masą" przed wydrukiem):

https://drive.google.com/file/d/0BzJpXXOh01BRcTc4YXRyOUJnR00/view?usp=sharing
EDIT: Załączam aktualny kod źródłowy:

144 komentarze:

  1. No i gdzie mój komentarz!? Napisałem, że czaderskie!

    OdpowiedzUsuń
  2. Super gratulacje niezła robota !

    Mógł byś zamieścić oprogramowanie do atmegi gdyż na twój wzór zrobiłem podobny który już działa i spisuje się rewelacyjnie .Dzięki

    Pozdrawiam

    OdpowiedzUsuń
  3. Super sprawa - czekam na opis :)

    OdpowiedzUsuń
  4. Mógłbyś jeszcze umieścić kod źródłowy pliku "ClickButton.h" ??

    OdpowiedzUsuń
    Odpowiedzi
    1. To biblioteka: https://code.google.com/p/clickbutton/

      Usuń
  5. 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 hipek189@gmail.com z góry Dziękuje

    OdpowiedzUsuń
  6. a ja mam pytanie apropo oswietlania ktorego uzyles? to jakies paski led czy co to jest i jak jest to podlaczone?

    OdpowiedzUsuń
  7. Super to wymysliles, Ale brakuje mi jeszcze wyjscia na przekaznik odcinajacy zasilanie jak schody sa wylaczone. Ja u siebie planuje zrobic podobnie ale z wyjsciem na przekaznik i kontroler pozostanie z Arduino.
    Dlaczego? 1W mocy to rocznie 8.8kWh czyli ok 5PLN
    kontroler to tylko 1-1.5W ale zasilacz to 10W+ a do tego garsc tranzystorow to juz calkiem sporo.
    Schody swieca sie tylko "przejsciowo" wiec marnowanie takiej energii na samo standby to dla mnie nieprzyzwoicie za duzo.
    Co o tym myslisz?
    pozdrawiam

    OdpowiedzUsuń
  8. Masz rację, tylko że zasilacz do którego mam podpięty sterownik wykorzystuję jednocześnie do innych układów które muszą być stale zasilane, więc u mnie takie rozwiązanie się nie sprawdzi

    OdpowiedzUsuń
  9. no dobrze,
    ale te tranzystory sie tez grzeja na standby a schody pala sie na dobe jakies ok 10 minut.
    I tak caly rok na okraglo, nie boisz sie ze beda sie zbyt szybko 'palic'?
    A 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?

    OdpowiedzUsuń
  10. Tranzystory są dość wytrzymałe. Nie zauważyłem żadnego przegrzewania, więc powinny działać dość długo. Nie pamiętam już dokładnie jak jest z TLC, ale czy nie da się przepiąć go na inne PIN'y?

    OdpowiedzUsuń
  11. rozumiem, ze zasilanie 5V do kontrolerow/arduino tez bierzesz z tego samego zasilacza.
    Pytam bo chcialbym zrobic inteligentne oswietlenie w domu na jednym kontrolerze ale:
    -potrzebuje 96 wyjsc na przekazniki lub tranzystory/triaki
    -ok 120 wejsc na przyciski (96 na kazdy + grupowce)
    u ciebie same schody to 18 obwodow.
    z tego co wiem to TLC obsluguje tylko wyjscia ale nie jestem pewny czy nie konfliktuje sie z ethernet shieldem a z kolei np PCF8574 tylko do 64 I/O a PCF8575 do 128 wejsc/wyjsc ale to i tak malo.
    zatem planuje polaczyc TLC + PCF + Ethernet.
    Jakys byl w stanie u siebie zrobic sterowanie schodami przez internet to by mi pomoglo.
    Jakbys chcial cos zrobic wspolnie to sie polecam.
    pzdr

    OdpowiedzUsuń
  12. Witam
    Jestem początkującym w programowaniu mikrokontrolerów i chciałem wykorzystać twój kod w moim projekcie. I tu pojawiły się schody :) chodzi o to która część kodu decyduje o tym ile zaświeci się schodów w dół a ile w górę po naciśnięciu klawisza na półpiętrze. Mam inny układ schodów 8 do półpiętra i 7 od półpiętra w górę i nie mogę tego ogarnąć.
    Pzdr

    OdpowiedzUsuń
    Odpowiedzi
    1. Zmienna midStep (ustawiona na 13) określa który schodek licząc od dołu wypada na półpiętrze

      Usuń
    2. Dzięki wielkie za ekspresową odpowiedź, zachęciłeś mnie do dalszych zmagań. Pozostało mi tylko czekać na Tlc5940 z china
      ciekawy blog, będę częściej zaglądał

      Usuń
  13. Witam

    Super to wygląda. U mnie schody i kabelki już są, także powoli zabieram się za montaż. Co do opcji dodatkowych to może załączanie na stałe oświetlenia pierwszego i ostatniego stopnia na np. 20-40% mocy. Jako takie oświetlenie nawigacyjne co by w nocy trafić do schodów. Czy zastosowałeś tranzystor IRF 512 czy jakiś inny? Ile diod na metr jest w taśmie którą zastosowałeś? Czy mógłbyś wysłać plik eagla na e_tomi@tlen.pl. Z góry dziękuję

    OdpowiedzUsuń
    Odpowiedzi
    1. Witam

      Czy mógłbyś podesłać plik eagla? Z góry dziękuję za odpowiedź

      Usuń
    2. Jest załączony do wpisu :)

      Usuń
    3. Już doczytałem, że plik jest zamieszczony. Pozdrawiam

      Usuń
  14. Witam czy mogę prosić o wzur płytki drukowanej i pliku hex do atmegi na marcin94_1981@o2.pl
    Dziękuje

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

    OdpowiedzUsuń
  16. Świetny projekt,przymierzam się do zmiany swojego dotychczasowego sterownika na taki jak Twój,próbowałem wkleić kod do arduino ale sypie błędami,czy masz może plik w pde?Pozdrawiam!

    OdpowiedzUsuń
    Odpowiedzi
    1. Pliku pde niestety nie mam. Kod jest kompletny, więc powinien się kompilować. Być może nie masz dogranych bibliotek do arduino?

      Usuń
  17. Zgadza się problem tkwił w bibliotekach,dzięki za podpowiedź.Jeśli mógłbym to poproszę o plik eagla na quadrokopter1@gmail.com.Dziękuję.

    OdpowiedzUsuń
  18. Witam jakich bibliotek uzyłes

    OdpowiedzUsuń
  19. Witam czy mogę prosić o wzur płytki drukowanej i pliku hex do atmegi na filipowski.jacek451@gmail.com .Dziękuje

    OdpowiedzUsuń
  20. Witam czy zamiast irf512 mogą być inne tranzystory?

    OdpowiedzUsuń
  21. witam po wgraniu kodu do płytki arduino diody świecą potem gasną i znowu się zapalają i tak zostaje a powinno być odwrotnie proszę o pomoc.

    OdpowiedzUsuń
    Odpowiedzi
    1. To wina źle podłączonych diod. Katody podłączamy do masy, anody do wyjścia TLC i pomiędzy wyjściem TLC a plusem zasilania rezystor.

      Usuń
  22. Witam,

    niestety nie wiem w jaki sposób mógłbym pomóc bez dostępu do płytki... Schemat i kod na pewną są ok. Kilka osób już robiło wg tego i układ działał poprawnie...

    OdpowiedzUsuń
  23. Witam.projekt super. Wykonałem ten sterownik i niby wszystko fajnie tylko niem czemu zapalanie diod odbywa się co jakieś 1,5 sekundy a wygaszanie przez około minute,nie wiem co mogłem zrobić nie tak.Proszę o pomoc

    OdpowiedzUsuń
    Odpowiedzi
    1. Czasy załączania i wygaszania dla poszczególnych sekcji są zdefiniowane zdaje się zmiennymi STEP w kodzie źródłowym

      Usuń
    2. Mogłeś nie ustawić dla atmegi taktowania na zewnętrzny oscylator 16MHz. A pracuje ona na wewnętrznym 1MHz lub np. 8MHz

      Usuń
  24. Czy mógłbyś podać źródło tych irf512?Ewentualnie jakie zastosować zamienniki?Dziękuję i pozdrawiam!

    OdpowiedzUsuń
    Odpowiedzi
    1. Zastosowałem IRF520, testy przeszły pozytywnie ;)

      Usuń
  25. a Ja mam pytanie widzę, że na płytce są otwory pod montaż, czy stosowałeś jakieś pudełko z gotowych czy tak poprostu, jeśli z gotowych to poproszę o link do pudełka
    Projekt rewelacyjny, też chce cos takiego zrobić u siebie Tylko muszę przekonać żonę, bo wiąże się to z bałaganem (kuciem ściany itp...i tak ja będę sprzątał)
    Pozdrawiam ...

    OdpowiedzUsuń
  26. Witam, jestem fanem tak użytecznych projektów, można zapytać o dokładną listę potrzebnych części żeby to skleić ? Napewno 2 x TLC5940(po 16x pwm na 1 kości), Arduino, Zasilacz 12v, Płytki Stykowe, tranzystory x ilość taśm (IRF520N ?), kondensatory (jakie ?), przewody połączeniowe, rezystory (ile ohm?), stabilizator napięcia 5v (jakiś model/nr?). Wtedy to skleje i będę mógł zastosować u siebie w domu. Dzięki :)

    OdpowiedzUsuń
  27. Autorze czy jestes w stanie narysowac schemat podlaczenia przewodow w fritzing ? Juz kilka dni probuje to wszystko podlaczyc do kupy ale dziala zawsze inaczej niz powinno :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Fizycznie pewnie byłbym w stanie, ale niestety nie mam na to czasu :(
      Kilka osób uruchomiło z sukcesem projekt na podstawie podanego schematu, więc po prostu musi zadziałać :)

      Usuń
  28. Jakiej taśmy led użyłeś, ile diod na metr?

    OdpowiedzUsuń
    Odpowiedzi
    1. Szczerze mówiąc to już nie pamiętam. Jakaś zwykła taśma kupowana na aliexpress

      Usuń
    2. Zastanawiam się nad 150 LED 3528 SMD - 30 LED/m. Pobiera to 2,4W/m , ale nie wiem czy nie będzie za ciemno. Generalnie fajny pomysł. Gratuluje.

      Usuń
  29. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  30. Witam, czy mógłbym prosić o załączenie lub przesłanie kodu źródłowego - we wpisie na końcu nie widzę żadnego odnośnika tylko sam tekst "EDIT: Załączam aktualny kod źródłowy:" Dziękuję i pozdrawiam.

    OdpowiedzUsuń
  31. Jest faktycznie, tylko zablokowali mi GitHub w pracy :) Przepraszam za zamieszanie...
    Dzięki temu może będę mógł dołożyć parę cegiełek od siebie :)

    OdpowiedzUsuń
  32. Witam

    Mam szybkie pytanko, bo głowię się nad tym. Jak w eaglu płytkę zalać masą?

    OdpowiedzUsuń
  33. Czy dałoby się użyć zamiast włączników dzwonkowych 2 czujniki ruchu? Jeden na dole, drugi na górze.

    OdpowiedzUsuń
  34. Na taki projekt nie potrzebny jest układ TLC5940. Wystarczyła by sama atmega, ma na tyle wyjść.

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie ma na tyle wyjść PWM... Wyjścia cyfrowe nie załatwią płynnego rozjaśniania i przyciemniania

      Usuń
  35. Świetny układ. Gratuluję !
    Czy może kolega dać wskazówkę w którym miejscu zmienić program aby działał tylko na 10 schodków bez półpiętra?
    Pozdrawiam
    JarekM

    OdpowiedzUsuń
    Odpowiedzi
    1. wystarczy zmienić zmienną ledCount zmienić na 10 i nie podłączać przełącznika od półpiętra :)

      Usuń
  36. DZIĘKUJĘ ZA PODPOWIEDŹ !!! Będę testowac jak już zrobię układ. Moze uda mi się zmniejszyc go trochę gabarytowo (ew. zlikwodowac jeden układ TLC) bo fajnie by było to wcisnąc w obudowę do szyny TH-35 w rozdzielnicy :)
    Tymczasem kończę się pastwic nad sterownikiem do wentylatora kominkowego prototyp na stykówce chodzi, pcb z eagla jest, zostalo wytrawic plytke i sprawdzic :)
    Pozdrawiam
    JarekM

    OdpowiedzUsuń
  37. Witam
    Z jakiej wersji Eagla korzystałeś , ja mam 7.5.0 wersja demo i nie mogę otworzyć schematu.
    Również jestem na etapie tworzenia takiego sterownika tylko na osiem schodów , zamiast przełączników dwie czujki PIR , oraz załączanie zasilania na diody dopiero po zapadnięciu zmroku.
    Pozdrawiam
    Uzi008

    OdpowiedzUsuń
  38. Witam
    Ma ktoś jakieś info gdzie w PL można kupić TLC5940
    Robert

    OdpowiedzUsuń
    Odpowiedzi
    1. W Polsce nie, ale na www.aliexpress.com nie ma problemu

      Usuń
  39. Witam. Mam jeszcze pytanie. W jakim programie (środowisku) kolega kompilował program? Biblioteki tlc5940 i clickbutton są napisane dla arduino i pod eclipse jest kłopot z ich załadowaniem. Rozumiem że trzeba było wgrac bootloader arduino do atmegi 328 i to pewnie poprzez samo arduino?

    OdpowiedzUsuń
    Odpowiedzi
    1. W Arduino IDE skompilowało się bez błędów. Wyexportowało 3 pliki. 1 z kodem źródłowym, 2- HEX i 3 - HEX z bootloaderem. Czy wystarczyłoby wgrac tego hexa z bootloaderem bezposrednio do atmegi poprzez np. USBASP czy STK-200 ?

      Usuń
    2. Z tego co pamiętam ja wgrywałem przez USBASP bezpośrednio z arduinoIDE.
      Innych sposobów niestety nie próbowałem

      Usuń
    3. Witam
      Widzę że temat wsadu został poruszony a więc podepnę się kompilowanie zawsze było kłopotliwe dla mnie czy mogę prosić o skompilowany wsad do Atmegi i jakie powinny być ustawienia Fuse Bity fabryczne +zew kwarc ? robert_kazmierski@interia.pl dziękuje
      Robert

      Usuń
  40. Witam
    Mam pytanie co do TLC5940. Czy trzeba programować układ czy wystarczy samą ATMEGE?? Płytke już wykonałem i jestem w trakcie lutowania ale pytanie czy zastępczo można wykorzystac IRF510?? posiada podobne parametry jak 512. Efekt finalny jest powalający. Życzę kolejnych owocnych prac z Atmegą.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ja w końcu z tego co pamiętam zastosowałem IRFZ44n.

      Programuje się wyłącznie atmegę, ale do ArduinoIDE będziesz potrzebował bibliotek dla obsługi TLC

      Usuń
  41. Biblioteki do IDE można dograć bez problemu. Ale czy w arduino UNO można atmege włożyc i wsad do niej wrzucić?? Uno ma atmege na stopce co jets atutem do przełożenia i zaprogramowania atmegi. Ja zakupiłem IRF510 powinny być jak znalazł. Z TLC jest problem w nabyciu ale na allegro już się ukazały.
    allegro.pl/tlc5940nt-16x-pwm-led-sterownik-spi-arduino-avr-i5935201595.html
    Powinny być jak znalazł.

    OdpowiedzUsuń
  42. A tego już nie wiem. Jeśli masz atmegę z wgranym bootloaderem to teoretycznie powinno się dać. Ja wgrywałem przez usbasb

    OdpowiedzUsuń
  43. Wszystko mnożna zrobic również bez płytki arduino i bez bootloadera, ale jeszcze tego nie testowałem:
    http://wileczeknet.blogspot.com/2014/01/po-co-mi-to-cae-arduino.html

    OdpowiedzUsuń
  44. Właśnie jestem po testach. Udało się i działa na razie na płytce stykowej bez tranzystorów IRF. W związku z tym iż nie posiadam płytki arduino ani również programatora USBASP, do załadowania wsadu użyłem zrobionego pod port LPT zwykłego STK200. Postępując zgodnie instrukcjami w linku: http://wileczeknet.blogspot.com/2014/01/po-co-mi-to-cae-arduino.html
    To czego nie było w tym linku to dodanie programatora stk200 gdzie trzeba było dopisac kilka linijek w pliku programers.txt w arduino IDE.
    Ustawienia fusebitów też są bardzo dobrze opisane jak ustawic w programie AVR Burn-O-Mat.
    Podsumowując poprzez tak skonfigurowane środowisko Arduino IDE można pisac, kompilowac i wgrywac programy na atmegę bezpośrednio z Arduino IDE bez bootloadera i bez samego Arduino stosując jakikolwiek programator dla procesorów AVR. Jeszcze taka uwaga - W najnowszym Arduino IDE 1.6.7 nie udało mi się tego zrobic dopiero po zaisntalowaniu wersji 1.0.5 poszło bez problemów.

    OdpowiedzUsuń
  45. Witam
    Co do wgrywania bootloadera przez arduino jest to osiągalne tylko trzeba dobrze szukać. ten proces dziś mi się udał i Atmega jest już zaprogramowana. Mam jeszcze prośbę do Pana Anatola czy jest możliwość wysłania zdjęcia płytki sterownika PCB z dwóch stron bo chciałbym porównać efekt końcowy z Pana.
    e-mail do mnie: l.gadzinskiu@gmail.com
    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Poprawka e-mail gadzinskiu@gmail.com

      Usuń
    2. czyli można zaprogramować atmega na podstawce arduino uno i potem zamontować na płytce?

      Usuń
  46. W końcu udało mi się znaleźć chwilę czasu i wykonałem ów sterownik,wykorzystując arduino nano v.3 oraz płytkę z TLC i tranzystorami,którą sam wytrawiłem.Wpakowałem to w obudowę na szynę DIN Z101 wszystko działa jak należy i na dodatek mam możliwość zmiany ustawień przez złącze usb oraz podglądu efektu na wmontowanych w obudowę diod z poszczególnych kanałów.Jeszcze raz dziękuję za pomoc i gratuluję świetnego pomysłu.Pozdrawiam-Sławek

    OdpowiedzUsuń
    Odpowiedzi
    1. Ma kolega gdzieś jeszcze projekt tej płytki? Jeśli tak to poprosiłbym wrzucić.

      Usuń
  47. Witam. Mam mały problem. Złożyłem wszystko na płytce stykowej wg schematu, na razie jako źródło - diody 5mm, kod działa prawidłowo. Problem polega na tym, że pomiędzy GND a wyjściami układu TLC5940 na anody diód mam napięcie 1,8V i bardzo słabo świecą. Próbowałem zmieniać rezystory na 100 Ohm (2,03V), trochę lepiej, jednak podczas sterowania przyciskami diody nie gasną. Żeby sterować bramką IRL540, bo takich chcę użyć docelowo, potrzebuję na wyjściu TLC ok 5V. Może ktoś was jest w stanie mi pomóc. Dziękuję i pozdrawiam.

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

    OdpowiedzUsuń
    Odpowiedzi
    1. Witaj
      A cz nie dokonywałeś jakiś zmian w programie zwłaszcza
      int brightness = 4095; //maksymalna jasność ten parametr odpowiada za sterowanie max jasności w szczycie jasności powinieneś mieć na wyprowadzeniu TLC napięcie równe napięcia
      zasilania układu

      Usuń
    2. Witam. W kodzie niczego nie zmieniałem, skopiowałem, wkleiłem i wgrałem, działa prawidłowo, ale jak pisałem wyżej, na wyjściu zbyt niskie napięcie, żeby sterować bramka mosfeta. Zrobiłem schemat jak to wszystko mam połączone https://goo.gl/WzQpG1 Proszę o wskazówki. Pozdrawiam.

      Usuń
    3. Witaj
      Dokładnie nie analizowałem Twojego sposobu połączenia ale na pierwszy rzut oka widać że zasilasz układ 5V ja spojrzysz na schemat autora to że na rezystory podciągające (drabinki 8x10k)trzeba podać 12v wtedy powinieneś uzyskać wystarczające napięcie wysterowania tranzystora

      Usuń
  49. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  50. Dziękuję za odpowiedź. Problem rozwiązany. Diody led wpięte tak jak na moim schemacie, czyli pomiędzy wyjściem TLC a GND obniżały napięcie między wyjściem a GND. Będę musiał jeszcze pomyśleć gdzie je wpiąć, żeby mieć podgląd tak jak na Pana sterowniku.
    Mam jeszcze pytanie odnośnie kodu. Chciałbym wydłużyć czas wygaszania stopni, np. do 3 minut. Która zmienna za to odpowiada?

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć
      za czas wygaszania odpowiada
      int delayTime = 1;
      dostosuj według potrzeb

      Usuń
    2. Ta zmienna odpowiada za opóźnienie wygaszania ale i zapalania kolejnych ledów, oraz zapalania i gaszenia wszystkich jednocześnie. Trzeba chyba utworzyć kolejną zmienną np. delayTime_2 i umieścić ja w funkcji odpowiadającej za pojedyncze ściemnianie. Problem w tym, że żaden ze mnie programista, po prostu napaliłem się żeby zrobić ten projekt.

      Usuń
    3. To niestety trochę większa zmiana w kodzie programu. Trzeba by wprowadzić dodatkowy stan układu i dodatkowy licznik zliczający czas do momentu rozpoczęcia wygaszania.

      Usuń
  51. Witam, jestem amatorem jeśli chodzi o eagle i o drukowanie i wytrawianie płytek, czy ktoś mógłby mi pomóc i wytłumaczyć jak krok po kroku mogę stworzyć taką płytkę ?

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

    OdpowiedzUsuń
  53. Z zainteresowaniem przeczytałem opis projektu układu sterującego oświetleniem LED schodów, ponieważ sam kilka lat temu zainteresowałem się tym tematem i zacząłem pracować nad sterownikiem schodowym oświetlenia LED schodów. Założenie było podobne - kolejno i płynnie zapalanie (także gaszenie) oświetlenia schodów stopień po stopniu. Zaczynałem od procesora ATMEGA8 i programu w C. Od początku przyjąłem założenie, że sterowanie PWM będę realizował programowo, co, wbrew pojawiającym się tu opiniom, nie jest wcale trywialne, zwłaszcza gdy ściemnianie poszczególnych lamp nakłada się w czasie. W mojej opinii wybór przez Autora wersji sprzętowej z wielokanałowymi driverami PWM LED jest jak najbardziej słuszny, pozwolił na zaoszczędzenie sporo czasu. Mój pierwszy sterownik schodowy obsługiwał tylko 8 lamp, ale efekty były na tyle zadowalające, że pracowałem nad dalszymi wersjami. Aktualnie moje sterowniki pracują na procesorze ATMEGA168PB. Najbardziej zaawansowany SP23LED obsługuje do 23 stopni schodowych, posiada tryb ostrzegania przed zgaszeniem świateł, obsługę lampy Master (podświetlenie poręczy lub oświetlenie górne), funkcję obsługi ruchu z półpiętra, funkcję podświetlenia po zmierzchu, funkcję świecenia stałego, i parę innych. Sporo uwagi poświęciłem na opracowanie konfiguratora, pozwalającego na łatwą zmianę konfiguracji przez osobę z zewnątrz. Konfigurator umożliwia łatwą zmianę nawet 20 parametrów działania, w tym liczby lamp, poziomów podświetlenia i świecenia, czasów zapalania, świecenia, gaszenia, stopnia płynności zapalania i wielu innych. To co pierwotnie było tylko pasją, doprowadziło mnie do opracowania profesjonalnych sterowników schodowych, które sprzedaję we własnym sklepie internetowym smartleds.pl Niecierpliwym polecam gotowe sterowniki schodowe smartLEDs, a Autorowi i wszystkim majsterkowiczom życzę powodzenia w zmaganiach przy tworzeniu własnych sterowników schodowych i płynącej stąd satysfakcji, efekt jest naprawdę wart wysiłku.

    OdpowiedzUsuń
  54. Witam Ciekolego mam wielka prosbe do Ciebie czy mogl bym Cie prosic bo nie rozumie (pamiętajcie że płytkę trzeba "oblać masą" przed wydrukiem): wydrukowalem ta plytke co podales w PDF ale w nie ktorych punktach zauwazylem ze nie ma podlaczenia masy bardzo bym Cie prosil o pomoc jesli jest taka mozliwosc pozdrawiam Roman czy mogl nym prosic o pomoc moj adres email malizja14@wp.pl

    OdpowiedzUsuń
  55. Witam. Mam mały problem. Płytkę wykonałem i zmontowałem według Twojego schematu i programu, i wszystko działa prawie ok. Tranzystory mam podpięte pod 16 wyjść pierwszego TLC (OUT 0-15) i 2 wyjścia drugiego TLC (OUT 0 i OUT 1). Problem w tym, że te 2 wyjścia drugiego TLC działają w tym samym czasie co wyjścia OUT 0 i OUT 1 pierwszego TLC, a powinny zadziałać w kolejności po wyjściu OUT 15 pierwszego TLC. Wygląda jakby dwa TLC działały równocześnie. Nawet nie wiem od czego zacząć

    OdpowiedzUsuń
    Odpowiedzi
    1. W kodzie źródłowym biblioteki TLC includowanej do arduino IDE ustawia się liczbę podłączonych układów TLC. Zmieniłeś na 2? Domyślnie jest 1

      Usuń
    2. To było to. Dzięki wielkie. Teraz wszystko działa tak jak powinno

      Usuń
  56. Witam Cię Anatol super sprawa za udostępnienie takiego wspaniałego projektu jak sterownik schodowy wszystko już gotowe oprócz programy czy mógł bym Cię prosić o wsad tego programu do USBASB pod AVR z góry dziękuję pozdrawiam Roman

    OdpowiedzUsuń
  57. Witam Cię Anatol super sprawa za udostępnienie takiego wspaniałego projektu jak sterownik schodowy wszystko już gotowe oprócz programy czy mógł bym Cię prosić o wsad tego programu do USBASB pod AVR z góry dziękuję pozdrawiam Roman

    OdpowiedzUsuń
    Odpowiedzi
    1. Niestety nie mam gotowego wsadu w postaci binarnej, ale możesz go sobie przygotować za pomocą Arduino IDE. Kod źródłowy jest dostępny. Pozdrawiam

      Usuń
  58. Witam autora tego sterownika zakupilem arduino uno probuje zaprogramowac ten kod zrodlowy ale nie stety w linijce 14 wyskakuje blad "czy mogl bym prosic o podpowiedz ewentualnie plik wsadowy do arduino ??? Z gory dziekuje

    OdpowiedzUsuń
  59. Czy mogl bym Cie prosic o kontakt na skype Anatol moj login : roman5962 mam problem z wprowadzeniem tego kodu plytke juz wykonalem z elementami jak przedstawiles i jak na razie stoje w punkcie martwym bardzo bym Cie prosil o pomoc z Twojej strony oczywiscie jestem sklonny zrewanzowac sie ale to juz mozemy omowic na skype pozdrawiam autora do uslyszenia

    OdpowiedzUsuń
  60. musisz mieć atmegę z wgranym bootloaderem, a następnie zaprogramować ją za pomocą USBAsp. Przynajmniej ja tak robiłem. Tyle że robiłem to 2 lata temu, więc szczegółów technicznych dokładnie nie pamiętam

    OdpowiedzUsuń
  61. WItam, ja również mam problem całość odpaliłem na arduino działa świetnie z tym ze ja zamiast guzików chciałbym używać czujników ultradźwiękowych i za diabla nie wiem jak to dopisać żeby 1 czujnik uruchamiał sekwencje zapalania schodów od dołu a 2 od góry

    OdpowiedzUsuń
  62. Witaj,
    Czy udostępniony przez Ciebie kod można wykorzystać przy opcji z Arduiono? Czy tylko przy opcji sterownika z twojego schematu?
    Marcin :)

    OdpowiedzUsuń
  63. Ten kod można używać z arduino sam tak mam

    OdpowiedzUsuń
    Odpowiedzi
    1. Błażej, udało ci sięz tymi czujnikami?
      M

      Usuń
  64. Genialne,
    spróbuje dorobić do tego czujnik zmierzchowy oraz czujniki ruchu.
    Może sie uda :)

    M.

    OdpowiedzUsuń
  65. Jak dasz radę to proszę o info bo nie mogę sobie z tym poradzić ja mam i czujniki ruchu i odległości te 2 są lepsze ale obojętnie jakie będą działać będzie super

    OdpowiedzUsuń
  66. Plik w nagłówku jest napisany przez Pana, czy jest on pobierany z biblioteki? --> ClickButton.h

    Pozdrawiam!

    OdpowiedzUsuń
  67. Mam pytanie, która część kodu odpowiada za czas przytrzymania przycisku w celu załączenia wszystkich diód? Chciałbym wydłużyć ten czas,aby móc podpiąć czujniki ruchu,a w nich jest zbyt długie opóźnienie i od razu załącza wszystkie.

    OdpowiedzUsuń
    Odpowiedzi
    1. button[i].longClickTime = 800; // Time until long clicks register

      Usuń
  68. Czesc Anatol,
    Czy zablokowales mozliwosc przesuwania obiektow na plytce w eagle?
    Mozna to jakos odblokować?
    Marcin

    OdpowiedzUsuń
  69. Mam pytanie do autora.

    W którym miejscu znajduje się szybkość zapalania oraz gaszenia? Chciałbym tam wstawić odczyt z potencjometru na ADC. Tj jeden potencjometr od regulacji szybkości zapalania a drugi od szybkości gaszenia.

    Przede wszystkim gratuluję udanego projektu oraz dziękuję za udostępnienie tak obszernego materiału.

    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. Z tego co pamiętam to chyba zmienna delayTime za to odpowiada.

      i dodatkowo stałe:
      const int SCIEMNIANIE_POJEDYNCZE_STEP = 5;
      const int SCIEMNIANIE_CALOSCI_STEP = 10;
      const int ROZJASNIANIE_POJEDYNCZE_STEP = 25;
      const int ROZJASNIANIE_CALOSCI_STEP = 10

      Usuń
  70. Super, dzięki :) Ostatnie pytanie - czy układ jest przygotowany gdy np osoba na dole i na górze w tym samym momencie naciśnie przycisk lub w małym odstępie? Chcę dać u siebie czujniki pir i chciałbym być przygotowany na obsługę 2osób lub więcej w rzadkich przypadkach.

    Pozdrawiam

    OdpowiedzUsuń
  71. No to po paru godzinach tak wygląda płytka. Dodane 3 potencjometry.
    - regulacja jasności,
    - regulacja szybkości gaszenia,
    - regulacja szybkości rozjaśniania.

    - Dodane złącze od programowania
    - Dodane wyprowadzenie 6 wolnych pinów procesora PD2, PD1, PD0, PC5,PC4,PC3.
    - Dodano jeden pin na kostce od zasilania, dodatkowy +5V do zasilania czujek PIR.
    - Mosfety w wersji n-channel dwukanałowe.
    - Atmega328 w wersji SMD


    Płyta przygotowana pod obudowę na szynę DIN > DIN Z104


    http://obrazki.elektroda.pl/1207785500_1478960427.png

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć,
      Masz swój wątek na elektroda.pl?
      obserwowałem ale nie natrafiłem...
      :)

      Usuń
    2. Na elektrode dawno nie zagladalem a co dopiero coś udostepnic. Czekam za paczka z Chin i bede testować na plytce stykowej. Pozniej zamowie pcb i dam znac tutaj:)

      Usuń
    3. Hej możesz podzielić się plikiem z eagla?

      Usuń
    4. link jest w treści posta

      Usuń
  72. Czy myślał ktoś nad wykorzystaniem tensometru np. ze starej wagi łazienkowej? Po wejściu na pierwszy schodek oświetlenie mogło by się włączyć i nie trzeba do tego przycisku. Obsługa chyba banalna bo działa to jak regulowany rezystor. cena też znośna https://botland.com.pl/czujniki-nacisku/753-czujnik-sily-nacisku-okragly-13-mm-06-.html

    OdpowiedzUsuń
  73. Witam. Jestem początkującym, Jak a raczej gdzie podpiąć przyciski zapalające na prototypowej płytce i arduino...

    OdpowiedzUsuń
  74. Cześć wszystkim. Która część kodu odpowiada za wygaszanie taśm LED. Całość zapala mi się bez żadnych problemów ale diody nie chcą gasnąć. Pozdrawaiam

    OdpowiedzUsuń
  75. Witam mam problem bo nie mogę znaleźć gdzie gdzie mam zmienić ilość tlc w bibliotece byłbym wdzięczny za pomoc

    OdpowiedzUsuń
    Odpowiedzi
    1. w pliku nagłówkowym biblioteki do TLC. Nie pamiętam teraz dokładnie jak się nazywa. Z rozszerzeniem .h

      Usuń
  76. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  77. Czy mógł by ktoś dorzucić zdjęcie gotowej płytki będę wdzięczny. Pozdrawiam

    OdpowiedzUsuń
  78. Zdjęcie gotowej płytki ułatwiło by lutowanie ale jakoś sobie poradzimy. Pozdrawiam

    OdpowiedzUsuń
  79. Witam, Co może być przyczyną że cały czas się świeci od załączenia gł. zasilania:( Pozdrawiam proszę pomóżcie

    OdpowiedzUsuń
  80. Witam, mam taki sam objaw, tzn. po podłączeniu zasilania na każdym wyjściu od razu jest 12v. Ma ktoś pomysł co może być nie tak ? Pozdrawiam

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

    OdpowiedzUsuń
  82. Miałem podobny problem pomogła wymiana TLC jakość tych układów jest losowa

    OdpowiedzUsuń
  83. Witam, zdaje sobie sprawę, ze moja wiedza jest dość skromna, ale czy moglibyście mi powiedzieć dlaczego lampki świecą mi się na odwrót? Chodzi mi o to, ze jak nacisnę przycisk to najpierw się gaszą a potem zapalają i tak zapalone zostają. TLC5940NT podłączyłem jak na instrukcji łączenia do Aruino. pozdrawiam

    OdpowiedzUsuń
  84. Cóż ciężko mi powiedzieć. U mnie niestety jest tak, że mimo takiego samego programu jak ten, który został załączony przez autora diody zapalają się bardzo szybko, właściwie niezauważalny jest efekt rozjaśniania. Gasną jak trzeba, ale ich włączanie następuje błyskawicznie. Czy ktoś ma jakiś pomysł ?

    OdpowiedzUsuń
  85. Witam. Miałem inną oporność jednego z kondensatorów przez co źle działał Kwarc. Teraz jest OK ale nie mogę doszukać się gdzie zmienić aby działały 2 układy TLC. Proszę o jakieś wskazówki (który plik i co zmienić) Pozdrawiam

    OdpowiedzUsuń
  86. Witam,
    Wykonałem sterownik na bazie autora bloga. Jednak chciałbym rozbudować projekt o dwa czujniki PIR (jeden na dole, drugi na górze schodów). Nie bardzo wiem jak rozbudować kod programu, aby po zadziałaniu jednego czujnika nastąpiła aktywacja załączania się pasków LED oraz blokada aktywacji drugiego czujnika.

    OdpowiedzUsuń
  87. Witam, mam ten sam problem, kombinuję na przerobienie na czujniki ruchu jednak bez skutków, Jak by ktoś mógł pomoc to będziemy wdzięczni.

    OdpowiedzUsuń
  88. A jaki jest generalnie problem? Jeśli czujnik ruchu będzie podpięty zamiast włącznika i da wysoki stan na wejście to powinno obyć się bez żadnych zmian w kodzie.

    OdpowiedzUsuń
  89. chodzi tu o czasy jakie daje czujnik (minimum to 1-2s) a pstryknięcie guzika trwa w milisekundach. Próbowałem podnieś czasy ale bez rezultatu, tak samo wymiana clikbution na czujniki to wywala błędami.

    OdpowiedzUsuń
    Odpowiedzi
    1. rozumiem że wtedy zapalają się wszystkie diody od razu bo wykrywane jest jako długie przytrzymanie przycisku?

      Usuń
  90. Dokładnie tak, na pewno trzeba będzie coś zmienić w kodzie ale jak dotychczas nie udało mi się tego zrobić. Dodatkowo w moim przypadku po wgraniu Pana programu ledy zapalają się po naciśnięciu przycisku po kolei,ale bardzo szybko. Wygaszanie następuje już tak jak na Pana układzie. Ma Pan może pomysł co może być przyczyną?

    OdpowiedzUsuń
    Odpowiedzi
    1. Generalnie pewnie trzeba wywalić zupełnie wywołanie funkcji ustawStanStaly w głównej pętli loop w okolicach 80'tej linii... Dokładnych zmian nie jestem w stanie podać bez testów, a nie mam akurat układu na którym mógłbym sprawdzić kod

      Usuń
  91. Miałem ten sam problem, rozwiązałem go stosując optyczne czujniki odległości, działają w zakresie do 80 cm i dobrze działa funkcja załączania wszystkich stopni na raz, wystarczy chwilę stanąć na danym stopniu.

    OdpowiedzUsuń
  92. Dodatkowo można nie załączać stopni gdy nie chcemy,np w dzień, wchodząc lub schodząc dalej od czujnika.Tyle że w moim przypadku mam tylko na dole i u góry czujniki,bez półpiętra.

    OdpowiedzUsuń
  93. ja użyłem dodatkowe arduno i mam pod nie podłączone zwykle czujniki ruchu. w ten sposób poradziłem sobie z problemem

    OdpowiedzUsuń