Šioje pamokoje ketiname susieti vairasvirtės modulį su atmega8 mikrovaldikliu. JOY STICK yra įvedimo modulis naudojamas ryšiams. Iš esmės tai palengvina vartotojo ir mašinos ryšį. Vairasvirtė parodyta paveikslėlyje žemiau.
Vairasvirtės modulis turi dvi ašis - viena yra horizontali, kita - vertikali. Kiekviena vairasvirtės ašis pritvirtinta prie potenciometro ar puodo arba kintama varža. Viduriniai taškai yra nuleisti kaip Rx ir Ry. Šie kaiščiai yra JOYSTICK išvesties signalo kaiščiai. Kai lazda juda išilgai horizontalios ašies, esant maitinimo įtampai, įtampa ties Rx kaiščiu pasikeičia.
Įtampa Rx didėja, kai juda į priekį, įtampa ties Rx kaiščiu mažėja, kai juda atgal. Panašiai įtampa Ry padidėja, kai juda į viršų, Ry įtampa sumažėja, kai juda žemyn.
Taigi mes turime keturias JOYSTICK kryptis dviem ADC kanalais. Įprastais atvejais mes turime 1 voltą ant kiekvieno kaiščio normaliomis aplinkybėmis. Perkėlus lazdą, kiekvieno kaiščio įtampa padidėja arba sumažėja, priklausomai nuo krypties. Taigi keturios kryptys, kaip (0V, 5V 0 kanale) x ašiai; (0V, 5V 1 kanale) y ašiai.
Darbui atlikti ketiname naudoti du ATMEGA8 ADC kanalus. Mes ketiname naudoti 0 ir 1 kanalus.
Būtini komponentai
Aparatūra: ATMEGA8, maitinimo šaltinis (5v), AVR-ISP PROGRAMMERIS, LED (4 vnt.), 1000uF kondensatorius, 100nF kondensatorius (5 vnt.), 1KΩ rezistorius (6 vnt.).
Programinė įranga: „ Atmel studio 6.1“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
JOYSTICK įtampa nėra visiškai tiesinė; tai bus triukšmingas. Norėdami ištrinti triukšmą, kondensatoriai yra išdėstyti kiekviename grandinės rezistoriuje, kaip parodyta paveiksle.
Kaip parodyta paveikslėlyje, grandinėje yra keturi šviesos diodai. Kiekvienas šviesos diodas rodo kiekvieną JOYSTICK kryptį. Kai lazda juda kryptimi, atitinkamas šviesos diodas šviečia.
Prieš eidami toliau, turime pakalbėti apie ATMEGA8 ADC, ATMEGA8 mes galime suteikti analoginį įvestį bet kuriam iš KETURIŲ PORTC kanalų, nesvarbu, kurį kanalą pasirenkame, nes visi yra vienodi, mes pasirinksime PORTC 0 arba PIN0 kanalą.
ATMEGA8 ADC yra 10 bitų skiriamoji geba, todėl valdiklis gali aptikti prasmę minimalų Vref / 2 ^ 10 pokytį, taigi, jei atskaitos įtampa yra 5 V, mes gauname skaitmeninį išėjimo prieaugį už kiekvieną 5/2 ^ 10 = 5mV. Taigi už kiekvieną 5mV įvesties prieaugį skaitmeniniame išėjime turėsime po vieną.
Dabar turime nustatyti ADC registrą, remdamiesi šiais terminais, 1. Pirmiausia turime įgalinti ADC funkciją ADC.
2. Čia gausime didžiausią įėjimo įtampą ADC konversijai + 5V. Taigi galime nustatyti didžiausią ADC vertę arba nuorodą į 5 V.
3. Valdiklis turi paleidimo konversijos funkciją, kuri reiškia, kad ADC konversija vyksta tik po išorinio trigerio, nes mes nenorime, kad mums reikia nustatyti registrus, kad ADC veiktų nepertraukiamai laisvai veikiant.
4. Bet kokiam ADC konversijų dažnis (analoginė vertė į skaitmeninę vertę) ir skaitmeninės išvesties tikslumas yra atvirkščiai proporcingi. Taigi, norėdami geresnio skaitmeninio išvesties tikslumo, turime pasirinkti mažesnį dažnį. Normaliam ADC laikrodžiui nustatome išankstinį ADC vertę iki didžiausios vertės (2). Kadangi mes naudojame vidinį 1MHz laikrodį, ADC laikrodis bus (1000000/2).
Tai yra vieninteliai keturi dalykai, kuriuos turime žinoti, norėdami pradėti naudoti ADC.
Visas minėtas keturias ypatybes nustato du registrai:
RED (ADEN): Šis bitas turi būti nustatytas norint įjungti ATMEGA ADC funkciją.
MĖLYNA (REFS1, REFS0): Šie du bitai naudojami nustatyti etaloninę įtampą (arba maksimalią įėjimo įtampą, kurią ketiname suteikti). Kadangi norime, kad atskaitos įtampa būtų 5 V, REFS0 turėtų būti nustatyta pagal lentelę.
GELTONA (ADFR): Šis bitas turi būti nustatytas, kad ADC veiktų nuolat (laisvo veikimo režimas).
PINK (MUX0-MUX3): Šie keturi bitai skirti įvesties kanalui pasakyti. Kadangi mes ketiname naudoti ADC0 arba PIN0, nereikia nustatyti jokių bitų, kaip nurodyta lentelėje.
BROWN (ADPS0-ADPS2): šie trys bitai skirti nustatyti išankstinį ADC skalę. Kadangi mes naudojame 2 išankstinį skalę, turime nustatyti vieną bitą.
DARK GREEN (ADSC): šis bitas nustatytas ADC pradėti konversiją. Šį bitą programoje galima išjungti, kai mums reikia sustabdyti konversiją.