Witajcie forumowicze,
Zrobiłem schemacik i płyteczkę ale niestety pojawiły się pierwsze problemy, wgrywam program, chodząca dioda ma sobie ma chodzić a jak nacisnę przycisk na płycę z uC ( Mega32), to mają zapalić się wszystkie diody i z rejestru (wysyłam 0x00), oraz uC ma włączyć przekaźnik poprzez tranzystor na x czasu, ale to nieważne.
Wszystko działa, ale napotkałem dziwne zjawisko, diodka ma chodzić sobie w dwie strony, niestety czasem chodzi, czasem nie jakby wszystko łapało laga, albo diodka chodziła tyle że ledwo widzialna. Najlepsze, że na stykówce wszystko pinknie chodziło. Kolejną dziwną rzeczą jest, że po naciśnięciu przycisku wszystkie diody się zapalają po wysłaniu (0x00) i z tym nie ma problemu (problem dotyczący przycisku w #1). Program z kanału Mirka tj.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
switch_on(); - sprawdza czy został wciśnięty przycisk, to działa znakomicie (hehe "znakomicie" #1).
Wewnątrz tej funkcji jest m.in. inny delay
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Takie "ala" odliczanie czasu do wyłączenia przekaźnika po tej funkcji.
#1 - niestety chodząca diodka po wciskaniu przycisku działała... do wczoraj, dzisiaj układzik zgłupiał. Może uszkodziłem go podczas testów, jutro będę miał kilka nowych to przelutuję, zwarć nie ma, przejścia wszystkie sprawdziłem 3 razy bo szkoda było mi tej płytki
Niestety problem może leżeć po stronie schematu bądź programu, ostatecznie ten układzik może być uszkodzony, dziwi mnie to, bo zrobiłem 2 takie same płytki i nie chce mi się wierzyć aby 2 układy były uszkodzone
Eagle -
WAŻNE ! - błąd na schemacie, oporniki niby 10k, ale dodane są ~700 Ohm, pierwsze z szeregu w wzwyż, nie znam dokładnej wartości.
To nie jest moja pierwsza płytka ale takie dziwactwo mam pierwszy raz w życiu, bardziej obstawiałbym błąd w programie, bo z AVR mam styczność od niedawna tak naprawdę, książka leżała i kurzyła się... do teraz
Dodam jeszcze, że na stykówce pomagało (chwilowo na 2 - 3 przejścia pętli nieskończonej) włożenie pomiędzy VCC układu a GND kondka 100nF, niestety diody teraz już w ogóle nie chodzą, ale układ reaguje na przycisk, tak więc program działa (poniekąd), wtedy też zaświecają się na chwilkę wszystkie diody informujące o wciśnięciu przycisku (włączenie przekaźnika), potem powinna jedna przelecieć i wrócić ( nie działa ), zaświecają się wszystkie na chwilkę (działa) i wraz z gaśnięciem na bramkę tranzystora przekaźnika jest podawane logiczne 0 (i to działa).
Myślałem też nad tym, że może ścieżki są za wąskie (16 mils), ale to nie to bo ten sam układ na stykówce też wariuje, gdzieś mam błąd, może paprochów z zasilania za dużo, nie mam pomysłu już na to. Czyste C to nie to samo co LD i trochę mnie to przerastać zaczyna.
Będę wdzięczny za każdą wskazówkę
-------------------
Kolejne spostrzeżenie ale nie chce już mącić w tekście, bo chciałem wszystko napisać a pewnie powtórzyłem niektóre rzeczy po 2 razy
Pierwsza diodka od tego mojego "licznika" i w pętli głównej i w przycisku zapala się, zaobserwowałem to, podczas włączania programu robię test diod w funkcji main
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Po tym teście, zapala się pierwsza diodka na czas z _delay_ms, gaśnie i .... no i właśnie i nic, i czekam i czekam, a tutaj zapala się co jakiś czas 1 diodka (pierwsza), tak więc funkcja chce startować.
Mam nadzieję, że połapiecie się w tym poście i ktoś bardziej doświadczony wyłapie babola, bo za dużo rzeczy tu działa aby było to totalnie skopane. Musi to być pewnie głupi błąd, którego ja nie mogę wychwycić.
Dla wszystkich, którzy zdołali przeczytać moje wypociny - SZACUN, napisane jest to w taki sposób, bo co włączę to dziadostwo do sieci, to coś innego się pokazuje a chciałbym tu podać jak najwięcej informacji.
Pozdrawiam