Skocz do zawartości

LF z multiplexerami


marcin123123

Pomocna odpowiedź

Witam wszystkich!

Piszę dzisiaj z takim oto problemem. Otóż, stworzyłem schemat linefollowera opartego o analogowy odczyt stanu czujników wykorzystując zewnętrzne multiplexery (układy 4051). Na ich wejścia wchodzą sygnały z KTIR-ów, a z wyjść wchodzę na ADC mikrokontrolera (atmega32). Wykorzystywane są dwa takie multiplexery (12 czujników). Moim założeniem było takie sterowanie odczytem:

1. Wybieram odpowiednie wejście multiplexera ustawiając wejścia adresowe

2. Odczytuję za pomocą ADC uC stan wybranego czujnika

I to po prostu chciałem zapętlić/ wykonywać w przerwaniu. Czy takie odczytywanie (12 czujników) nie będzie zbyt wolne? Czy wykorzystywanie takich multiplexerów to gra "warta świeczki"? Pozdrawiam 🙂

Link do komentarza
Share on other sites

Wszystko zależy jeszcze od realizacji programowej oraz od tego jakich osiągów oczekujesz. Były już takie projekty realizowane na forum. Powinno działać całkiem dobrze, ale przetworniki ADC w AVR nie są demonami prędkości 🙂

Link do komentarza
Share on other sites

Robot ma mieć turbinę EDF, więc osiągi oczekiwane powinny być raczej powyżej "średniej" 🙂 Jaka jest optymalna częstotliwość odczytywania czujników w dosyć szybkim linefollowerze? Programowo będzie realizowany regulator PI oraz będzie wykorzystywany odczyt z enkoderów optycznych.

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

Odnośnie adc na Atmega32 to przy 8 czujnikach uzyskałem częstotliwość pomiaru ok 500Hz.

Do 1-1,5m/s to może wystarczy ale coś szybszego to rzeczywiście bym zrezygnował z AVR'a, sam zamierzam w przyszłości przerzucić się na ARM'y

Link do komentarza
Share on other sites

Będą to zwykłe enkodery optyczne Pololu z tarczami pięcio-łopatkowymi pracujące z Pololu HP 10:1. Będą dawały ok. 200 impulsów na obrót za przekładnią. STM narazie niestety odpada, bo czas mocno goni i nie mogę teraz zaczynać uczyć się pracy z nową rodziną uC.

EDIT:

Jeżeli z jednego wejścia ADC atmegi32 można odczytywać z częstotliwością ok. 150-200kHz, to w przypadku wykorzystania dwóch wejść częstotliwość spada o połowę czyli do ok. 75kHz, tak? Jeżeli się nie mylę to będę mógł odczytywać stany z dwóch wejść co około 10us, czy to naprawdę tak wolno?

Link do komentarza
Share on other sites

10us to nie jest dużo aczkolwiek wszystko zależy od zastosowania,
pamiętaj, że pętla programu również wykonuje się jakiś określony czas,
aby nie uzależniać szybkości odczytu ADC od obiegu całej pętli,
zrób osobny podprogram do ADC wywoływany timerem by częstotliwość odczytu była stała

  • Lubię! 1
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.