Zainspirowany podobnym, projektem który zobaczyłem niedawno na elektrodzie, postanowiłem zrobić coś podobnego ale nieco inaczej. Światło pochodzi z 8 diod LED umieszczonych pod poręczą, 3 w dolnej części, 3 w górnej i 2 na półpiętrze.
Działa to tak: kiedy wchodzimy na schody, idziemy dajmy na to z dołu na górę, fototranzystor ( bariera podczerwieni ) to wykrywa, następnie diody płynnie się zapalają zgodnie z jednym z trzech ustalonych wzorców, czyli:
- zapalanie po koleji każdej diody
- zapalanie najpierw dół, potem półpiętro, a na koniec góra
- zapalanie wszystkich na raz
Diody nie zapalają się nagle, ale są płynnie rozjaśniane z użyciem ośmiu programowych kanałów PWM.
Po 30 sekundach od ostatniego zadziałania czujnika wszystkie diody się sciemniaja i gasną.
Jeżeli wchodzimy od dołu to zapalanie diod jest animowane również od dołu, czyli świecenie zaczyna się od diod które są bliżej i płynnie idą w góre. Jeżeli schodzimy w dół to wzorzec jest odwracany i diody zapalają się od góry.
Pierwsza i ostatnia dioda, czyli ta na samej górze i ta na dole świecą cały czas z wypełnieniem 2 procent, rozświetlają wystarczajaco aby dojść do krawędzi schodów a wtedy zapalą się już wszystkie, z pełną mocą.
Żeby oszczędzać prad w stanie czuwania użyłem sztuczki, diody podczerwone nie świecą cały czas, ale mrugają około 13 razy na sekundę przy wypełnieniu 33%, a czujniki sprawdzają stan tylko w trakcie świecenia. Ogólna oszczedność jest raczej niewielka, ale za to miałem więcej zabawy przy pisaniu programu
Diody mozna dać w zasadzie dowolne do 250mA, tranzystory ktorych uzyłem są teoretycznie do 500mA. Prąd ustawia się poprzez odpowiedni dobór rezystorów na wyjściach tranzystorów. Ja użyłem diod białych ciepłych ( 2500K ) przy prądzie 100mA, rezystory 16 ohm.
Na potrzeby filmiku czas świecenia został ustawiony na 4 sekundy, dlatego gasnie tak szybko, normalnie jest to 30 sekund.
Sterownik:
- mikrokontroler Attiny2313, z wewnetrznym oscylatorem ustawionym na 8Mhz
- 8 wyjść na diody LED (tranzystory BC817)
- 4 wyjścia na diody podczerwone (BC817)
- 4 wejścia na fototranzystory ( darlingtony BCV27, tylko 2 wejścia są obecnie wykorzystane w programie)
- zasilanie zewnetrzne 5v (lub wiecej po wlutowaniu stabilizatora 7805 )
Na górze i na dole schodów należy umieścić po jednej parze dioda IR- fototranzysor, w taki sposób
aby wzajemnie się „widziały”.
Program:
Napisany w C (GCC), wykorzystuje przerwanie do generowania 8 kanałów PWM. Wzory w/g których są zapalane diody są zdefiniowane w 3 tablicach ( nazwy od data_zapal_ ).
Mozna w razie potrzeby zdefiniowac sobie własne wzorce, kolejne wartości w każdym rzędzie to jasności każdej z ośmiu diod. Kolejne wiersze to poprostu stany diod w czasie. Jasność diod jest płynnie zmieniana ( interpolowana? ) miedzy wartościami z kolejnych wierszy.
Gaśnięcie diod jest zdefiniowane w tablicy data_zgas_1, przy jej zmianie nalezy tylko pamiętać żeby w ostatnim wierszu tablicy, pierwszej i ostatnij diodze przypisać wartość jakąś małą wartość np od 2 do 5, dzięki temu te dwie diody będa zawsze świecić kiedy reszta zgaśnie.
Program do procesora sciągniesz tutaj:
schody_avr_v1.0.zip
Żeby program działał prawidłowo nalezało by ustawić wewnętrzny zegar na częstotliwość 8Mhz
Jeżeli kożystasz z programatora USBASP zrobisz to wydajac z linii komend polecenie:
avrdude -p attiny2313 -c usbasp -U lfuse:w:0xe4:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
Schemat
Płytka
Płytka dwuwarstwowa. Zrobiona tak aby dało się ją w miare łatwo wykonać w domowych warunkach, czyli duże przelotki itp.
Większość elementów SMD, tylko złącza są przewlekane, z wyjątkiem złącza programatora.
Przy lutowaniu proszę zwrócić uwagę że tranzystory dla diod to BC817, ale dla fototranzystorów BCV17, chociaż na schemacie wszędzie występują BC847, poprostu lenistwo , ale zaznaczyłem to na rysunku.
Poniżej zamieszczam obrazki z nazwami elementów i ich wartosciami.

