Pytanie:
Wyjaśnienie przykładu wejścia analogowego Arduino
A B
2012-07-24 06:34:20 UTC
view on stackexchange narkive permalink

Przede wszystkim jestem totalna w elektronice.

Niedawno dostałem Arduino Nano. Teraz próbuję zrozumieć, dlaczego nie ma nominalnego potencjometru na przykładzie http://arduino.cc/en/Tutorial/ReadAnalogVoltage i jak zmiana tego nominału wpłynęłaby na odczyty wejścia analogowego.

Również dlaczego w przykładzie http://arduino.cc/en/Tutorial/AnalogReadSerial wybrali potencjometr 10k, co byłoby inne w przypadku potencjometru 200k.

Dzięki!

Trzy odpowiedzi:
Oli Glaser
2012-07-24 07:59:11 UTC
view on stackexchange narkive permalink

Nie byłoby różnicy w wyjściu napięcia wycieraczki z dowolnego (nieobciążonego) potencjometru, wszystkie działają w ten sam sposób.

Jednak wejście analogowe w Arduino zaleca impedancję źródła mniejszą niż 10 kOhm, aby uzyskać optymalną wydajność. Wynika to z czasu potrzebnego na naładowanie próbki i utrzymanie kondensatora, który można postrzegać jako impedancję dynamiczną . Poniższy obraz pochodzi z arkusza danych AtMega328 (mikrokontroler, na którym opiera się Arduino):

Analogue input impedance

Nie martw się zbytnio, jeśli nie rozumiesz tego do końca teraz, po prostu zaakceptuj, że potrzebujemy impedancji źródła poniżej 10 kOhm.

A teraz, jak obliczyć impedancję wyjściową potencjometru?

Aby poznać szczegóły, spójrz na impedancję odpowiednika Thevenina. To mówi nam, że maksymalny opór wyjściowy wycieraczki garnka wynosi 1/4 jego oporu mierzonego od góry do dołu (gdy wycieraczka jest pośrodku) Więc jeśli twój garnek ma 10k, to maksymalny opór wyjściowy wynosi 2,5k .
Oto symulacja przesuwania puli 10 000 z jednego końca do drugiego:

Pot Sim

Oś X przedstawia obrót od 0 do 100% ( zignorować pokazane rzeczywiste wartości) Oś Y to impedancja wyjściowa zmierzona na wycieraczce. Widzimy, jak zaczyna się i kończy przy 0 omach i szczytach przy 2,5 kOhm w środku (50%).
To komfortowo mniej niż zalecana impedancja źródła wynosząca 10 k.
Można więc użyć dowolnej wartości potencjometru pomiędzy na przykład 100 omów i 40 k jako dzielnik napięcia.

EDYTUJ - aby odpowiedzieć na pytanie, co się stanie, jeśli użyjemy potrawy 200k:

Jak jest napisane we fragmencie arkusza danych, im wyższa impedancja źródła, tym dłuższy S / H kondensator się ładuje. Jeśli nie jest w pełni naładowany przed wykonaniem odczytu, odczyt pokaże błąd w porównaniu z prawdziwą wartością.

Możemy obliczyć, jak długo kondensator musi ładować się do 90% jego końcowej wartości, wzór jest następujący:

2,3 * R * C

Po 1 stałej czasowej RC napięcie osiąga ~ 63% swojej końcowej wartości. Po 2,3 stałych czasowych jest to ~ 90% jak powyżej. Jest to obliczane ze wzoru 1 - (1 / e ^ (RC / t)), gdzie e jest logarytmem naturalnym ~ 2,718. Na przykład dla 2,3 stałych czasowych będzie to 1 - (1 / e ^ 2,3) = 0,8997.

Więc jeśli wstawimy pokazane wartości - impedancję źródła 50k, impedancję serii 100k (zakładając najgorszy przypadek) i pojemność 14pF:

