Tak po dlhsom case sa opat ozyvam. Trvalo to, ale tak robil som to vo volnom case, obcas cakal na zasielky z aliexpressu. LED pas uz je v ostrej prevadzke cez 3 tyzdne a zatial funguje spolahlivo, bez potrebneho resetu CPU. Este som potreboval cas na skreslenie schemy zapojenia, ktoru prikladam. Chcem vas skusenejsich poprosit, ci by ste ju pozreli a popripade mi ju skusili vylepsit, ak najdete nieco, co by bolo lepsie zapojit.
Vsetko je aktualne zapojene na univerzalnej doske plosnych spojov. Hlavna cast (CPU, baterky, zdroj a pod.) je docastne umiestnene v pevnej krabici od topanok, ale to len kvoli prachu. Okrem teda zdroja, a rele. Tie su mimo DPS. Tlacidla su tiez na univerzalnej doske plosnych spojov. Pre ne som vytvaral krabicku z hlinikoveho plechu, ktora sa podarila na druhy pokus. Je tam sice otvor pre pohybovy senzor vacsi, ale tak usiel vrtak. V bytovych podmienkach, sa to tazko robilo, hlavne ohybanie plechu bola “radost” na malom zveraciku, ktory je otocny
Pohlad na vnutro krabicky s tlacidlami odfotene nemam, ale prikladam vykres z AutoCADu, pre nazornost.
Prepoj medzi tlacidlami a CPU je ethernetovym kablom 5e, nakolko ten bol po ruke. Potreboval som sice na prepoj 9 zil (5x tlacidlo, jas, pohybovy senzor, napajanie 5VDC pre pohyb. senzor a GND) a tak pre GND som pouzil vodic tienenia.
Jediny problem, ktory som si vsimol este pri testovani s LCD displejom bol, ze ked som zapol napr. svetlo, alebo nieco, tak nabehlo par preruseni pre INT0 a INT1 (tlacidlo 1 a pohyb. senzor). Neviem, ci dat pre kazde tlacidlo este 100nF kondik? Ako pre nanajanie CPU.
Druha vec, ktora sa mi nepodarila vyriesit: Chcel som, aby, ked LED pas robi zmenu – kazdy efekt trva 2 sekundy, dokazal reagovat na stlacenie nejakeho tlacidla. Programovo som to vedel urobit, ale problem bol ten, ze zvykol casto LED pas prebliknut. Proste aj male prerusenie komunikacie s LED pasom chybne vyhodnotil a nastal posun a kratke bliknutie inych farieb, vacsieho jasu a podobne. Jednoducho to rozhadzalo. Tak som to musel zrusit a tlacidla reaguje len vtedy, ked neprebieha komunikacia s LED pasom (ak sa dobre trafi, tak zareaguje aj cez tie 2 sekundy efektu). Neviem, ci sa tu da nieco vymysliet, hlavne, ak ma prerusenie vyhodnotit, ktore tlacidlo (2, 3, 4 a 5) sa stlacilo. Tlacidlo 1 je cez prerusenie INT0.
Nabijanie baterii funguje dobre. Signalizaciu o nabiti a nabijani baterii beriem kradnutim signalu z dosticky pre nabijanie z LED. Zapojene su cez tranzistory. Zistovanie aktualneho napatia na baretiach uz teraz funguje spolahlivo, pomohlo, ze je vsetko pevne zletovane. Este som si vsimol, ze to trosku ovplyvnuje priezer vodica, cez ktory ide aj napajanie LED pasu z baterii. Ked odoberal vacsi prud, tak vznikal ubytok na kabloch a preto CPU nameral mensie napatie. V scheme kvoli tomu uvazujem, ze odporovy delic pre zistenie napatia bude napojeny priamo z baterii vlastnym plosnym spojom. Baterie sa nabijaju hned, ako sa zapne zdroj 230VAC/5VDC. Ten sa zapina pri rozsvieteni celeho LED pasu (t.j. mino nocneho rezimu) a vypina sa 1,5 hod po prijati signalizacie nabitia baterii alebo 1,5 hod po vypnuti LED pasu. V pripade, ze by sa LED pas nepouzil dlhsie, tak CPU pri poklese napatia baterii pod 3,3V sam zapne zdroj pre nabitie baterii. Z tychto baterii som uz zapojil aj bezdotykove mydlo v kuchyni, takze sa nemusim starat o ich nabijanie. Kontrolu napatia a jasu v miestnosti kontroluje CPU kazdu minutu.
CPU zistuje uroven jasu v miestnosti cez fototranzistor umiestneny vedla tlacidla 1. Kontrola je ako som uz pisal kazdu minutu. Fototranzistor je zapojeny tak, aby pri znizovani jasu sa znizovalo napatie. Kvoli tomu nebolo potrebne pre uroven jasu riesit odporovy delic. Pri poklese jasu sa aktivuje nocny rezim a rozsvecuju sa 3 LED v zltej farbe (cervena a zelena farba LED). To uplne staci pre orientaciu sa v kuchyni. Po cca 14 sekundach (cca 7s na pohyb. senzore + 7s v CPU) bez pohybu sa vypnu 2 LED (krajne) a po dalsich 7 sekundach aj ta tretia LED. To je osetrenie, aby osoba vedela, ze ju senzor nezachytava, resp. sa nehybe a musi sa pohybat, aby neostala po tme. Hysterezia pre zapnutie a vypnutie nocneho rezimu z urovne jasu je 200 z ADC hodnoty, co uplne postacuje. Ak si niekto pocas aktivovaneho nocneho rezimu zapne riadne svetlo v kuchymi na strope, tak do minuty sa nocny rezim vypne (musi prebehnut ADC prevod urovne jasu).
Zmenu som urobil ohladne funkcii tlacidiel:
Tlacidlo 1 funguje ako povodne. 1. stlacenie zapne LED pas a len biele LED. 2. stlacenie zapne vsetky farby LED pre maximalny jas. 3. stlacenie vypne LED pas. V podstate toto tlacidlo pouzivame len na zapnutie LED pasu, popripade este to druhe stlacenie pre maximalny jas. LED pas vypiname vacsinou tlacidlom 5, nakolko vacsinou LED pas ide len na bielych farbach LED a tak stlacenim tlacidla 5 obideme rozsvietenie max. jasu. Zapne sa sice nocny rezim, ale ten uz vacsinou aj tak treba, kedze sa LED pas pouziva, ked je tma. A ak by bol dostatocny jas, tak CPU do minuty nocny rezim vypne.
Tlacidlo 2. Tu je zmena a toto tlacidlo je zlucenie povodne tlacidla 2 a 3. T.j. po stlacani tlacidla postupne znizuje jas o 20% a postupne znizuje pocet rozsvietenych LED. Casom som prisiel na to, ze nikomu sa nechce stukat s dvoma tlacidlami, aby znizil jas a aj pocet LED a vzdy sa pouzilo len jedno tlacidlo. Vyhodu to ma aj v tom, ze dalsia funkcia LED pasu je taka, ktora pri plnom rozsvieteni LED pasu a pri necinnosti pohyb. senzora kazde 3 minuty znizuje jas a vypina LED diody. Preto bolo dobre riesenie toto zlucit s tlacidlom 2. Urovne maju rovnake a ak napriklad bol jas LED pasu znizeny tlacidlom 2 a odideme z kuchyne, tak CPU bude postupne vypinat LED pas az od urovne nastavenej tlacidlom 2, kym ho postupne nevypne. A po prichode do kuchyne ho rozsvieti na uroven jasu nastavenu tlacidlom 2 a nie na maximum.
Urovne jasu a poctu LED (kazdy riadok znamena jedno stlacenie tlacidla 2, alebo ubehnutie 3 minut pri neaktívnom pohyb. senzore):
![](https://forum.mcontrollers.com/uploads/default/original/2X/7/786f3bab003c44c273340b70a0df3b748fe438b6.jpeg)
Tlacidlo 3. Kedze sa uvolnilo, nasiel som mu novu funkciu. LED pas uz mam pod celou linkou, je zbytocne, aby vzdy svietil cely. Preto som ho rozdelil na viacej cati, tak ako si mamina povedala. A postupne sa rozsvetcuju stlacenim tlacidla 3.
Tlacidlo 4 funguje teraz ako resetovanie nastaveni tlacidla 1, 2 a 3. Tlacidla 1 preto, ze rusi nastavenie maximalneho jasu na rozsvietenie len bielych LED. Po jeho stlaceni sa rozsvietia vsetky LEDky v bielej farby. Po doprogramovani tlacidla 3 bude nulovat aj jeho zmeny a rozsvieti len cast LED pasu ako na zaciatku.
Tlacidlo 5 je ako povodne. Zapina a vypina nocny rezim. No ale do toho mu uz teraz kecia aj snimac jasu, takze ak ho zapnem cez den, tak ho do minuty CPU vypne a naopak. Ak by som ho v noci vypol, tak si ho CPU do minuty zapne ![:slight_smile: :slight_smile:](https://forum.mcontrollers.com/images/emoji/twitter/slight_smile.png?v=12)
Ako CPU som nakoniec pouzil ATmega644PA-PU, nakolko som skusal funkcnost 4m LED pasu a zistil som, ze v ATmega328P-PU mi chyba pamat na premenne.
Tak hadam vsetko. Ak by ste chceli linky na ali vsetkych veci, ktore som k LED pasu objednavat (suciastky a pod.) tak napiste a mozem urobit zoznam. Coto je ale uz v prispevkoch vyssie. Neviem, ci chcete, aby som urobil aj video, ako funfuje LED pas, ale asi si to viete predstavit ![:slight_smile: :slight_smile:](https://forum.mcontrollers.com/images/emoji/twitter/slight_smile.png?v=12)
A este to najdolezitejsie
Velke podakovanie patri pre Balů, ktory mi v tejto teme dal vela cennych rad, takze DAKUJEM
Uz len dufam, ze bude mat trpezlivost aj pri dalsich mojich “projektoch”.
LED pas_ovladac.pdf (18.7 KB)
LED pas_hlavna schema.pdf (34.2 KB)