Skocz do zawartości

Wyzwalanie się wejść atmegi 8


MasterFun

Pomocna odpowiedź

Witam!

Mam problem otóż dotykając dłuższym kablem (ok. kilka m) do wejść atmegi wyzwala się ono i wykonują się operacje które są zawarte w programie, nie byłoby nic dziwnego w tym gdyby nie to że druga strona tego kabla wisi w powietrzu. Teoretycznie powinienem zwierać do masy aby wejście zadziałało, a tutaj wystarczy dotknięcie dłuższym przewodem. Dodam też że stosując microswitch i zwierając do masy również działa.

Program (w C) raczej bez znaczenia bo to standardowa operacja sprawdzania stanu wejścia z wykorzystaniem wewnętrznego pull upa.

Jaka może być przyczyna takiego stanu rzeczy, jakieś zakłócenia?

Link do komentarza
Share on other sites

Zakłócenia. Czasami jak dotknę jednym przewodem multimetru masy w robocie, to procesor się restartuje 😋. Co ciekawe, dzieje się tak tylko przy zasilaniu z zasilacza sieciowego.

Link do komentarza
Share on other sites

Hmmm.... a w jaki sposób sobie z tym poradzić? Zasilanie mam wydaje mi się że przefiltrowane, Stabilizator liniowy, za nim kilka kondensatorów, oczywiście blisko samej atmegi. Dodam jeszcze że kilka cm, pod atmegą pracuje parę przekaźników, cewki mają o mocy 360mW, nie wiem czy pole elektromagnetyczne które generują może mieć coś wspólnego.

Link do komentarza
Share on other sites

a w jaki sposób sobie z tym poradzić?

Nie zostawiać "wiszących" sygnałów, podpinać je przez rezystor do vcc lub do masy. Chyba, że chcesz mieć taką właśnie antenę

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Co masz na myśli mówiąc sygnały? Wejścia te które używam mam teoretycznie podpięte rezystorem do vcc, jako wew. pull up. No chyba że masz na myśli linie portów, których w ogóle nie definiuję jako wejścia\wyjścia, tzn. nie mam mowy o nich w programie 😉

Edit:

Poczytałem troche w Internecie na temat zostawiania wiszących linii, i powiem szczerze że zdania są podzielone, jedni zostawiają drudzy definiują w programie jako I\O. Ja szukając rozwiązania mojego problemu, spróbowałem tego drugiego sposobu i zdefiniowałem wszystkie nieużywane linie jako wejścia włączając pull upa, i rezultat żaden, wejście nadal wyzwala się po przyłożeniu przewodu...

Link do komentarza
Share on other sites

MasterFun, nie rozumiem czego się spodziewałeś. Podłączasz do pinu mikrokontrolera antenę, w której indukują się sygnały z otaczającego nas zewsząd pola elektromagnetycznego. Dla wejścia, które ma dość dużą impedancję kilkumetrowy przewód jest jak bateria, która ma jakieś napięcie i ono wystarczy aby wyzwolić zmianę na wejściu.

Link do komentarza
Share on other sites

Hmm.. a jak rozwiązać ten problem? Czy można byłoby między linię portu a GND wstawić tranzystor i bazą tego tranzystora sterować tym portem? Jak uwzględnić prądy Ice żeby dobrać odpowiedni rezystor bazy a przy tym nie uszkodzić atmegi?

Link do komentarza
Share on other sites

MasterFun, wytłumacz mi proszę po co chcesz podłączać antenę pod wejście mikrokontrolera?

Jeśli ten przewód wisi w powietrzu bo jest do niego podłączony switch to musisz dodać zewnętrzny rezystor podciągający do Vcc 10k i może szeregowo z tym kablem rezystor około 100 Om zaraz przy mikrokontrolerze. Tranzystor tylko wzmocni sygnały indukujące się w tym kablu więc to odpada.

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

Sabre, dziękuję teraz znacznie lepiej, spróbowałem tak jak napisałeś, i zakłócenia były znacznie mniejsze, bo nie za każdym razem linia wyzwalała się sama. Fakt faktem nie było jeszcze idealnie, bo czasem powstawała loteria, ale to zawsze jakiś krok naprzód. Swoją drogą w moim dziwacznym urządzeniu urwałem ośkę od silnika, więc dalej nic nie zrobię, dlatego póki co dziękuję za dotychczasowe odpowiedzi.

Pozdrawiam

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.