Elektroda.pl
Elektroda.pl
X
Osprzęt kablowy
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Oświetlenie schodów, napisany program a opóźnienia.

29 Sty 2016 18:27 795 9
  • Poziom 8  
    Witam. Jakiś czas temu postanowiłem zrobić własny układ oświetlenia schodów za pomocą taśm LED i ATMEGI8. Cały układ pod względem fizycznym mam gotowy, wszystko polutowane, ale pozostał ostatni etap, z którym właśnie mam problem, czyli program dla mikrokontrolera. Jako, że nie znam dobrze języka C, otrzymałem od pewnego forumowicza gotowy program. Wszystko prawidłowo skompilowałem (a przynajmniej tak mi się wydaje, ponieważ program żadnych błędów ani ostrzeżeń nie wyrzucał), po czym zaprogramowałem napisany program w pamięci ATMEGI8 (również nie wyrzuciło żadnych błędów).

    Problem wygląda następująco: po podłączeniu zasilania i wzbudzeniu czujki nr 1 ledy zapalają się po kolei dopiero po upływie ok. 30 sekund. Chciałbym, żeby zapalały się praktycznie od razu, ponieważ co mi po oświetleniu schodów, skoro zdążę zejść, nim się ledy zapalą? :D
    Moja prośba, czy mógłby ktoś obeznany sprawdzić napisany program? W którym miejscu jest błąd/funkcja odpowiedzialna za ten delay?
    Od razu mówię, że fusebity ustawiłem na 8MHz, oraz w pliku makefile ustawiłem również częstotliwość na 8MHz, wraz z optymalizacją OS.
  • Osprzęt kablowy
  • Poziom 32  
    Widzę że wraca temat schodów.
    Próbowałeś uruchomić program który ja zamieściłem wtedy w temacie?
    Być może nie jest to arcydzieło pod względem składni, ale na 100% działa testowałem, zresztą u kolegi któremu to robiłem działa do dzisiaj.
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=15083055#15083055
    Mogę skompilować i podesłać plik hex.
  • Osprzęt kablowy
  • Poziom 8  
    Właśnie o ile pamiętam, to ten program był na 13 schodów, tak? Ja potrzebuję na 16 schodów, więc jeżeli znalazłbyś czas, by przerobić program na 16, to byłoby fajnie i chętnie go sprawdzę ;)
  • Poziom 8  
    Fakt, czujniki nie mają tym razem opóźnienia, ale nie wiem dlaczego dany schodek się zapala, po czym po chwili gaśnie, zamiast czekać na sygnał z czujki nr 2.
  • Poziom 32  
    Jak to dany "schodek" się zapala i gaśnie?
    Powinny zapalić się wszystkie po kolei, zgasnąć dopiero po zadziałaniu którejkolwiek czujki ( nie wcześniej).
    Wytłumacz czy gaśnie tylko jeden konkretny "schodek", czy wszystko podłączyłeś jak na schemacie, filtracja napięcia zasilającego odpowiednia, nasuwa się dużo pytań, bo skoro układ dla 13 wyjść działał poprawnie to dlaczego nagle szwankuje.
  • Poziom 8  
    marekhab napisał:
    Jak to dany "schodek" się zapala i gaśnie?
    Powinny zapalić się wszystkie po kolei, zgasnąć dopiero po zadziałaniu którejkolwiek czujki ( nie wcześniej).
    Wytłumacz czy gaśnie tylko jeden konkretny "schodek", czy wszystko podłączyłeś jak na schemacie, filtracja napięcia zasilającego odpowiednia, nasuwa się dużo pytań, bo skoro układ dla 13 wyjść działał poprawnie to dlaczego nagle szwankuje.


    Jednak okazało się, że to nie wina programu, tylko "wariujących" czujek. Gdy podaję czyste 5V na piny PC3, albo PC4, to prawidłowo następuje sekwencja zapalania/gaszenia ledów - także program działa prawidłowo. Jednak nie mam pojęcia dlaczego czujki tak wariują. Zmierzyłem miernikiem napięcie, jakie podają na "out" i okazuje się, że jest to napięcie w granicach 2,3V - czyli o ile wiem to nawet nie jest uznawane przez mikrokontroler za stan wysoki. Wydaje mi się, że czujki nie są uszkodzone, ale 100% pewności nie mam. Reagują prawidłowo na ruch, tylko po prostu niskie napięcie dają, przez co pewnie są takie problemy.

    Jeszcze pytanie co do funkcji "test" w programie. Dlaczego została ona wyłączona?
  • Poziom 32  
    Być może masz długie przewody między czujnikiem a µC (jakiś spadek napięcia).
    Spróbuj między czujniki a µC dać tranzystory bądź bramki logiczne zasil to 5V, bo 0o ile pamiętam to czujniki miały na wyjściu około 3.5V. Zmierz jakie napięcie dochodzi do µC z tych czujników.
    Test wyłączyłem dlatego że musiałbym dopisywać wszystko na te 16 schodów, a chciałem szybko Ci to napisać. Jeśli tak bardzo Ci zależy to mogę dopisać brakującą część, ale dopiero pod koniec tygodnia lub poi weekendzie.
  • Poziom 8  
    Wymieniłem rezystor, który idzie na wyjście czujki na rezystor o mniejszej wartości i problem rozwiązany. Z programem, a dokładniej z testem spróbuję sobie poradzić sam, trochę poczytałem o programowaniu, więc mam nadzieję, że podołam zadaniu ;)
    Mam jeszcze pytanie co do czujek. Jaką zastosowałeś obudowę? Posiadam czujki HC SR501 i bardzo ciężko mi znaleźć jakąkolwiek obudowę.