Ebben a projektben kis hatótávolságú ampermérőt fogunk készíteni az ATMEGA8 mikrokontroller segítségével. Az ATMEGA8-ban 10 bites ADC (Analog to Digital Conversion) funkciót fogunk használni erre. Habár kevés más módszerünk van az áramparaméterek lekérésére egy áramkörből, rezisztív csepp módszert fogunk használni, mert ez a legegyszerűbb és legegyszerűbb módszer az aktuális paraméter megszerzésére.
Ebben a módszerben a mérni kívánt áramot egy kis ellenállásba fogjuk adni, ezzel csökkenést kapunk az ellenálláson, amely összefügg a rajta keresztül áramló árammal. Ezt az ellenálláson átívelő feszültséget az ATMEGA8 táplálja ADC átalakítás céljából. Ezzel megkapjuk az aktuális digitális értéket, amely egy 16x2-es LCD-n jelenik meg.
Ehhez feszültségosztó áramkört fogunk használni. A teljes ellenállási ágon keresztül tápláljuk az áramot. Az elágazás középpontját mérésre vesszük. Amikor az áram változik, akkor az ellenállás lineárisan csökken. Tehát ezzel van egy feszültségünk, amely a linearitással változik.
Most fontos megjegyezni, hogy a vezérlő által az ADC átalakításhoz bevitt bemenet akár 50µAmp. Az ellenállás alapú feszültségosztónak ez a terhelő hatása fontos, mivel a feszültségosztó Vout-jából vett áram növeli a hiba százalékos arányát, egyelőre nem kell aggódnunk a terhelési hatás miatt.
Szükséges alkatrészek
Hardver: ATMEGA8, tápegység (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF kondenzátor, 100nF kondenzátor (4 darab), 100Ω ellenállás (7 darab) vagy 2,5Ω (2 darab), 100KΩ ellenállás.
Szoftver: Atmel studio 6.1, progisp vagy flash magic.
Áramköri ábra és működési magyarázat
Az R2 és R4 feszültsége nem teljesen lineáris; zajos lesz. A zaj kiszűrésére kondenzátorokat helyeznek el az elválasztó áramkör minden ellenállásán, az ábra szerint.
Az ATMEGA8-ban analóg bemenetet adhatunk a PORTC NÉGY csatornájának bármelyikéhez, mindegy, hogy melyik csatornát választjuk, mivel mindegyik egyforma. A PORTC 0 vagy PIN0 csatornáját választjuk. Az ATMEGA8-ban az ADC 10 bites felbontású, így a vezérlő képes érzékelni a Vref / 2 ^ 10 minimális változását, így ha a referenciafeszültség 5V, akkor minden 5/2 ^ 10 = 5mV esetén digitális kimeneti növekményt kapunk. Tehát a bemenet minden 5mV-os növekményéhez egyet kell növelni a digitális kimeneten.
Most meg kell állítanunk az ADC nyilvántartását a következő feltételek alapján:
1. Először engedélyeznünk kell az ADC funkciót az ADC-ben.
2. Itt megkapjuk a maximális bemeneti feszültséget az ADC átalakításához + 5V. Tehát beállíthatjuk az ADC maximális értékét vagy referenciáját 5 V-ra.
3. A vezérlő rendelkezik egy trigger konverziós funkcióval, ami azt jelenti, hogy az ADC átalakítás csak egy külső trigger után történik meg, mivel nem akarjuk, hogy beállítsuk a regisztereket az ADC számára, hogy folyamatos szabadon futó üzemmódban működjenek.
4. Bármely ADC esetében az átalakítás gyakorisága (analóg érték digitális értékre) és a digitális kimenet pontossága fordítottan arányos. Tehát a digitális kimenet pontossága érdekében kisebb frekvenciát kell választanunk. Normál ADC óra esetén az ADC előértékét maximális értékre állítjuk (2). Mivel 1MHZ belső órát használunk, az ADC órája (1000000/2) lesz.
Ez az egyetlen négy dolog, amit tudnunk kell az ADC használatának megkezdéséhez.
A fenti négy jellemzőt két regiszter állítja be,
PIROS (ADEN): Ezt a bitet be kell állítani az ATMEGA ADC szolgáltatásának engedélyezéséhez.
KÉK (REFS1, REFS0): Ez a két bit használható a referenciafeszültség (vagy a maximális bemeneti feszültség megadására). Mivel 5V referenciafeszültséget akarunk elérni, a REFS0 értéket a táblázatnak kell beállítania.
SÁRGA (ADFR): Ezt a bitet be kell állítani, hogy az ADC folyamatosan fusson (szabadon futó mód).
PINK (MUX0-MUX3): Ez a négy bit a bemeneti csatorna megmondására szolgál. Mivel az ADC0 vagy PIN0 kódot fogjuk használni, nem kell biteket beállítanunk, mint a táblázat.
BROWN (ADPS0-ADPS2): ez a három bit az ADC preskalarjának beállítására szolgál. Mivel 2-es előskálát használunk, egy bitet kell beállítanunk.
SÖTÉT ZÖLD (ADSC): ez a bit beállítva az ADC számára az átalakítás megkezdéséhez. Ez a bit letiltható a programban, ha le kell állítanunk az átalakítást.