Ebben az oktatóanyagban a FLEX érzékelőt összekapcsoljuk az ATMEGA8 mikrovezérlővel. Az ATMEGA8-ban 10 bites ADC (analóg-digitális átalakítás) funkciót fogunk használni ennek a feladatnak a végrehajtásához. Most az ATMEGA-ban lévő ADC nem képes + 5 V-nál nagyobb bemenetet venni.
Mi az a Flex Sensor?
A FLEX érzékelő egy átalakító, amely alakjának megváltoztatásakor megváltoztatja ellenállását. Az alábbi ábra mutatja.
Ezt az érzékelőt a linearitás változásainak érzékelésére használják. Tehát a FLEX érzékelő hajlításakor az ellenállás drasztikusan meghajlik. Ezt az alábbi ábra mutatja.
A feszültségváltozással szembeni ellenállás változásának átalakításához feszültségosztó áramkört fogunk használni. Ebben az rezisztív hálózatban van egy állandó ellenállásunk és egy másik változó ellenállásunk. Amint az az alábbi ábrán látható, R1 itt állandó ellenállás, R2 pedig FLEX érzékelő, amely ellenállásként működik. Az elágazás középpontját mérésre vesszük. Amikor az R2 ellenállás megváltozik, a Vout lineárisan változik vele. 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ásalapú feszültségosztónak ez a terhelő hatása fontos, mivel a feszültségosztó Vout-ból vett áram növeli a hiba százalékát, egyelőre nem kell aggódnunk a terhelési hatás miatt.
Két ellenállást veszünk, és egy elválasztó áramkört alakítunk ki, így 25 V-os Vin esetén 5 V-os Vout-ot kapunk. Tehát csak annyit kell tennünk, hogy a programban megszorozzuk a Vout értékét az „5” -nel a valós bemeneti feszültség elérése érdekében.
Szükséges alkatrészek
Hardver: ATMEGA8, Tápegység (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16x2LCD), 100uF kondenzátor, 100nF kondenzátor (5 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 áramkörben az ATMEGA8 PORTD- je az adatport LCD- jéhez csatlakozik. A 16x2 LCD-ben 16 érintkező van, ha van háttérvilágítás, ha nincs háttérvilágítás, akkor 14 tű lesz. A hátsó lámpa csapjai bekapcsolhatók, vagy elhagyhatók. Most a 14 csapok vannak 8 adatok csapok (7-14 vagy D0-D7), 2 tápegység csapok (1 & 2 vagy VSS & VDD vagy GND & + 5V), 3 rd pin kontraszt vezérlő (VEE-kontrollok milyen vastag a karaktereket kell lennie ábra) és 3 vezérlőcsap (RS & RW & E).
Az áramkörben megfigyelheti, hogy csak két vezérlőtűt vettem. A kontrasztbitet és a READ / WRITE-t nem használják gyakran, így testzárlat lehet. Ez az LCD-t a legnagyobb kontrasztú és olvasási módba helyezi. Csak az ENABLE és RS csapokat kell vezérelnünk, hogy a karaktereket és az adatokat ennek megfelelően küldhessük el.
Az LCD-kapcsolatok az ATmega8-mal a következők:
PIN1 vagy VSS a földre
PIN2 vagy VDD vagy VCC + 5v teljesítményig
PIN3 vagy VEE a földre (maximális kontrasztot nyújt a kezdő számára a legjobb)
PIN4 vagy RS (Register Selection) az uC PB0-jához
PIN5 vagy RW (olvasás / írás) földelésre (az LCD-t olvasási módba állítja, megkönnyíti a kommunikációt a felhasználó számára)
PIN6 vagy E (engedélyezés) az uC PB1-hez
Az uC PIN7 vagy D0 – PD0 értéke
Az uC PIN8 vagy D1 - PD1
Az uC PIN9 vagy D2 - PD2
Az uC PIN10 vagy D3 – PD3
PIN11 vagy D4 - D4 az uC-nél
PIN12 vagy D5 - PD5 uC
Az uC PIN13 vagy D6 - PD6
Az uC PIN14 vagy D7 - PD7
Az áramkörben látható, hogy 8 bites kommunikációt használtunk (D0-D7), de ez nem kötelező, használhatunk 4 bites kommunikációt (D4-D7), de a 4 bites kommunikációs program egy kicsit bonyolulttá válik, ezért csak 8 bitesre mentünk kommunikáció. (Ellenőrizze ezt az oktatóanyagot is: 16x2 LCD interfész az AVR mikrovezérlővel)
Tehát puszta megfigyelésből a fenti táblázatból 10 érintkezős LCD-t csatlakoztatunk a vezérlőhöz, amelyben 8 érintkező adat és 2 érintkező az irányításhoz.
Az R2 feszültsége nem teljesen lineáris; zajos lesz. A szűrő kiszűréséhez a kondenzátorokat az elválasztó áramkör mindegyik ellenállásán helyezzük el, az ábra szerint.
Az 1K pot itt állítja be az ADC pontosságát. Most beszéljünk az ATMEGA8 ADC-jéről.
Az ATMEGA8-ban analóg bemenetet adhatunk a PORTC NÉGY csatornájának bármelyikéhez, nem számít, 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ő érzékelni tudja a Vref / 2 ^ 10 minimális változását, így ha a referenciafeszültség 5V, akkor 5/2 ^ 10 = 5mV-ra digitális kimeneti növekedést 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.
Az ATmega8-tal való FLEX érzékelő interakcióját lépésről lépésre magyarázzák az alább megadott C kódban.