2,3 * 150k * 14pF = 4,83us do naładowania 90%.

Możemy również obliczyć wartość -3dB:

1 / (2pi * 150k * 14pF) = 75,8kHz

Jeśli chcemy wartość, aby zmieścić się w 99%, musimy czekać około 4,6 tau (stałe czasowe):

4,6 * 150k * 14pF = 9,66us, aby naładować do 99% - odpowiada to około 16,5 kHz

Możemy więc zobaczyć, jak im wyższa impedancja źródła, tym dłuższy czas ładowania, a tym samym niższa częstotliwość dokładnie odczytana przez przetwornik ADC.

Jednak w przypadku kotła kontrolującego wartość ~ DC, możesz próbkować z bardzo niską częstotliwością i dać mu dużo czasu na naładowanie, ponieważ wyciek jest bardzo mały. Myślę więc, że w tym przypadku 200k powinno wystarczyć. Np. sygnał audio lub dowolny zmienny (AC) sygnał o wysokiej impedancji, musisz jednak wziąć pod uwagę wszystkie powyższe informacje.
To łącze zawiera szczegółowe informacje na temat charakterystyki przetwornika ADC ATMega328.

Bardzo dziękuję za szczegółowe wyjaśnienie! Czy możesz wyjaśnić, jak potencjometr większy niż 40 kΩ wpłynie na odczyty cyfrowe? Na przykład pomnóżmy przez 5, aby potencjometr miał wartość 200 kΩ?
@A.B - Dodałem więcej szczegółów, mam nadzieję, że to pomoże. Zdałem sobie sprawę, że garnek w twoim pytaniu służy po prostu do zmiany wartości DC (nie kontrolowania poziomu sygnału AC), więc wyższa wartość powinna być w porządku. Możesz wykonać kilka własnych testów efektu zwiększenia impedancji źródła >> 10k, jeśli masz znane napięcie i zmieniasz rezystancję szeregową.
stevenvh
2012-07-24 10:52:08 UTC
view on stackexchange narkive permalink

Oli pokazał ci informacje w arkuszu danych, ale jeśli jesteś nowy w tej dziedzinie, jego wyjaśnienie może być nieco ponad twoją głowę.

ADC (przetwornik analogowo-cyfrowy) ma mały kondensator, który utrzymuje analogowe napięcie wejściowe. Ten kondensator jest ładowany przez rezystancję na wejściu. Wysoka rezystancja powoduje wolniejsze ładowanie kondensatora. Zalecane jest maksymalnie 10 kΩ, więc użycie potencjometru o tej wartości jest w porządku. Maksymalne 40 kΩ Oli jest prawidłowe, ale stanie się to jasne, gdy dowiesz się o Théveninie.

Dan
2012-12-20 22:08:20 UTC
view on stackexchange narkive permalink

W moim doświadczeniu z Arduinos, z potencjometrami powyżej 10k, odczyty będą się zmieniać. Rozwiązuję to, umieszczając kondensator .1uf między wycieraczką a masą. Dzięki temu napięcie dla odczytów analogowych jest stabilne. Używając kondensatora, użyłem garnków do 1 MegaOhm i otrzymałem solidne, stabilne odczyty.

Podoba mi się to, ponieważ równoległy kondensator .1uF zapewnia niską impedancję źródła po przełączeniu pinu wejściowego.0,1 uF / 14 pf = 7142, a rozdzielczość adc (10 bitów) to 1 na 1023. Przy bardzo dużych potencjometrach będzie występować niewielkie opóźnienie między ustawieniem a stabilizacją napięcia na pinie wejściowym, ale jest to mało prawdopodobne.Potencjometr 4Mohm to 1Mohm imp.* 0,1 uF = 0,1 sek.Czyli w 0,46 sek.Twoja wartość ustala się na poziomie 99% zmiany!
Przepraszam, jeśli wydaje się to głupie, ale co się stanie, jeśli napięcie spada?


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...