W tym projekcie zamierzamy wykonać amperomierz niskiego zakresu z wykorzystaniem mikrokontrolera ATMEGA8. W ATMEGA8 użyjemy do tego 10-bitowego ADC (konwersja analogowo-cyfrowa). Chociaż mamy kilka innych sposobów na pobranie bieżącego parametru z obwodu, zamierzamy użyć metody rezystancji spadku, ponieważ jest to najłatwiejszy i najprostszy sposób uzyskania bieżącego parametru.
W tej metodzie prąd, który należało zmierzyć, przepuścimy na niewielki opór, dzięki czemu uzyskamy spadek na tym oporze, który jest związany z przepływającym przez niego prądem. To napięcie na rezystancji jest podawane do ATMEGA8 w celu konwersji ADC. Dzięki temu uzyskamy prąd w postaci cyfrowej, który będzie wyświetlany na wyświetlaczu LCD 16x2.
W tym celu użyjemy obwodu dzielnika napięcia. Będziemy zasilać prąd przez całą gałąź oporu. Do pomiaru brany jest środek odgałęzienia. Gdy prąd się zmieni, nastąpi spadek oporu, który jest do niego liniowy. Więc przy tym mamy napięcie, które zmienia się z liniowością.
Ważną rzeczą do zapamiętania jest to, że sygnał wejściowy pobierany przez kontroler do konwersji ADC wynosi zaledwie 50 µA. Ten efekt obciążenia dzielnika napięcia opartego na rezystancji jest ważny, ponieważ prąd pobierany z Vout dzielnika napięcia zwiększa procentowy wzrost błędu, na razie nie musimy się martwić o efekt obciążenia.
Wymagane składniki
Sprzęt: ATMEGA8, zasilacz (5v), PROGRAMATOR AVR-ISP, JHD_162ALCD (16 * 2LCD), kondensator 100uF, kondensator 100nF (4 sztuki), rezystor 100Ω (7 sztuk) lub 2,5Ω (2 sztuki), rezystor 100kΩ.
Oprogramowanie: Atmel studio 6.1, progisp lub flash magic.
Schemat obwodu i objaśnienie robocze
Napięcie na R2 i R4 nie jest całkowicie liniowe; będzie głośno. Aby odfiltrować szum, kondensatory są umieszczone na każdym rezystorze w obwodzie dzielnika, jak pokazano na rysunku.
W ATMEGA8 możemy podać wejście analogowe do dowolnego z CZTERECH kanałów PORTC, nie ma znaczenia, który kanał wybierzemy, ponieważ wszystkie są takie same. Zamierzamy wybrać kanał 0 lub PIN0 PORTC. W ATMEGA8 przetwornik ADC ma rozdzielczość 10 bitów, więc kontroler może wykryć minimalną zmianę Vref / 2 ^ 10, więc jeśli napięcie odniesienia wynosi 5 V, otrzymujemy przyrost wyjścia cyfrowego co 5/2 ^ 10 = 5 mV. Tak więc dla każdego przyrostu 5mV na wejściu będziemy mieć przyrost o jeden na wyjściu cyfrowym.
Teraz musimy ustawić rejestr ADC na podstawie następujących warunków:
1. Przede wszystkim musimy włączyć funkcję ADC w ADC.
2. Tutaj uzyskamy maksymalne napięcie wejściowe do konwersji ADC wynosi + 5V. Możemy więc ustawić maksymalną wartość lub odniesienie ADC do 5V.
3. Kontroler posiada funkcję konwersji wyzwalacza, co oznacza, że konwersja ADC ma miejsce tylko po wyzwoleniu zewnętrznym, ponieważ nie chcemy, abyśmy musieli ustawiać rejestry, aby ADC działał w trybie ciągłej pracy swobodnej.
4. Dla dowolnego przetwornika ADC częstotliwość konwersji (wartość analogowa na wartość cyfrową) i dokładność wyjścia cyfrowego są odwrotnie proporcjonalne. Więc dla lepszej dokładności wyjścia cyfrowego musimy wybrać mniejszą częstotliwość. Dla normalnego zegara ADC ustawiamy przedsprzedaż ADC na maksymalną wartość (2). Ponieważ używamy wewnętrznego zegara 1 MHZ, zegar ADC będzie (1000000/2).
To jedyne cztery rzeczy, które musimy wiedzieć, aby rozpocząć pracę z ADC.
Wszystkie powyższe cztery cechy są ustawiane przez dwa rejestry,
CZERWONY (ADEN): Ten bit musi być ustawiony, aby włączyć funkcję ADC ATMEGA.
NIEBIESKI (REFS1, REFS0): Te dwa bity służą do ustawiania napięcia odniesienia (lub maksymalnego napięcia wejściowego, które zamierzamy podać). Ponieważ chcemy mieć napięcie odniesienia 5V, należy ustawić REFS0 zgodnie z tabelą.
ŻÓŁTY (ADFR): Ten bit musi być ustawiony, aby ADC działał w sposób ciągły (tryb pracy swobodnej).
PINK (MUX0-MUX3): Te cztery bity służą do informowania kanału wejściowego. Ponieważ zamierzamy używać ADC0 lub PIN0, nie musimy ustawiać żadnych bitów zgodnie z tabelą.
BROWN (ADPS0-ADPS2): te trzy bity służą do ustawiania preskalara dla ADC. Ponieważ używamy preskalara 2, musimy ustawić jeden bit.
DARK GREEN (ADSC): ten bit ustawiony dla ADC, aby rozpocząć konwersję. Ten bit można wyłączyć w programie, gdy musimy zatrzymać konwersję.