Šajā apmācībā mēs saskarsmē kursorsviras moduli ar atmega8 mikrokontrolleru. Kursorsviru ir ievades modulis, ko izmanto saziņai. Tas būtībā atvieglo lietotāja un mašīnas saziņu. Kursorsvira ir parādīta zemāk redzamajā attēlā.
Vadības sviras modulim ir divas ass - viena ir horizontāla un otra vertikāla. Katra kursorsviras ass ir piestiprināta pie potenciometra vai katla vai ar mainīgu pretestību. Vidējie punkti tiek pazemināti kā Rx un Ry. Šīs tapas ir JOYSTICK izejas signāla tapas. Kad spieķis tiek pārvietots pa horizontālo asi, ar barošanas spriegumu, spriegums pie Rx tapas mainās.
Spriegums pie Rx palielinās, pārvietojoties uz priekšu, spriegums pie Rx tapas samazinās, pārvietojoties atpakaļ. Līdzīgi spriegums Ry palielinās, pārvietojot to uz augšu, Ry sprieguma spriegums samazinās, pārvietojoties uz leju.
Tātad mums ir četri JOYSTICK virzieni divos ADC kanālos. Normālos gadījumos mums katrā spraudnī ir 1 volts normālos apstākļos. Kad nūja tiek pārvietota, katras tapas spriegums palielinās vai samazinās atkarībā no virziena. Tātad četri virzieni kā (0V, 5V 0 kanālā) x asij; (0V, 5V 1. kanālā) y asij.
Lai veiktu darbu, mēs izmantosim divus ATMEGA8 ADC kanālus. Mēs izmantosim 0 un 1 kanālu.
Nepieciešamās sastāvdaļas
Aparatūra: ATMEGA8, barošanas avots (5v), AVR-ISP PROGRAMMĒTĀJS, LED (4 gab.), 1000uF kondensators, 100nF kondensators (5 gab.), 1KΩ rezistors (6 gab.).
Programmatūra: Atmel studio 6.1, progisp vai flash magic.
Shēmas shēma un darba skaidrojums
JOYSTICK spriegums nav pilnīgi lineārs; tas būs trokšņains. Lai filtrētu troksni, katrā ķēdes rezistorā tiek ievietoti kondensatori, kā parādīts attēlā.
Kā parādīts attēlā, ķēdē ir četras gaismas diodes. Katrs LED apzīmē katru JOYSTICK virzienu. Kad nūju pārvieto virzienā, tad iedegas atbilstošā gaismas diode.
Pirms iet tālāk, mums jārunā par ATMEGA8 ADC, ATMEGA8 mēs varam dot analogo ievadi jebkuram no ČETriem PORTC kanāliem, nav svarīgi, kuru kanālu mēs izvēlamies, jo visi ir vienādi, mēs izvēlēsimies PORTC 0 vai PIN0 kanālu.
ATMEGA8 ADC ir 10 bitu izšķirtspēja, tāpēc kontrolieris var noteikt sajūtu, ka minimālās izmaiņas ir Vref / 2 ^ 10, tādēļ, ja atskaites spriegums ir 5 V, mēs iegūstam digitālo izejas pieaugumu par katriem 5/2 ^ 10 = 5mV. Tātad par katru 5mV pieaugumu ieejā mums būs pieaugums viens pie digitālās izejas.
Tagad mums ir jāizveido ADC reģistrs, pamatojoties uz šādiem noteikumiem:
1. Vispirms mums ir jāiespējo ADC funkcija ADC.
2. Šeit tiks parādīts maksimālais ieejas spriegums ADC pārveidošanai ir + 5V. Tātad mēs varam iestatīt ADC maksimālo vērtību vai atsauci uz 5V.
3. Kontrolierim ir trigera pārveidošanas funkcija, kas nozīmē, ka ADC pārveidošana notiek tikai pēc ārēja trigera, jo mēs nevēlamies, lai mums būtu jāiestata reģistri, lai ADC darbotos nepārtrauktā brīvas darbības režīmā.
4. Jebkurai ADC pārveidošanas biežums (analogās vērtības pret digitālo vērtību) un digitālās izejas precizitāte ir apgriezti proporcionāla. Tāpēc, lai uzlabotu digitālās izejas precizitāti, mums jāizvēlas mazāka frekvence. Normālam ADC pulkstenim mēs iestatām ADC sākotnējo vērtību līdz maksimālajai vērtībai (2). Tā kā mēs izmantojam 1MHZ iekšējo pulksteni, ADC pulkstenis būs (1000000/2).
Šīs ir vienīgās četras lietas, kas mums jāzina, lai sāktu darbu ar ADC.
Visas iepriekš minētās četras funkcijas nosaka divi reģistri:
RED (ADEN): Šis bits ir jāiestata, lai iespējotu ATMEGA ADC funkciju.
ZILA (REFS1, REFS0): Šie divi biti tiek izmantoti, lai iestatītu atsauces spriegumu (vai maksimālo ieejas spriegumu, kuru mēs piešķiram). Tā kā mēs vēlamies, lai atskaites spriegums būtu 5 V, REFS0 būtu jāiestata tabulā.
DZELTENS (ADFR): Šis bits ir jāiestata, lai ADC darbotos nepārtraukti (brīvās darbības režīms).
PINK (MUX0-MUX3): Šie četri biti ir paredzēti ieejas kanāla atrašanai. Tā kā mēs izmantosim ADC0 vai PIN0, mums nav jāiestata biti kā pēc tabulas.
BROWN (ADPS0-ADPS2): šie trīs biti ir paredzēti, lai iestatītu ADC preskalāru. Tā kā mēs izmantojam preskalāru 2, mums ir jāiestata viens bits.
DARK GREEN (ADSC): šis bits ir iestatīts ADC, lai sāktu pārveidošanu. Šo bitu var atspējot programmā, kad mums jāpārtrauc konvertēšana.