Skocz do zawartości

Odczyt wartości wejsc analogowych [Arduino]


Av4444

Pomocna odpowiedź

Witam!

Mam następujący problem. Ogólnie korzystam z Arduino, mam do portów analogowych A0, A1 i A2 podłączone 3 potencjometry, dzięki którymi podłączam serwa do wyjść 3, 5, 6 (PWM) aby nimi sterowac. I problem jest następujący:

-Wtedy kiedy mam podłączone 3 potencjometry + 3 serwa: wszystko jest ok, wszystko działa i elegencko się steruje.

-W przypadku podłączenia tylko 1 potencjometru do sterowania jednego serwa wyjście PWM nr 3, 5 i 6 posiadają jednakowe wartości (5 i 6 takie same jak 3 mimo ze do analogów A1 i A2 nie ma podlaczonych potencjometów) co powoduje ze pokręcając pierwszym potencjometrem powodujemy ruch 3 serw, które są do portów podłączone

W załączniku załączam szkic, który jest w mikrokontrolerze.

Podsumowując dlaczego wyjścia pwm 5 i 6 mają taką samą wartość jak pwm 3, który jest sterowany przez potencjometr podłączony do A0?? Wygląda to jakby analogi A1 i A2 przyjmowały wartości z A0

szkic.txt

Link do komentarza
Share on other sites

pamiętaj, że jak nie podłączasz nic do ADC, pin "wisi sobie luzem" to dostajesz losowe odczyty ADC. Efekt jest tym bardziej widoczny, im większą długość mają ścieżki które nie są do niczego podłączone.

Dobrze by było nieużywane piny ADC podpiąć przez jakiś większy rezystor do masy.

Link do komentarza
Share on other sites

Jeśli chcesz, by ADC zmierzył 0V, musisz mu to 0V na wejście podać. Niepodłączony pin nie oznacza 0V - to już wiesz, a teraz napiszę Ci dlaczego.

Przetworniki typu SAR stosowane w procesorkach AVR mają pewną niemiłą cechę: wyjątkowo nie lubią, gdy napięcie wejściowe zmienia się w czasie pomiaru. W pewnych warunkach błędy spowodowane takimi zmianami mogłyby osiągać nawet 1/2 całego zakresu pomiarowego. Wynikają one wprost z zasady działania takiego przetwornika. Oczywiście nikt normalny na taką kaszanę się nie zgodzi, a ponieważ byłoby bardzo trudno zagwarantować, że napięcie będzie stabilne dokładnie wtedy gdy ADC mierzy, producenci takich przetworników wyposażają je w analogowy układ wejściowy zwany sample/hold. Nie inaczej jest i tutaj. Układ taki składa się z kondensatora i kilku kluczy analogowych. Tuż przed rozpoczęciem pomiaru (gdy już ustawisz bit ADSC) kondensator podłączany jest do wybranego multiplekserem ADMUX wejścia i bardzo szybko zostaje naładowany do napięcia tam panującego - to jest faza "sample". Źródłem prądu ładującego (lub rozładowującego) pojemność jest właśnie to coś (czujnik, wzmacniacz, dzielnik oporowy itp) podłączone z zewnątrz. Po krótkiej chwili układ przechodzi do fazy "hold" - kondensator odłączany jest od pinu ADCx a klucze podają jego napięcie na wejście właściwego przetwornika. Ten może teraz spokojnie pracować wiedząc, że nic napięcia na kondensatorze próbkującym już nie zmieni. Gdy od razu startujesz konwersję w kolejnym kanale, ten sam kondensator podłączany jest do kolejnego wejścia. Gdy wisi ono w powietrzu to nie ma niczego, co mogłoby napięcie układu sample/hold zmienić. Kondensator robi za układ pamiętający. Ponieważ jest mały, gdy nie ma sterowania z czegoś konkretnego na napięcie na nim mogą wpłynąć różne sygnały zakłócające z innych ścieżek, kabli itp. i wtedy widzisz "losowe" odczyty. Gdy nóżka wejściowa jest samotna i nie ma "antenki" jest duża szansa, że będzie powtarzała napięcie z poprzedniego pomiaru właśnie dzięki kondensatorowi układu sample/hold.

Jeżeli w swoim układzie przewidujesz różne konfiguracje potencjometrów, tzn. raz jeden, dwa albo czasem trzy - zrób jak Sosnus radzi: każde wejście wyposaż na stałe w opornik, np. 10k do masy. Wtedy po dołączeniu potencjometru masz regulację, a po jego odłączeniu rezystor aktywnie rozładowuje wejście i będziesz miał odczyty w okolicach 0V. Oporniki trochę zmieniają liniowość zmian napięcia i nie mogą być zbyt małe w stosunku do rezystancji potencjometru, ale jeśli będą co najmniej kilka razy większe niż Rpot, nie zauważysz ich wpływu. Z resztą przy ręcznym zadawaniu pozycji serwa drobne zmiany liniowości chyba nie mają wielkiego znaczenia.

  • Pomogłeś! 1
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

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.