Šiame projekte mes ketiname pagaminti mažo diapazono ampermetrą naudodami ATMEGA8 mikrovaldiklį. Norėdami tai padaryti, ATMEGA8 naudosime 10 bitų ADC („Analog to Digital Conversion“) funkciją. Nors mes turime keletą kitų būdų gauti dabartinį parametrą iš grandinės, mes ketiname naudoti varžos metimo metodą, nes tai yra lengviausias ir paprasčiausias būdas gauti dabartinį parametrą.
Šiuo metodu mes perduosime srovę, kurią reikėjo išmatuoti, į mažą varžą, tokiu būdu mes gauname kritimą per tą varžą, susijusį su srove, tekančia per jį. Ši įtampa visoje varžoje tiekiama į ATMEGA8, kad būtų galima konvertuoti ADC. Tai suteiksime skaitmeninę vertę, kuri bus rodoma 16x2 LCD ekrane.
Tam mes naudosime įtampos daliklio grandinę. Mes ketiname maitinti srovę per visišką pasipriešinimo šaką. Šakos vidurio taškas imamas matuoti. Kai pasikeis srovė, pasipriešinimas, kuris yra tiesinis, sumažės. Taigi su tuo turime įtampą, kuri kinta priklausomai nuo tiesiškumo.
Dabar svarbu atkreipti dėmesį į tai, kad valdiklio įvestas ADC konversijos rodiklis yra vos 50µAmp. Šis atsparumo pagrindu įtampos daliklio apkrovos poveikis yra svarbus, nes srovė, gaunama iš įtampos daliklio Vout, padidina paklaidos procentą, kol kas mes neturime jaudintis dėl apkrovos efekto.
Būtini komponentai
Aparatūra: ATMEGA8, maitinimo šaltinis (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensatorius, 100nF kondensatorius (4 vnt.), 100Ω rezistorius (7 vnt.) Arba 2,5Ω (2 vnt.), 100KΩ rezistorius.
Programinė įranga: „ Atmel studio 6.1“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
R2 ir R4 įtampa nėra visiškai tiesinė; tai bus triukšmingas. Norėdami ištrinti triukšmą, kondensatoriai dedami ant kiekvieno rezistoriaus skirstytuvo grandinėje, kaip parodyta paveiksle.
ATMEGA8 mes galime suteikti analoginę įvestį bet kuriam iš KETURIŲ PORTC kanalų, nesvarbu, kurį kanalą pasirenkame, nes visi yra vienodi. Mes pasirinksime PORTC 0 kanalą arba PIN0. ATMEGA8 ADC yra 10 bitų skiriamoji geba, todėl valdiklis gali aptikti minimalų Vref / 2 ^ 10 pokytį, taigi, jei atskaitos įtampa yra 5 V, gauname skaitmeninį išėjimo prieaugį kiekvieniems 5/2 ^ 10 = 5mV. Taigi už kiekvieną 5mV įvesties prieaugį skaitmeniniame išėjime turėsime po vieną.
Dabar turime nustatyti ADC registrą, remdamiesi šiais terminais:
1. Pirmiausia turime įgalinti ADC funkciją ADC.
2. Čia gausime didžiausią įėjimo įtampą ADC konversijai + 5V. Taigi galime nustatyti didžiausią ADC vertę arba nuorodą į 5 V.
3. Valdiklis turi paleidimo konversijos funkciją, kuri reiškia, kad ADC konversija vyksta tik po išorinio trigerio, nes mes nenorime, kad mums reikia nustatyti registrus, kad ADC veiktų nepertraukiamai laisvai veikiant.
4. Bet kokiam ADC konversijų dažnis (analoginė vertė į skaitmeninę vertę) ir skaitmeninės išvesties tikslumas yra atvirkščiai proporcingi. Taigi, norėdami geresnio skaitmeninio išvesties tikslumo, turime pasirinkti mažesnį dažnį. Normaliam ADC laikrodžiui nustatome išankstinį ADC vertę iki didžiausios vertės (2). Kadangi mes naudojame vidinį 1MHz laikrodį, ADC laikrodis bus (1000000/2).
Tai yra vieninteliai keturi dalykai, kuriuos turime žinoti, norėdami pradėti naudoti ADC.
Visas minėtas keturias ypatybes nustato du registrai,
RED (ADEN): Šis bitas turi būti nustatytas norint įjungti ATMEGA ADC funkciją.
MĖLYNA (REFS1, REFS0): Šie du bitai naudojami nustatyti etaloninę įtampą (arba maksimalią įėjimo įtampą, kurią ketiname suteikti). Kadangi norime, kad atskaitos įtampa būtų 5 V, REFS0 turėtų būti nustatyta pagal lentelę.
GELTONA (ADFR): Šis bitas turi būti nustatytas, kad ADC veiktų nuolat (laisvo veikimo režimas).
PINK (MUX0-MUX3): Šie keturi bitai skirti įvesties kanalui pasakyti. Kadangi mes ketiname naudoti ADC0 arba PIN0, nereikia nustatyti jokių bitų, kaip nurodyta lentelėje.
BROWN (ADPS0-ADPS2): šie trys bitai skirti nustatyti išankstinį ADC skalę. Kadangi mes naudojame 2 išankstinį skalę, turime nustatyti vieną bitą.
DARK GREEN (ADSC): šis bitas nustatytas ADC pradėti konversiją. Šį bitą programoje galima išjungti, kai mums reikia sustabdyti konversiją.