Skocz do zawartości

Zwiększenie ilości pinów przerwań


Pomocna odpowiedź

Napisano

Cześć,
używam Arduino Nano które swoje przerwania ma na pinach 2 i 3, ale potrzebuje jeszcze dwóch dodatkowych pinów przerwań.

Czy jest jakaś opcja zwiększenia ilości?

Czy muszę kupić inne Arduino np. Leonardo albo Mega ?

janiu, można trochę "kombinować", ale raczej prostego i skutecznego sposobu na dodanie nowych przerwań nie ma. Na upartego w niektórych przypadkach można podłączyć po 2 czujniki do jednego wejścia - wtedy aktywacja dowolnego z nich wyzwoli przerwania. Nie zadziała to jednak z każdym sprzętem. Do tego nie będziesz od razu wiedział, który z czujników wyzwolił przerwanie.

Poza tym bardzo rzadko potrzeba wiele wejść prawdziwych przerwań. Napisz co robisz, co podłączasz i do czego a prawie na pewno okaże się, że można to samo zrobić inaczej a wręcz żadnych przerwań sprzętowych nie potrzebujesz.

Mam zamiar stworzyć robota który będzie wysyłał trasę która przejechał na serwer i aplikacja będzie w czasie rzeczywistym tworzyła model trasy.

Chciałem to zrobić w oparciu o enkodery a ze względu na to że każdy enkoder ma dwa wyjścia A i B, a ja potrzebuje dwa enkodery to razem daje 4 piny.

Nie musisz obu wyjść podpinać do wejść przerwań. Wystarczy jedno z każdego enkodera lub nawet żadne. Jeśli nie przekroczysz kilkuset imp/s to wystarczająco szybkie próbkowanie np. na okresowym przerwaniu od timera załatwi sprawę. A jeśli to są naprawdę drobne enkodery (tylko po co?) i szybki robot, to bym się nie zastanawiał tylko wziął procesor z natywną obsługą wejść kwadraturowych lub dospawał dwa scalaki/liczniki, które zrobią to samo na zewnątrz. Inaczej może się okazać, że biedny AVR będzie zużywał 100% swojej mocy na obsługę zbyt częstych przerwań, muląc pozostałe algorytmy.

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...