Zlutowany sterownik
Poniżej gotowa składka do laminowania i trawienia płytki. Należy ją wydrukować a następnie zgiąć tak aby obie części pokrywały się otworami w przelotkach. Nie trzeba robić odbicia lustrzanego już wszystko jest zrobione. Nie bedę tu opisywał metod wytwarzania płytek PCB w domowych warunkach, proszę poszukać w google, jest mnóstwo stron na ten temat.
Proszę kliknąć prawym przyciskiem na obrazku i wybrać „Zapisz element docelowy jako”, nie „Zapisz obrazek jako”, ponieważ ten widoczny to tylko miniatura :) Obrazek powinien być koniecznie drukowany z rozdzielczoscią 600dpi inaczej rozmiar płytki będzie nieprawidłowy.
Zasilanie
Zasilanie, najlepiej z zasilacza wtyczkowego, koniecznie stabilizowanago, 5V
w takim przypadku nie wlutowujemy stabilizatora 7805, ale łączymy kawałkiem drutu lub kropelką cyny pady zaznaczone na rysunku kilka akapitów niżej.
Drugą opcją, jeżeli nie mamy odpowiedniego zasilacza jest wlutowanie stabilizatora i zasilanie układu z większego napięcia, np 9-12v, jednak wtedy do stabilizatora należy przykręcić jakąś blaszkę lub radiator żeby rozproszyć ciepło. Wydajność prądowa tego stabilizatora to około max 1A więc w takim przypadku diody LED raczej nie powinny być mocniejsze niż 100mA
Diody LED i ich rezystory
Maksymalna wydajność tranzystorów na wyjściach to 500mA, ale lepiej nie wykorzystywać ich do granic możliwości.
Dlatego proponuję użyć diod o prądzie maksymalnym od 20mA do 250mA.
Aby dobrać rezystory proponuję użyć jakiegoś kalkulatora ledów, np: http://led.linear1.org/1led.wiz
Wpisujemy napięcie zasilania 5V, napięcie świecenia 2v dla czerwonych, 3v dla białych, zielonych i niebieskich, i wymagany prąd w mA jaki potrzebujemy.
Przy doborze diod miejmy również na uwadze którą opcję zasilania wybraliśmy, żeby np. nie przeciążyć stabilizatora.
Czujniki i diody IR
Użyłem fotoranzystorów oraz diod podczerwonych działajacych w zakresie 940nm. Przy podłączaniu należy uważać aby nie podłączyć tych elementów odwrotnie, są aż 3 sposoby w jakie można je podpiąć źle i tylko 1 prawidłowy
Jak odwrotnie podłączysz diodę to po prostu nie świeci, jak odwrotnie podłaczysz fototranzystor to będzie działał ale bardzo słabo, zasięg spadnie poniżej 10cm.
U mnie odległość miedzy diodą i fototranzystorem to około 1 metr, ale testowałem przy około 2m i tez działało.
Przy podłączaniu pomagałem sobie kamerką z telefonu, ponieważ widać w niej podczerwień z diody.
Gdyby czułość okazała sie za mała to możesz podłączyć np po 2 lub 3 fototranzystory równolegle zamiast jednego.
Mozna tez podłączyć równolegle więcej diod IR , tylko trzeba by odpowiednio zmniejszyć im rezystory.
Zastosowane fototranzystory reagują również na światło dzienne i na światło zwykłych żarówek, więc można by
na nie nałożyc kawałek rurki, tak żeby widziały tylko światło z diody IR.
Efekt bedzie taki że czunik poprostu nie załączy oswietlenia.
U mnie akurat ten problem nie występował ze względu na to że w poblizu są tylko świetlówki kompaktowe, nie emitujące podczerwieni.
Lista elementów
do kupienia w maritexie (maritex.com.pl):
LIRT3B-940 – 2 szt – fototranzystor
LIRED3B-940 – 2 szt – diody IR
BC817-40 – 9 szt – tranzystory dla LEDów
ATTINY2313-20SU – 1 szt
BHT10S – 1 szt – złącze programatora
PLD80S-2 – 1 szt – złącza diod, i czujników – do pocięcia na mniejsze
DC2020 lub DC2025 – 1szt – złącze zasilania, dobierz do zasilacza
MLBAWT-A1-0000-000WA7-6C4J0 – 8 szt – diody LED ( max 175mA ), możesz uzyc innych tylko musisz dobrać odpowiednie rezystory
7805 – stabilizator napięcia 5v, opcjonalny
PBD16S – 1 szt – złacze żeńskie do przylutowania przewodów dla LEDów
PBD08S – 2 szt – złącze żeńskie do przylutowania przewodów fototranzystorów i diod IR
do kupienia w TME ( tme.eu )
BCV27 – 4 szt – tranzystory darlingtona NPN do wzmocnienia sygnału z fototranzystorów, niestety zwykłe tranzystory były za słabe
10k 0805- 1 szt
10ohm 0805- 1 szt
4.7k 0805- 9 szt – na bazy tranzystorów
220ohm 0805- 4 szt – dla diod podczerwonych dla prądu około 16mA
1.5M 0805- 4 szt – dla fototranzystorów, dobrać inne w razie potrzeby
750 0805- 4 szt – dla fototranzystorów, dobrać inne w razie potrzeby
16ohm 0805- rezystory dla diod LED przy prądzie 100mA, ja użyłem po 2×33 ohm równolegle co dało 16
100n 0805- 2 szt
1000n 0805- 1 szt – do lepszego filtrowania zasilania, można go pominąć
47uF 16v elektrolit – 3 szt – mogą być trochę mniejsze np 33uF,wymiary max 6.5 x 7mm
Jeżeli masz jakies pytania, napisz je w komentarzu.
Jeżeli Ci się podoba ten projekt to kliknij proszę na link „Lubię to” poniżej, dzięki
dd
Witam
Bardzo spodobał mi się ten projekt
Chciałbym się dowiedzieć ile wyniesie mnie zrobienie czegoś takiego,
I czy mogę liczyć na Pana pomoc ?
Wszystko super opisane ale nigdy nie wiadomo co pójdzie nie tak byłby to mój 1 projekt
Dziękuje i Pozdrawiam
Trudno mi dokładnie powiedzieć jakie są koszty projektu, większość części już miałem, w zasadzie musiałem dokupić tylko diody.
Szacuję że wszystko może kosztować około 50-60 zł, może mniej.
W razie pytań proszę je po prostu zadać w komentarzu, postaram się pomóc w miarę możliwości
Witam,
chcę zrobić sobie taki układ, jednak zauważyłem że mam inne wyjście programatora niż na załączonych zdjęciach.
Czy mógłbym prosić o informację co i jak przerobić abym mógł zaprogramować układ z użyciem mojego programatora?
oto on: http://uplc.pl/index.php/produkty/item/27-programator-avr-usbasp
Jak widać jest z niego tylko 6 wyjść, a na załączonym zdjęciu jest 10 wyjść.
http://www.elektroda.pl/rtvforum/files-rtvforum/z_acze_isp_10_pin_1_5149.jpg
Kilka razy występuje gnd
Witam.
Chcę w miejsce każdej diody podłączyć 4 diody. Czy aby to zrobić wystarczy zmienić tranzystory BC817 na np. BCW66H o wydajności 800mA i przed każdą wstawić opornik?
Tak, możesz tak zrobić, opornik może być przy każdej diodzie, rozproszy to wydzielane ciepło,ale można też po prostu wymienić odpowiednio oporniki na wyjściach tranzystorów.
Ale trzeba tu uważać bo większy prąd oznacza większe szpilki indukowane na długich przewodach, to z kolei może po jakimś czasie uszkodzić tranzystory, przydało by się zabezpieczyć je transilami.
Oznacza to również większe wydzielanie ciepła na tranzystorach i rezystorach oraz konieczność zastosowania mocniejszego zasilacza.
Witam, jestem w trakcie realizacji tego projektu, płytkę sobie przerobiłem na „zwykłe” elementy tzn nie smd ;), ale problem mam taki.. czy dało by się zrobić 10 kanałów?
Jeżeli zrobił bym np 2x8ch to było by okej ale w takiej sytuacji musiał bym mieć cztery czujniki, a tak dwa.
Pozdrawiam
Swietny projekt!
Tego projektu raczej nie przerobisz na 10 diod, trzeba by przeprojektować płytkę i być może dać inny procesor z większą ilością wyprowadzeń, do tego dochodzi jeszcze przerobienie programu, zatem 2×8 tym bardziej się nie da zrobić bez poważnych zmian w projekcie.
Może po prostu zlutujesz sobie 2 sztuki diody z każdej z nich ustawisz w rzędzie na przemian,raz dioda z jednej płytki a raz z drugiej, efekt będzie bardzo podobny do 16 kanałowego.
Witam

