În acest proiect vom realiza un ampermetru cu rază mică de acțiune folosind microcontrolerul ATMEGA8. În ATMEGA8, vom folosi funcția ADC de 10 biți (conversie analogică la digitală) pentru a face acest lucru. Deși avem câteva alte modalități de a obține parametrul curent dintr-un circuit, vom folosi metoda rezistenței de cădere, deoarece este cel mai simplu și simplu mod de a obține parametrul curent.
În această metodă vom trece curentul care trebuia măsurat într-o rezistență mică, prin aceasta obținem o scădere a acelei rezistențe care este legată de curentul care curge prin ea. Această tensiune la rezistență este alimentată la ATMEGA8 pentru conversia ADC. Cu aceasta vom avea curentul în valoare digitală, care va fi afișat pe un ecran LCD de 16x2.
Pentru asta vom folosi un circuit divizor de tensiune. Vom alimenta curentul prin ramura de rezistență completă. Punctul mediu al ramurii este luat la măsurare. Când se modifică curentul, va exista o modificare a rezistenței, care este liniară cu aceasta. Deci, cu aceasta avem o tensiune care se schimbă cu liniaritatea.
Acum, un lucru important de remarcat aici este că intrarea luată de controler pentru conversia ADC este de până la 50µAmp. Acest efect de încărcare al divizorului de tensiune bazat pe rezistență este important deoarece curentul extras din Vout al divizorului de tensiune crește procentul de eroare crește, deocamdată nu trebuie să ne facem griji cu privire la efectul de încărcare.
Componente necesare
Hardware: ATMEGA8, sursă de alimentare (5v), PROGRAMATOR AVR-ISP, JHD_162ALCD (16 * 2LCD), condensator 100uF, condensator 100nF (4 bucăți), rezistor 100Ω (7 bucăți) sau 2,5Ω (2 bucăți), rezistor 100KΩ.
Software: Atmel studio 6.1, progisp sau flash magic.
Diagrama circuitului și explicația de lucru
Tensiunea pe R2 și R4 nu este complet liniară; va fi unul zgomotos. Pentru a filtra zgomotul, condensatorii sunt așezați pe fiecare rezistor din circuitul divizor așa cum se arată în figură.
În ATMEGA8, putem oferi intrări analogice oricăruia dintre PATRU canale ale PORTC, nu contează ce canal alegem, deoarece toate sunt la fel. Vom alege canalul 0 sau PIN0 al PORTC. În ATMEGA8, ADC are o rezoluție de 10 biți, astfel încât controlerul poate detecta o modificare minimă de Vref / 2 ^ 10, deci dacă tensiunea de referință este de 5V, obținem o creștere de ieșire digitală pentru fiecare 5/2 ^ 10 = 5mV. Deci, pentru fiecare increment de 5mV în intrare vom avea o creștere de unul la ieșirea digitală.
Acum trebuie să setăm registrul ADC pe baza următoarelor condiții:
1. În primul rând trebuie să activăm caracteristica ADC în ADC.
2. Aici veți obține o tensiune maximă de intrare pentru conversia ADC este de + 5V. Deci, putem seta valoarea maximă sau referința ADC la 5V.
3. Controlerul are o caracteristică de conversie a declanșatorului, ceea ce înseamnă că conversia ADC are loc numai după un declanșator extern, deoarece nu dorim să setăm registrele pentru ca ADC să ruleze în modul de rulare liberă continuă.
4. Pentru orice ADC, frecvența conversiei (valoarea analogică la valoarea digitală) și precizia ieșirii digitale sunt invers proporționale. Deci, pentru o mai bună precizie a ieșirii digitale, trebuie să alegem o frecvență mai mică. Pentru ceasul ADC normal, setăm pre-vânzarea ADC la valoarea maximă (2). Deoarece folosim ceasul intern de 1 MHz, ceasul ADC va fi (1000000/2).
Acestea sunt singurele patru lucruri pe care trebuie să le cunoaștem pentru a începe cu ADC.
Toate cele patru caracteristici de mai sus sunt setate de două registre,
ROȘU (ADEN): Acest bit trebuie setat pentru a activa caracteristica ADC a ATMEGA.
ALBASTRU (REFS1, REFS0): Acești doi biți sunt utilizați pentru a seta tensiunea de referință (sau tensiunea maximă de intrare pe care o vom da). Din moment ce dorim să avem tensiunea de referință 5V, REFS0 ar trebui setat de tabel.
GALBEN (ADFR): Acest bit trebuie setat pentru ca ADC să ruleze continuu (modul de rulare liber).
ROSE (MUX0-MUX3): Acești patru biți sunt pentru a spune canalului de intrare. Deoarece vom folosi ADC0 sau PIN0, nu trebuie să setăm niciun biți ca în tabel.
BROWN (ADPS0-ADPS2): acești trei biți sunt pentru setarea prescalarului pentru ADC. Deoarece folosim un prescalar de 2, trebuie să setăm un bit.
DARK GREEN (ADSC): acest bit setat pentru ca ADC să înceapă conversia. Acest bit poate fi dezactivat în program atunci când trebuie să oprim conversia.