V tomto projekte vyrobíme ampérmeter nízkeho dosahu pomocou mikrokontroléra ATMEGA8. V ATMEGA8 na to použijeme funkciu 10bit ADC (Analog to Digital Conversion). Aj keď máme niekoľko ďalších spôsobov, ako získať aktuálny parameter z obvodu, použijeme metódu odporového poklesu, pretože je to najjednoduchší a najjednoduchší spôsob, ako získať aktuálny parameter.
V tejto metóde prenesieme prúd, ktorý bolo potrebné merať, na malý odpor, čím dostaneme pokles cez odpor, ktorý súvisí s prúdom, ktorý ním preteká. Toto napätie naprieč odporom sa privádza do ATMEGA8 na prevod ADC. S tým budeme mať aktuálnu digitálnu hodnotu, ktorá sa zobrazí na 16x2 LCD.
Na to použijeme obvod deliča napätia. Ideme napájať prúd cez celú odporovú vetvu. Stred vetvy sa prevedie na meranie. Pri zmene prúdu dôjde k zmenám odporu, ktoré sú voči nemu lineárne. Takže s týmto máme napätie, ktoré sa mení s linearitou.
Teraz je dôležité poznamenať, že vstup, ktorý prijme radič na prevod ADC, je len 50µAmp. Tento zaťažovací efekt odporového deliča napätia je dôležitý, pretože prúd odoberaný z Vout deliča napätia zvyšuje zvyšovanie percentuálneho podielu chyby, zatiaľ sa nemusíme starať o zaťažovací efekt.
Súčasti sú povinné
Hardvér: ATMEGA8, napájací zdroj (5 V), AVR-ISP PROGRAMÁTOR, JHD_162ALCD (16 * 2LCD), kondenzátor 100uF, kondenzátor 100nF (4 kusy), odpor 100Ω (7 kusov) alebo 2,5Ω (2 kusy), odpor 100KΩ.
Softvér: Atmel studio 6.1, progisp alebo flash magic.
Schéma zapojenia a pracovné vysvetlenie
Napätie medzi R2 a R4 nie je úplne lineárne; bude to hlučný. Na odfiltrovanie šumu sú kondenzátory umiestnené cez každý odpor v deliacom obvode, ako je to znázornené na obrázku.
V ATMEGA8 môžeme dať analógový vstup na ktorýkoľvek zo ŠTYROCH kanálov PORTC, nezáleží na tom, ktorý kanál si vyberieme, pretože všetky sú rovnaké. Vyberieme kanál 0 alebo PIN0 PORTC. V ATMEGA8 má ADC 10 bitové rozlíšenie, takže radič dokáže detekovať minimálnu zmenu Vref / 2 ^ 10, takže ak je referenčné napätie 5 V, dostaneme prírastok digitálneho výstupu pre každých 5/2 ^ 10 = 5mV. Takže pre každý prírastok 5mV na vstupe budeme mať prírastok jedného na digitálnom výstupe.
Teraz musíme nastaviť register ADC na základe nasledujúcich podmienok:
1. Najprv musíme povoliť funkciu ADC v ADC.
2. Tu získate maximálne vstupné napätie pre prevod ADC je + 5V. Môžeme teda nastaviť maximálnu hodnotu alebo referenciu ADC na 5V.
3. Kontrolér má funkciu prevodu spúšťača, čo znamená, že prevod ADC sa uskutoční až po externom spúšťači, pretože nechceme, aby sme museli nastavovať registre, aby ADC bežal v režime nepretržitého voľného chodu.
4. Pre akýkoľvek ADC je frekvencia prevodu (analógová hodnota na digitálnu hodnotu) a presnosť digitálneho výstupu nepriamo úmerná. Pre lepšiu presnosť digitálneho výstupu teda musíme zvoliť menšiu frekvenciu. Pre bežné hodiny ADC nastavujeme predpredaj ADC na maximálnu hodnotu (2). Pretože používame interné hodiny 1MHZ, hodiny ADC budú (10 000 000/2).
To sú jediné štyri veci, ktoré musíme vedieť, aby sme mohli začať s ADC.
Všetky vyššie uvedené štyri funkcie sú nastavené dvoma registrami,
ČERVENÁ (ADEN): Tento bit musí byť nastavený pre povolenie funkcie ADC v ATMEGA.
MODRÁ (REFS1, REFS0): Tieto dva bity sa používajú na nastavenie referenčného napätia (alebo maximálneho vstupného napätia, ktoré dáme). Pretože chceme mať referenčné napätie 5V, mala by byť tabuľka nastavená na REFS0.
ŽLTÁ (ADFR): Tento bit musí byť nastavený, aby ADC bežal nepretržite (režim voľného chodu).
PINK (MUX0-MUX3): Tieto štyri bity slúžia na rozpoznanie vstupného kanálu. Pretože budeme používať ADC0 alebo PIN0, nemusíme nastavovať žiadne bity ako v tabuľke.
BROWN (ADPS0-ADPS2): tieto tri bity slúžia na nastavenie predskaláru pre ADC. Pretože používame prescalar 2, musíme nastaviť jeden bit.
DARK GREEN (ADSC): tento bit nastavený pre ADC na začatie konverzie. Tento bit je možné v programe deaktivovať, keď potrebujeme zastaviť prevod.