Google+ Start   |   E-mail   |   Newsletter:

atb pomiar napięcia ADC

Dzielnik napięcia i sposób pomiaru napięcia - ADC
Począwszy od wersji 1.03 zestawy uruchomieniowe ATB zostały zaopatrzone w nietypowy dla rozwiązań konkurencyjnych, dzielnik napięcia a także weście służące do pomiaru napięć prądu stałego w bardzo szerokim zakresie napięć dodatnich. Schemat tego modułu jest być może mało czytelny z uwagi na konieczność jego upakowania na całym schemacie zestawu, dlatego w tym miejscu chcielibyśmy dokładniej przedstawić możliwości jakie on za sobą niesie. Przede wszystkim, prezentowane podejście posiada wysokie walory dydaktyczne i pozwala w bardzo dobrym stopniu oraz stosunkowo szybko opanować przez początkujące osoby zagadnienia związane z podstawowymi trybami pracy przetworników ADC wbudowanych w mikrokontrolery.
Pomiary napięcia - kalibracja ADC

Zwykły potencjometr:

Rozważmy pierwszy przypadek najczęściej stosowanego rozwiązania w różnych zestawach uruchomieniowych. Otóż do dyspozycji użytkownik dostaje zwykle po prostu jeden, czasem nawet aż dwa zwykłe potencjometry wmontowane w PCB, w ten sposób jak na schemacie po lewej stronie. Mamy zatem absolutnie prosty przykład, gdzie jedna końcówka potencjometru podłączona jest do GND, druga do zasilania, najczęściej +5V zaś suwak potencjometru wyprowadzony jest na pojedynczym goldpinie i można go podłączyć do jednego z wejść ADC mikrokontroler AVR. Świetnie, ale jest mały kłopot, ponieważ faktycznie możemy dokonywać jakichś tam pomiarów napięcia. Tyle że to wciąż będą tylko "jakieś tam" pomiary i najczęściej nikomu niepotrzebne (zaraz wyjaśnię dlaczego). Trzeba mieć bowiem na uwadze fakt, że gdy posługujemy się przetwornikiem ADC wbudowanym w mikrokontroler to musimy przede wszystkim wybrać tzw "źródło odniesienia" czyli pewne napięcie odniesienia, w stosunku do którego nasz ADC będzie wykonywał pomiary. W procesorach AVR w większości wypadków mamy możliwość programowego wyboru jednego z 3 źródeł:

  1. napięcie VCC (zasilanie)
  2. wewn. źródło odniesienia 2,56V (lub 1,1V w zależności od wersji procesora)
  3. zewnętrzne napięcie odniesienia ustawione na nóżce AREF procesora

Aby maksymalnie uprościć nasze rozważania załóżmy że posługujemy się dwoma przykładami, jeden gdy chcielibyśmy skorzystać z napięcia odniesienia VCC = 5 V, oraz drugi wariant, gdy wybierzemy programowo (ustawiając odpowiednie bity w rejestrze ADMUX), wewnętrzne źródło 2,56 V. W pierwszym przypadku gdy skorzystamy z AREF=5V i zaczniemy kręcić potencjometrem zamontowanym jak na schemacie (widocznym po lewej stronie), okaże się że wartość pary rejestrów ADCH oraz ADCL, którą można w AVR GCC odczytywać w postaci ADCW (łącznie gdy korzystamy z rozdzielczości 10-bit), będzie wynosiła: 0 ( 0 V gdy suwak będzie na samym dole),  512 ( 2,5 V gdy suwak ustawimy pośrodku) oraz 1023 ( 5V gdy suwak ustawimy na górze ). Mowa o schemacie po lewej stronie. W takim razie teraz rozważmy jakie uzyskamy wartości ADCW gdy wybierzemy wewn. napięcie odniesienia  2,56 V. Okaże się, że wartość będzie wynosiła: 0 ( 0 V gdy suwak będzie na samym dole),  ok 1023 ( 2,5 V gdy suwak ustawimy pośrodku) oraz 1023 ( 5V gdy suwak ustawimy na górze ). Cóż się stało ? Okazuje się, że kręcąc suwakiem od połowy do góry (do VCC) wartość ADC nie będzie się zmieniać i będzie równa maksymalnej wartości związanej z 10-bitową rozdzielczością = 1023. I to byłoby tylko TYLE ile możemy skorzystać z dydaktycznej wartości zamontowanego jednego czy nawet dwóch potencjometrów w taki sposób. Nie jesteśmy w stanie nawet wykonać prób pomiaru napięć zewnętrznych, pomiaru napięcia bateryjek, które mamy pod ręką czy nawet napięcia zmieniającego się w zakresie od 0 do 32V z regulowanego zasilacza laboratoryjnego. Aby mieć więcej możliwości należałoby skorzystać z dzielnika rezystorowego. Ale takiego nie ma zwykle w zestawie, więc trzeba dokładać go na zewnątrz np na płytce stykowej. 


