V tomto projektu budeme vyrábět ampérmetr malého rozsahu pomocí mikrokontroléru ATMEGA8. V ATMEGA8 k tomu použijeme funkci 10bit ADC (Analog to Digital Conversion). I když máme několik dalších způsobů, jak získat aktuální parametr z obvodu, použijeme metodu odporového poklesu, protože je to nejjednodušší a nejjednodušší způsob, jak získat aktuální parametr.
V této metodě předáme proud, který bylo třeba měřit, na malý odpor, tím dostaneme pokles přes odpor, který souvisí s proudem, který protéká. Toto napětí napříč odporem se přivádí do ATMEGA8 pro převod ADC. Díky tomu budeme mít aktuální digitální hodnotu, která se zobrazí na 16x2 LCD.
K tomu použijeme obvod děliče napětí. Budeme napájet proud přes celou odporovou větev. Střed větve se převede na měření. Když se změní proud, dojde ke změně poklesu odporu, který je vůči němu lineární. Takže s tím máme napětí, které se mění s linearitou.
Nyní je důležité si uvědomit, že vstup přijímaný řadičem pro převod ADC je tak nízký jako 50µAmp. Tento zatěžovací efekt odporového děliče napětí je důležitý, protože proud odebíraný z Vout děliče napětí zvyšuje procentuální zvýšení chyb, zatím si nemusíme dělat starosti s efektem načítání.
Požadované komponenty
Hardware: ATMEGA8, napájecí zdroj (5 V), AVR-ISP PROGRAMÁTOR, JHD_162ALCD (16 * 2LCD), kondenzátor 100 uF, kondenzátor 100 nF (4 kusy), odpor 100 Ω (7 kusů) nebo 2,5 Ω (2 kusy), odpor 100 kΩ.
Software: Atmel studio 6.1, progisp nebo flash magic.
Schéma zapojení a pracovní vysvětlení
Napětí napříč R2 a R4 není zcela lineární; bude to hlučný. K odfiltrování šumu jsou kondenzátory umístěny napříč každým odporem v rozdělovacím obvodu, jak je znázorněno na obrázku.
V ATMEGA8 můžeme dát analogový vstup kterémukoli ze ČTYŘI kanálů PORTC, nezáleží na tom, který kanál si vybereme, protože všechny jsou stejné. Vybereme kanál 0 nebo PIN0 PORTC. V ATMEGA8 má ADC 10bitové rozlišení, takže regulátor dokáže detekovat minimální změnu Vref / 2 ^ 10, takže pokud je referenční napětí 5V, dostaneme digitální výstupní přírůstek pro každých 5/2 ^ 10 = 5mV. Takže pro každý přírůstek 5mV na vstupu budeme mít přírůstek jednoho na digitálním výstupu.
Nyní musíme nastavit registr ADC na základě následujících podmínek:
1. Nejprve musíme povolit funkci ADC v ADC.
2. Zde získáme maximální vstupní napětí pro převod ADC + 5V. Můžeme tedy nastavit maximální hodnotu nebo referenci ADC na 5V.
3. Řadič má funkci převodu spouštěče, což znamená, že převod ADC proběhne až po externím spouštěči, protože nechceme, abychom potřebovali nastavit registry pro provoz ADC v režimu nepřetržitého volného chodu.
4. U jakéhokoli ADC jsou frekvence převodu (analogová hodnota na digitální hodnotu) a přesnost digitálního výstupu nepřímo úměrné. Pro lepší přesnost digitálního výstupu tedy musíme zvolit nižší frekvenci. U normálních hodin ADC nastavujeme předprodej ADC na maximální hodnotu (2). Protože používáme vnitřní hodiny 1MHZ, hodiny ADC budou (10 000 000/2).
To jsou jediné čtyři věci, které potřebujeme vědět, abychom mohli začít s ADC.
Všechny výše uvedené čtyři funkce jsou nastaveny dvěma registry,
ČERVENÁ (ADEN): Tento bit musí být nastaven pro povolení funkce ADC ATMEGA.
MODRÁ (REFS1, REFS0): Tyto dva bity se používají k nastavení referenčního napětí (nebo maximálního vstupního napětí, které dáme). Protože chceme mít referenční napětí 5V, měl by být REFS0 nastaven podle tabulky.
ŽLUTÁ (ADFR): Tento bit musí být nastaven, aby ADC běžel nepřetržitě (režim volného chodu).
PINK (MUX0-MUX3): Tyto čtyři bity slouží ke sdělování vstupního kanálu. Protože budeme používat ADC0 nebo PIN0, nemusíme nastavovat žádné bity jako v tabulce.
BROWN (ADPS0-ADPS2): tyto tři bity slouží k nastavení prescalar pro ADC. Protože používáme prescalar 2, musíme nastavit jeden bit.
DARK GREEN (ADSC): tento bit nastaven pro ADC ke spuštění převodu. Tento bit lze v programu deaktivovat, když potřebujeme zastavit převod.