Więc zrobię tak że, dwie płytki po 8ch, do tego tylko dwa czujniki ( w drugiej płytce coś w stylu opóźnienia będzie.
Będzie coś w stylu 5 lampek następnie półpiętro i znów pięć lampek do góry
Damy radę
Dziury w śćianie juz wykute lampki mam juz zrobione , w razie problemów będę pisał.
Moja płytka
http://discoextra.pl/schody/schody1.PNG
Mógłbyś wrzucić tutaj płytkę gotową do trawienia?
Jakich elementów użyłeś zamiast elementów SMD?
Dzień dobry,
mam pytanie czy ten fototranzystor i fotodioda można zamienić na jakiś inny (bardziej dostępny) zestaw? Mam trudności z ich zdobyciem, dlatego pomyślałem że może dałoby się je czymś zastąpić. Pozdrawiam
To nie jest fotodioda tylko dioda led świecąca podczerwienią. Można spróbować, ale nie daję żadnej gwarancji że to zadziała.
Najważniejsze jest to żeby dioda świeciła podczerwienią o takiej długości fali na jaką reaguje fototranzystor inaczej zasiąg bardzo spadnie.
Możliwe też że trzeba będzie dobrać nieco inne rezystory przy darlingtonach.
Witam, zmontowałem cały układ wg opisu powyżej, wszystkie elementy takie same, połączenia również sprawdzane miernikiem. Przy próbie zaprogramowania pojawił się jednak problem. Posiadam programator USBasp i nakładkę SinaProg. Przy próbie wgrania programu wyświetla mi taką informację:
http://www.sendspace.com/file/u1f03s
Nie wydałem z linii komend tego polecenia podanego w opisie ponieważ nie mam zielonego pojęcia jak to zrobić. Prosiłbym o jakieś wskazówki.
Pozdrawiam
Komendę uruchamiasz z tzw. linii poleceń, czyli uruchamiasz z menu Start program o nazwie „cmd”, wpisz w wyszukiwarkę w menu to Ci znajdzie.
Natomiast komunikat który ci się pokazał oznacza że Atmega w ogóle nie odpowiada, czyli albo coś masz źle przylutowane, źle podłączony programator, może jakaś przelotka nie styka, albo po prostu masz gdzieś zwarcie.
Witam mam pytanie, płytkę akurat ukończyłem
http://discoextra.pl/dimmer/20120308474.jpg
I teraz tylko chciał bym przekaźnikiem wyzwalać układ, da radę ?
Tutaj z ledami w fazie testów
http://www.youtube.com/watch?v=QOJP1mIYNBo&feature=youtu.be
Okey nie mam pytan
, doszedlem sam do wszystkiego
, oczywiście dodam zdjęcia 
Dzięki wielkie , projekt naprawde szacunek !
u mnie już wszystko działa;) , teraz tylko zamontowac na schodach
film z działania na ledach,
http://www.youtube.com/watch?v=MaqKivDHtBU&feature=youtu.be
A w jaki sposób i w jakim celu, napisz jak to by miało w/g Ciebie działać bo nie rozumiem.
Chodzi o to , że u mnie nie będzie tych fotodiod itd ,tylko czujnik ruchu montowany do puszki
posiadam coś takiego
, będa zdjęcia wszystko się wyjaśni 
Pozdrawiam
Tutaj jeszcze tak testowo na biurku, test z jedną lampą już tą właściwą
http://www.youtube.com/watch?v=KxV1_RmNbyY
Prawie masowa produkcja ;P
http://discoextra.pl/dimmer/20120315500.jpg
Fajnie, daj koniecznie znać jak już zamontujesz na schodach/na ścianie, i nagraj jakiś filmik, jestem ciekawy jak będzie wyglądać w działaniu.
Witam, super to wyszło. Ja również mam zamiar wykonać taką płytkę bo przez smd oszaleję, mam jednak pytanie. Czy mógłbym prosić o podanie jakie tranzystory zostały zastosowane zamiast tych smd?
Pozdrawiam
Witam! Ciekawy projekt. Interesuje mnie jak obsłużyłeś diody nadawcze podzczerwieni. Jak nazywa się ta funkcja w programie, bo program jest dosyć obszerny i trudno znaleźć co od czego. Dodam, że jestem początkujący w C i chcę zrealizować swój projekt, tylko potrzebuje trochę wiedzy na ten temat. Rozumiem, że trzeba wygenerować pewną częstotliwość dla diody IR.
Diody obsłużyłem normalnie beż żadnego generowania częstotliwości, po prostu ustawiając jeden pin IO, pin ten jest podłączony do bazy tranzystora który z kolei puszcza prąd na diody.
ta linijka w programie zapala diody podczerwone:
PORTD|=64;
a ta gasi:
PORTD&=~64;
Generować częstotliwość musisz jeżeli jako odbiornika używasz scalonego odbiornika podczerwieni takiego jak np w telewizorach do odbioru sygnału z pilota, one wymagają aby sygnał z diody był modulowany częstotliwością, zazwyczaj 36 KHz lub inną. W tym przypadku odbiornik to fototranzystor więc wystarczy że diody po prostu świecą.
Ale mi chodzi, jak właśnie programowo zrealizowałeś modulowanie częstotliwością diodę IR? Rozumiem, że dioda IR pracuję z częstotliwością 36Khz i odbiornik pracuje z tą samą częstotliwścią tzn. odbiera falę elektromagnetyczną (podczerwień). Gdy przez pewien czas się nie widzą tzn. gdy odbiornik fototranzystor, nie widzi podczerwieni diody IR to realizowane jest sterowanie PWM itd. Mnie właśnie interesuje kawałek programu, który będzie obsługiawał diode IR oraz fototranzystor? Czy mógłbyś wskazać te funkcję, jak się nawzywają. Bo przypuśćmy, że chcę sobie zrealizować bramkę optoelektroniczną tzn. np. będzie zliczać ile osób przeszłą przez wiązkę podczerwieni.
Tak jak Ci pisałem wcześniej nie generuję w ogóle częstotliwości, dioda IR po prostu świeci , więc nie ma tu żadnej modulacji/demodulacji.
Ok, co prawda mruga ale z bardzo małą częstotliwością kilkanaście Hz a _nie_ 36 KHz , tylko po to żeby diody brały trochę mniej prądu.
Funkcja która sprawdza stan fototranzystorów nazywa się „czujnik_check_pin” ale nic Ci to nie da bo ona tylko sprawdza stan pinów I/O, żadnej (de)modulacji w programie nigdzie nie ma.
W funkcji „czujnik_check” diody IR są zapalane, następuje chwila przerwy a następnie sprawdzany jest stan fototranzystora, po czym diody IR są wyłączane. Bo nie ma sensu aby świeciły w czasie kiedy program nie sprawdza stanu fototranzystora. Jest to powtarzane kilkanascie razy na sekunde. Równie dobrze mogły by świecić cały czas bez przerwy i program w takiej formie działał by dokładnie tak samo.
witam, mam problem zlutowałem ten układzik, wgranie pliku hex do mikrokontrolera przebiego pomyslnie poprzez program mkavr calculator, dioda ir swieci(widoczne poprzez telefon komorkowy), ale problem jest taki ze diody led świeca się bez przerwy
Prawdopodobnie sygnał z diod Ir nie dochodzi do procesora, wtedy LEDy raz się zapalą i nie gasną,
prawdopodobne przyczyny:
- diody IR nie są wycelowane dokładnie w fototranzystory, lub fotranzystory nie patrzą się dokładnie w stronę diod IR.
- coś nie styka przy fototranzystorze, albo jest niepodłączony, albo coś jest nie tak ze wzmacniającymi sygnał darlingtonami lub ich rezystorami.
- układ bywa wybredny jeżeli chodzi o zasilanie, napięcie musi być stałe, bez tętnień, szumów itp, czyli nie używaj zasilacza impulsowego , najlepiej taki z liniowym stabilizatorem.
- użyłeś innych elementów niż podałem, wtedy będziesz musiał odpowiednio dobrać rezystory przy tranzystorach, czyli czeka się sporo testów , i być może zabawa z oscyloskopem.
no na razie podlaczylem po jednej diodzie i jednym fotorezystorze, wiec problem moze byc w tym ze nie podlaczylem drugiej pary ktora sie nie widzi.
jesli chodzi o elementy uzylem wszystkich tych samych oprocz diody nadawczej, ja uzylem tej LIRED5B-940-H, zasilacz mam 5V ze stabilizatorem firma philips jesli to wazne
Jeżeli nie podłączyłeś drugiej pary to może się właśnie tak zachowywać.
no niestety podlaczylem dwie pary foto i ir i dalej tak sie dzieje dioda i fotorez, widza sie na pewno poniewaz ustawilem ich w szklanych rurchach malej srednicy,diody dzialaja bo widac je przez aparat w telefonie, napiecie jakie mam na wyjsciu diod to 4,13v na wyjsciu fotorezystorow 3,34v i na diodach ir 4.17v, mam wlutowany stabilizator ale bez mam to samo
Sprawdź może jednak coś nie styka, może któraś przelotka, może masz jakiś „zimny lut” , najlepiej sprawdź wszystko co się da miernikiem ( brzęczykiem),
trudno mi tu cokolwiek więcej wymyślić.
Witam. Świetny projekt, szacunek za cierpliwość do SMD. Mam pytanie… czy jest możliwość aby na wyjściach zastosować przekaźniki które załączą mi obwód 230 V? Chodzi o to że sterownie napięciem 5V a styki główne zasilę 230V. Program może udałoby mi się dostosować do swoich potrzeb… zobaczę. Nie wiem tylko jakie napięcie jest na wyjściach tego sterownika.
Możliwość jest, trzeba by podłączyć przekaźnik zamiast diody LED, powinien zadziałać,
,trzeba by najpierw zmienić program żeby nie używał PWM na wyjściach inaczej
przekaźnik będzie działał dziwnie, może iskrzyć, albo się popsuć całkiem.
A ogólnie to odradzam robienie czegoś takiego, płytka była projektowana z myślą o diodach
Tranzystory nie mają żadnych zabezpieczeń, więc prąd który się indukuje przy wyłączaniu przekaźnika na pewno je uszkodzi po kilku dniach, może kilku tygodniach działania. Trzeba by wprowadzić sporo zmian, a najlepiej przeprojektować płytkę i zrobić od nowa.
Też odradzam taką zabawę z napięciem 230V, jak chcesz to koniecznie zrobić to rób na własną odpowiedzialność, i nie miej potem pretensji jak sobie spalisz chałupę albo sobie coś zrobisz
Witam,
mam dokładnie taki sam efekt jak kolega tom, zmontowałem nawet sam układ fototranzystora na płytce stykowej żeby go sprawdzić dokładnie, elementy dokładnie takie same jak w opisie i niestety, cały czas mam na wyjściu z układu ten sam stan. Ma ktoś pomysły co to może być?
Dodam że połączenia między elementami są na pewno ok.
Cześć,
Bardzo chciałbym wykonać ten projekt, lecz nie posiadam programatora do tych procesorów..
Czy jak złoże coś takiego to dam radę zaprogramować to cudo?
http://www.elektroda.pl/rtvforum/files-rtvforum/prog_stk200_1548.jpg
Proszę o pomoc.
Marcin