Skocz do zawartości
marcin123123

LF z multiplexerami

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 🙂

Udostępnij ten post


Link to post
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 🙂

Udostępnij ten post


Link to post
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.

Udostępnij ten post


Link to post
Share on other sites

marcin123123, a jakiej rozdzielczości enkodery chcesz użyć? Nie lepiej zainteresować się STMami? Szybki ADC + wbudowany interfejs od enkoderów.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

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

Udostępnij ten post


Link to post
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?

Udostępnij ten post


Link to post
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

Udostępnij ten post


Link to post
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...