Šajā projektā mēs izgatavosim zema diapazona ampermetru, izmantojot ATMEGA8 mikrokontrolleru. Lai to izdarītu, ATMEGA8 mēs izmantosim funkciju 10bit ADC (Analog to Digital Conversion). Lai gan mums ir maz citu veidu, kā iegūt pašreizējo parametru no ķēdes, mēs izmantosim pretestības kritiena metodi, jo tas ir vienkāršākais un vienkāršākais veids, kā iegūt pašreizējo parametru.
Ar šo metodi strāvu, kuru vajadzēja izmērīt, mēs nodosim mazai pretestībai, tādējādi iegūstot kritumu visā pretestībā, kas saistīta ar caur to plūstošo strāvu. Šis spriegums pāri pretestībai tiek ievadīts ATMEGA8 ADC pārveidošanai. Līdz ar to mums būs pašreizējā digitālā vērtība, kas tiks parādīta 16x2 LCD ekrānā.
Tam mēs izmantosim sprieguma dalītāja ķēdi. Mēs gatavojamies barot strāvu caur pilnīgu pretestības zaru. Zaru viduspunkts tiek mērīts. Mainoties strāvai, pretestībai būs lineāras pretestības izmaiņas. Tātad ar to mums ir spriegums, kas mainās ar linearitāti.
Šeit ir svarīgi atzīmēt, ka kontrollera ievadītā ADC pārveidošanas ievade ir tik maza kā 50µAmp. Šis uz pretestību balstītā sprieguma dalītāja slodzes efekts ir svarīgs, jo strāva, kas iegūta no sprieguma dalītāja Vout, palielina kļūdas procentu, tagad mums nav jāuztraucas par slodzes efektu.
Nepieciešamās sastāvdaļas
Aparatūra: ATMEGA8, barošanas avots (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondensators, 100nF kondensators (4 gab.), 100Ω rezistors (7 gab.) Vai 2.5Ω (2 gab.), 100KΩ rezistors.
Programmatūra: Atmel studio 6.1, progisp vai flash magic.
Shēmas shēma un darba skaidrojums
Spriegums pāri R2 un R4 nav pilnīgi lineārs; tas būs trokšņains. Lai filtrētu troksni, kondensatori tiek novietoti pāri katram sadalītāja ķēdes rezistoram, kā parādīts attēlā.
ATMEGA8 mēs varam dot analogo ievadi jebkuram no ČETriem PORTC kanāliem, nav svarīgi, kuru kanālu mēs izvēlamies, jo visi ir vienādi. Mēs izvēlēsimies PORTC 0 kanālu vai PIN0. ATMEGA8 ADC ir 10 bitu izšķirtspēja, tāpēc kontrolieris var noteikt minimālas izmaiņas Vref / 2 ^ 10, tādēļ, ja atskaites spriegums ir 5 V, mēs iegūstam digitālo izejas pieaugumu par katriem 5/2 ^ 10 = 5mV. Tātad par katru 5mV pieaugumu ieejā mums būs pieaugums viens pie digitālās izejas.
Tagad mums ir jāizveido ADC reģistrs, pamatojoties uz šādiem noteikumiem:
1. Vispirms mums ir jāiespējo ADC funkcija ADC.
2. Šeit tiks parādīts maksimālais ieejas spriegums ADC pārveidošanai ir + 5V. Tātad mēs varam iestatīt ADC maksimālo vērtību vai atsauci uz 5V.
3. Kontrolierim ir trigera pārveidošanas funkcija, kas nozīmē, ka ADC pārveidošana notiek tikai pēc ārēja trigera, jo mēs nevēlamies, lai mums būtu jāiestata reģistri, lai ADC darbotos nepārtrauktā brīvas darbības režīmā.
4. Jebkurai ADC pārveidošanas biežums (analogās vērtības pret digitālo vērtību) un digitālās izejas precizitāte ir apgriezti proporcionāla. Tāpēc, lai uzlabotu digitālās izejas precizitāti, mums jāizvēlas mazāka frekvence. Normālam ADC pulkstenim mēs iestatām ADC sākotnējo vērtību līdz maksimālajai vērtībai (2). Tā kā mēs izmantojam 1MHZ iekšējo pulksteni, ADC pulkstenis būs (1000000/2).
Šīs ir vienīgās četras lietas, kas mums jāzina, lai sāktu darbu ar ADC.
Visas iepriekš minētās četras funkcijas nosaka divi reģistri,
RED (ADEN): Šis bits ir jāiestata, lai iespējotu ATMEGA ADC funkciju.
ZILA (REFS1, REFS0): Šie divi biti tiek izmantoti, lai iestatītu atsauces spriegumu (vai maksimālo ieejas spriegumu, kuru mēs piešķiram). Tā kā mēs vēlamies, lai atskaites spriegums būtu 5 V, REFS0 būtu jāiestata tabulā.
DZELTENS (ADFR): Šis bits ir jāiestata, lai ADC darbotos nepārtraukti (brīvās darbības režīms).
PINK (MUX0-MUX3): Šie četri biti ir paredzēti ieejas kanāla atrašanai. Tā kā mēs izmantosim ADC0 vai PIN0, mums nav jāiestata biti kā pēc tabulas.
BROWN (ADPS0-ADPS2): šie trīs biti ir paredzēti, lai iestatītu ADC preskalāru. Tā kā mēs izmantojam preskalāru 2, mums ir jāiestata viens bits.
DARK GREEN (ADSC): šis bits ir iestatīts ADC, lai sāktu pārveidošanu. Šo bitu var atspējot programmā, kad mums jāpārtrauc konvertēšana.