V tem projektu bomo z uporabo mikrokrmilnika ATMEGA8 izdelali ampermeter nizkega dosega. V ATMEGA8 bomo za to uporabili funkcijo 10-bitnega ADC (analogna v digitalno pretvorbo). Čeprav imamo malo drugih načinov za pridobitev trenutnega parametra iz vezja, bomo uporabili uporniško metodo padca, ker je to najlažji in najpreprostejši način za pridobitev trenutnega parametra.
Pri tej metodi bomo tok, ki ga je bilo treba izmeriti, prenesli na majhen upor, s čimer dobimo padec čez tisti upor, ki je povezan s tokom, ki teče skozi njega. Ta napetost na uporu se napaja na ATMEGA8 za pretvorbo ADC. S tem bomo imeli tok v digitalni vrednosti, ki bo prikazan na 16x2 LCD.
Za to bomo uporabili vezje delilnika napetosti. Tok bomo napajali skozi celotno odporno vejo. Srednja točka veje se meri. Ko se trenutne spremembe spremenijo, bo prišlo do spremembe padca upornosti, ki mu je linearna. Torej imamo pri tem napetost, ki se spreminja z linearnostjo.
Zdaj je pomembno omeniti, da je vhod, ki ga krmilnik za pretvorbo ADC sprejme le 50 μAmp. Ta obremenitveni učinek napetostnega delilnika na osnovi upora je pomemben, saj tok, ki ga potegne Vout napetostnega delilnika, poveča odstotek napak, zato zaenkrat ni treba skrbeti za obremenitveni učinek.
Potrebne komponente
Strojna oprema: ATMEGA8, napajalnik (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), kondenzator 100uF, kondenzator 100nF (4 kosi), upor 100Ω (7 kosov) ali 2,5Ω (2 kosa), upor 100KΩ.
Programska oprema: Atmel studio 6.1, progisp ali flash magic.
Shema vezja in delovna razlaga
Napetost na R2 in R4 ni popolnoma linearna; bo hrupno. Za filtriranje hrupa so kondenzatorji nameščeni čez vsak upor v delilnem vezju, kot je prikazano na sliki.
V ATMEGA8 lahko damo analogni vhod na katerega koli od ŠTIRIH kanalov PORTC-a, ni pomembno, kateri kanal bomo izbrali, saj so vsi enaki. Izbrali bomo kanal 0 ali PIN0 za PORTC. V ATMEGA8 je ADC 10-bitne ločljivosti, zato lahko krmilnik zazna minimalno spremembo Vref / 2 ^ 10, tako da če je referenčna napetost 5V, dobimo prirast digitalnega izhoda za vsakih 5/2 ^ 10 = 5mV. Tako bomo za vsakih 5mV prirastka na vhodu imeli prirastek enega pri digitalnem izhodu.
Zdaj moramo nastaviti register ADC glede na naslednje pogoje:
1. Najprej moramo v ADC omogočiti funkcijo ADC.
2. Tu bomo dobili največjo vhodno napetost za pretvorbo ADC + 5V. Tako lahko nastavimo največjo vrednost ali referenco ADC na 5V.
3. Krmilnik ima funkcijo pretvorbe sprožilca, kar pomeni, da se pretvorba ADC izvede šele po zunanjem sprožilcu, saj ne želimo, da bi morali registrirati, da ADC deluje v neprekinjenem načinu prostega teka.
4. Za kateri koli ADC sta frekvenca pretvorbe (analogna vrednost v digitalno vrednost) in natančnost digitalnega izhoda obratno sorazmerna. Za boljšo natančnost digitalnega izhoda moramo izbrati manj pogostost. Za običajno uro ADC nastavimo predprodajo ADC na največjo vrednost (2). Ker uporabljamo interno uro 1MHZ, bo ura ADC (1000000/2).
To so edine štiri stvari, ki jih moramo vedeti za začetek uporabe ADC.
Vse zgornje štiri lastnosti so nastavljene z dvema registroma,
RDEČA (ADEN): Ta bit je treba nastaviti, da omogočite funkcijo ADC ATMEGA.
MODRA (REFS1, REFS0): Ta dva bita se uporabljata za nastavitev referenčne napetosti (ali največje vhodne napetosti, ki jo bomo podali). Ker želimo imeti referenčno napetost 5V, je treba v tabeli nastaviti REFS0.
RUMENA (ADFR): Ta bit mora biti nastavljen, da ADC deluje neprekinjeno (način prostega teka).
PINK (MUX0-MUX3): Ti štirje biti služijo za sporočanje vhodnemu kanalu. Ker bomo uporabili ADC0 ali PIN0, nam ni treba nastaviti nobenih bitov kot v tabeli.
BROWN (ADPS0-ADPS2): ti trije biti so namenjeni nastavitvi predkalarja za ADC. Ker uporabljamo preskalar 2, moramo nastaviti en bit.
DARK GREEN (ADSC): ta bit je nastavljen za ADC, da začne pretvorbo. Ta bit lahko v programu onemogočite, ko moramo pretvorbo ustaviti.