Dwa dzielniki napięcia:

Sprawdźmy zatem jak sprawa wyglądałaby gdybyśmy zamiast dwóch potencjometrów w zestawie, otrzymali np dwa dzielniki rezystorowe w których rezystory byłyby tak dobrane (zgodnie ze wzorem) aby można było dokonywać właśnie pomiarów napięcia zewnętrznego w zakresie od 0 do 32V. Proszę spojrzeć na nowy schemat po lewej stronie. Tym razem widzimy dwa niezależne dzielniki rezystorowe i zakładamy że poza wyjściem z suwaka potencjometru do procesora posiadamy jeszcze wejście dzięki któremu możemy podawać na nie zregulowanego zasilacza napięcia od 0 do 32 V. Jak dobrać rezystory w takim dzielniku. Jest to dosyć prosta sprawa. Wystarczy bowiem spojrzeć na przedstawiony wzór na rysunku aby zobaczyć jakie napięcie uzyskamy pomiędzy rezystorami dzielnika w porównaniu do przyłożonego napięcia na górze naszego dzielnika, czyli do rezystora R. Na schemacie widać wartości rezystorów oraz napięcia Uwy, które można sprawdzić zgodnie z podanym wzorem. Zresztą w ten sposób zawsze należy podchodzić do zagadnienia pomiarów napięć za pomocą mikrokontrolera.

  • Najpierw trzeba rozważyć jakie może wystąpić maksymalne mierzone napięcie
  • Następnie trzeba rozważyć z jakiego napięcia odniesienia skorzystamy (w naszym przypadku czy z 2,56 V czy może VCC = 5 V)
  • Na końcu trzeba tak dobrać wartości rezystorów, aby przy maksymalnym napięciu uzyskać na środku dzielnika wartość naszego wybranego napięcia odniesienia.

Zabiegów tych dokonujemy po to aby móc za pomocą odczytów ADC sprawdzać wartość rejestrów ADCH i ADCL (ADCW) .... i chcemy uzyskać taki efekt aby przy wybranym napięciu odniesienia wartość ta zmieniała się w pełnym zakresie od 0 do 1023, a nie tak jak w drugim przypadku opisanym przy schemacie wyżej. Byłoby to już dużo lepsze rozwiązanie, jednak nadal posiadałoby istotną wadę, otóż dzielniki byłyby przygotowane do pomiaru konkretnej i stałej maksymalnej wartości napięcia +32 V. Tymczasem mogłoby się okazać, że już po okresie nauki ADC mielibyśmy potrzebę zbudowania błyskawicznie prostego układu pomiarowego dla całkiem innego zakresu napięć. W takim wypadku znowu trzeba by było sięgać po płytkę stykową i korzystać z wątpliwej przyjemności podłączania wielu przewodów połączeniowych. Inną wadą byłby fakt, że nawet w przypadku doboru droższych rezystorów o dużo lepszej tolerancji np 1 % wciąż taki 1 % wpływałby na niedokładność obliczeń napięcia już w samym programie. Zakładamy, że jednak wymogiem byłoby stworzenie woltomierza na wyświetlaczu LCD lub LED.


 
Regulowany dzielnik napięcia - rozwiązanie w ATB:

Aby wyeliminować wady wyżej opisanych rozwiązań a przy okazji znamiennie udoskonalić możliwość kalibracji sprzętowej takiego woltomierza, po to aby mniej kłopotów było od strony programowej, firma Atnel wprowadziła dosyć nietypowy dzielnik napięcia. Jest on bowiem regulowany w pełnym zakresie co pozwala tak dobrać elementy (jeden rezystor jest wymienny), aby uzyskać możliwość pomiaru napięć w praktycznie dowolnym zakresie. Dodatkowym i nieocenionym atutem tego rozwiązania jest możliwość bardzo precyzyjnej kalibracji dzielnika a w efekcie końcowym uzyskanie o wiele dokładniejszych pomiarów ale także wyświetlanych wartości mierzonych napięć.

Proszę zwrócić uwagę dokładnie na schemat. Tym razem naszym rezystorem R będzie wartość rezystora, którego możemy dodatkowo zmieniać wg własnego uznania, poszerzając lub zawężając zakres mierzonych napięć, plus wartość rezystancji potencjometru od jego suwaka do nóżki podłączonej do wymiennego rezystora. Należy zatem wziąć omomierz i zmierzyć wartość rezystancji oznaczonej na schemacie jako Rb oraz Ra. Nie wyobrażam sobie, żeby osoba stykająca się z elektroniką, nie miała "pod ręką" miernika uniwersalnego do pomiarów co najmniej napięcia oraz rezystancji. A wystarczy tutaj najprostszy miernik. Wystarczy zatem przyłożyć jedną sondę miernika do suwaka potencjometru a drugą do końcówki pomiarowej oznaczonej jako VOLT ! To bardzo ważne a zarazem bardzo proste zadanie. W wyniku pomiaru, posługując się nawet kiepskiej jakości miernikiem, zwykle uzyskamy o wiele dokładniejszą wartość tej rezystancji, niż wynikałaby ona z faktu zastosowania rezystorów o tolerancji 1 %. W tym momencie uzyskujemy potrzebną nam wartość rezystora oznaczonego jako R w naszym dzielniku. Każdy się domyśla, że kolejnym krokiem będzie pomiar rezystancji pomiędzy suwakiem potencjometru a GND i to będzie wartość rezystora R1, potrzebna do wzoru. Uzyskamy zatem w wyniku tych dwóch prostych pomiarów, dokładne wartości obydwu rezystorów dzielnika. Należy dodać, że dokonujemy tego zanim podłączymy suwak potencjometru do mikrokontrolera, dlaczego ?

