Skocz do zawartości

UNO klon CH340 ATmega328: Przerwania same się generują - problem z czujnikiem szczelinowym w robocie


Zbigbe

Pomocna odpowiedź

Cześć! Napotkałem problem samoistnego generowania się przerwań dla układu z czujnikami szczelinowymi. Czy ktoś wie jak to uspokoić?

Na dwóch kołach platformy robocika zamontowałem tarczę enkodera i czujniki szczelinowe z komparatorem LM393. Wyjście DO czujników podłączyłem do pinów z przerwaniami (dla UNO to 2,3). Obroty, dla porównania, zliczam zarówno przez przerwania jak też przez odczyt stanu na pinach.

Objawy błędu:
- przerwania generowane są nadmiarowo, mniej więcej 4x więcej niż powinno być (porównuję do zliczenia wg stanu na pin)
- gdy napędzam tylko jedno koło, to mimo wszystko przerwania drugiego koła też się generują! Gdy odłączę przewody drugiego czujnika to ten się uspokaja. Tak jakby układ się wbudzał od pracy pierwszego czujnika.

Próbowałem wyeliminować zakłócenia zasilania poprzez wpięcie kondensartora 100uF w układ zasilania czujników, oraz niestabilność komparatora czujnika przez wpięcie kondensatora 100nF pomiedzy DO a GND. Zauważyłem, że dla minimalnych prędkości obrotowych pomogło. Jednak przy większych prędkościach (100 zmian stanu /s) system szaleje.

Elementy układu:
Arduino UNO R3 CH340 AVR ATmega328 klon
Platforma robota podwozie 4WD, 2x Silniki DC do napędu platformy robota, sterownik silnika L298N
Czujnik szczelinowy z komparatorem LM393

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.