Skocz do zawartości

Mikrokontroler attiny 2313a na płytce stykowej - wyjścia same zmieniają swój stan


Pio

Pomocna odpowiedź

Zrobiłem prosty układ na płytce stykowej z zaprogramowanym attiny 2313a. Jest to prosty układ z dwoma włącznikami i diodą - dokładnie taki sam jak schemat z tego tematu: https://www.forbot.pl/forum/topics20/kurs-bascom-lekcja3-zaczynamy-programowac-vt1091.htm. Zaprogramowany kontroler działa za każdym razem tak jak powinien pod warunkiem, że nie ma w nim żadnych wejść. Jeśli są to np. diody zapalające się i gasnące po 1 sekundzie to wszystko jest ok. Problem pojawia się, gdy dodam jakieś wejścia i przyciski, żeby diody zapalały się po ich wciśnięciu. Wygląda to tak, jakby przewody, które łączą elementy nie stykały się ze sobą zbyt dobrze. Np. jeśli chcę zapalać diodę po naciśnięciu jednego przycisku i gasić ją za pomocą drugiego to okazuje się, że często dioda albo nie zapala się po zgaszeniu, albo często sama gaśnie - czyli zmienia swój stan. Gdy dioda nie zapala się wtedy, gdy powinna pomaga tylko poruszenie jednego z przewodów pomiędzy wejściem mikrokontrolera, a przyciskiem. Ciężko mi trochę opisać ten problem, bo cały czas wydaje mi się to wszystko bardzo dziwne. Na początku wyglądało to tak, jakby przewody idące do przycisków nie stykały z połączeniami w płytce i przez to dioda nie świeci wtedy kiedy powinna, tylko że tak samo dzieje się, nawet gdy zamiast przycisku podłączę luźny, niepodłączony do niczego innego przewód, albo nawet odłączę/podłączę jakiś inny luźny, niepotrzebny przewód z/do linii zasilania. Na początku myślałem, że to problem z nie stykającymi przewodami, więc zmieniłem je na grubsze, ale nadal jest tak samo. Później właśnie odkryłem, że wszystkie przewody działają jak trzeba i problemem tak na prawdę jest to, że wejścia układu reagują na takie dziwne rzeczy jak poruszenie przewodem - mimo tego, że przewód nie został odłączony i jego stan się nie zmienił. Problem dotyczy tylko mikrokontrolera, a w zasadzie tylko jego wejść i gdy wyjmę uC i zrobię inny układ, np. bateria + dioda to wszystko działa tak jak powinno i nie widać żadnych problemów z połączeniem, więc płytka stykowa, diody i przewody są w porządku. To samo dotyczy też zaprogramowanego układu z tym samym uC, ale bez żadnych wejść - gdy ich nie ma wszystko działa jak trzeba. Wiem, że mój post zrobił się trochę długi, ale to dlatego, że nigdy wcześniej nie spotkałem się z podobnym problemem.

Mikrokontroler zmienia stan wyjść przy dotykaniu przewodów podłączonych do wejść, poruszeniu płytką lub dotknięcia którejś z nóżek wejść uC, a nawet po podpięciu/wyjęciu przewodu z/do linii zasilania. To dzieje się także samo, bez mojej ingerencji - wtedy muszę poruszyć przewodem, żeby dioda się z powrotem zapaliła. To wszystko sprawia, że układ nie działa tak jak trzeba i musiałbym co jakiś czas poruszać jednym z przewodów, żeby się "naprawiał". Jak rozwiązać ten problem?

Link do komentarza
Share on other sites

Jeśli na wejściu procesora nie masz pullup-ów, ani ich nie włączyłeś w uC, to układ ma pełne prawo się tak zachowywać.

Ustaw piny jako wejścia, a jednocześnie ustaw na nich stan logicznej jedynki:

portb.0=1
portb.1=1

Pin nadal będzie wejściem, ale z włączonym pull-upem.

Właśnie zobaczyłem schemat z kursu - zamiast do VCC podłącz przełączniki do masy, inaczej musiałbyś mieć rezystory pull-down w procesorze. Swoją drogą ten schemat z kursu chyba nie jest idealny.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zmiana stanu wejść na 1 faktycznie pomogła. Szkoda, że nie wspomnieli o tym w kursie, bo zaoszczędziłoby mi to trochę czasu. Dzięki za pomoc.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.