Dlatego, że musimy ustawić na wejściu maksymalne pożądane napięcie, które chcemy mierzyć, następnie suwakiem potencjometru ustawić napięcie WYJŚCIOWE do takiej wartości, jakie wybraliśmy źródło odniesienia. Możemy się zatem (jak widać) dostosować płynnie do dowolnego źródła odniesienia! Jeśli wybierzemy programowo 2,56 V to suwakiem pokręcamy aż uzyskamy na suwaku (mierząc tym razem naszym miernikiem - woltomierzem) napięcie 2,56V. Jeśli  mamy zamiar korzystać z napięcia odniesienia 5 V to ustawiamy suwakiem napięcie na +5V. Przy czym ten drugi przypadek jest mniej zalecany z uwagi na to że napięcie zasilania VCC jest po pierwsze o wiele mniej stabilne niż wewnętrzne źródło odniesienia 2,56V a często ma większe odchyłki wartości niż +5V w związku z czym o wiele trudniej później dobrać wartość do obliczeń. Zdecydowanie w tym momencie polecam korzystanie z wewnętrznego źródła odniesienia.

To co teraz napiszę wprowadzić może w pewną konsternację początkujące osoby, jednak okazuje się, że wewnętrzne źródło odniesienia rzadko kiedy posiada iedalnie wartość napięcia 2,56 V lub dokładnie 1,1 V. W związku z tym, jak widać, to jest powodem nerwów a nawet zniechęcenia, przy próbach z pomiarami ADC, gdyż jest wiele czynników wpływających na dokładność pomiarów i wydaje się początkującej osobie, że trudno nad nimi zapanować. Tymczasem opisuję tutaj jak krok po kroku można postępować i eliminować sporą część takich błędów. W takim razie zakładając, że napięcie 2,56 V wcale nie musi tyle wynosić - to jak to sprawdzić ? Na szczęście jest to bardzo proste, wystarczy bowiem przyłożyć tym razem miernik "woltomierz" do pinu AREF mikrokontrolera i GND. W tym momencie zobaczymy dokładnie jakie jest to napięcie a podkreślam że może się ono różnić nawet pomiędzy różnymi egzemplarzami takiego samego rodzaju mikrokontrolera. Na szczęście jeśli je zmierzymy i okaże się, że zamiast 2,56 V ujrzymy wartość 2,48 V to żaden kłopot mając do dyspozycji regulowany dzielnik w zestawie ATB! Wystarczy teraz suwakiem ustawić przy maksymalnym napięciu wejściowym - napięcie wyjściowe = 2,48 V ! I koniec, to wszystko - to koniec regulacji. Mając to na uwadze można już w programie skorzystać z wzoru podanego na dole rysunku widocznego po lewej stronie. Dzięki temu uzyskamy po obliczeniach tego wzoru bardzo precyzyjne pomiary, i po raz pierwszy okaże się, że w końcu udaje się wykorzystać tak proste 8-bitowe mikrokontrolery do budowy własnego dość precyzyjnego woltomierza. Proponuję to sprawdzić empirycznie posługując się teraz przykładami ADC zamieszczonymi w książce pt. "Mikrokontrolery AVR Język C Podstawy programowania". Tyle że tym razem skorzystamy z najnowszych rozwiązań zastosowanych w zestawach uruchomieniowych ATB 1.03 oraz 1.04.

 

 

>>> powrót <<<

ikona Strona główna ikona O nas ikona Wydawnictwo ikona Elektronika ikona Oprogramowanie ikona Kursy ATNEL ikona Nowości ikona SKLEP ikona FORUM ikona Kontakt ikona Polityka Prywatności Cookie

ATNEL Nowoczesne Rozwiązania - programowanie AVR w C | pisanie programów dla AVR | pisanie programów ATmega | pisanie programów dla AVR | programowanie mikrokontrolerów |
mikrokontrolery AVR programowanie | programowanie w C mikrokontrolerów | programowanie ATmega | programy w C AVR
Realizacja: Dpl Agency - Projektowanie Stron Internetowych