Tässä opetusohjelmassa aiomme liittää ohjaussauva-moduulin atmega8-mikrokontrolleriin. Ohjaussauvaan on tulomoduuli, jota käytetään viestintään. Se helpottaa periaatteessa käyttäjän ja koneen välistä viestintää. Ohjaussauva on esitetty alla olevassa kuvassa.
Ohjaussauvamoduulilla on kaksi akselia - toinen on vaakasuora ja toinen pystysuora. Jokainen ohjaussauvan akseli on asennettu potentiometriin tai pottiin tai säädettävään vastukseen. Keskipisteet lasketaan Rx: ksi ja Ry: ksi. Nämä nastat kuljettavat lähtösignaalitapina JOYSTICKille. Kun sauvaa liikutetaan vaaka-akselia pitkin syöttöjännitteen ollessa läsnä, jännite Rx-nastassa muuttuu.
Rx: n jännite kasvaa eteenpäin siirryttäessä, Rx-nastan jännite pienenee, kun sitä siirretään taaksepäin. Samoin Ry: n jännite kasvaa ylöspäin siirrettäessä, Ry-nastan jännite pienenee, kun sitä siirretään alaspäin.
Joten meillä on neljä JOYSTICK-suuntaa kahdella ADC-kanavalla. Normaaleissa tapauksissa meillä on 1 volttia jokaisessa nastassa normaaleissa olosuhteissa. Kun keppiä liikutetaan, jokaisen tapin jännite nousee korkealle tai matalalle suunnasta riippuen. Joten neljä suuntaa (0V, 5V kanavalla 0) x-akselille; (0V, 5V kanavalla 1) y-akselille.
Aiomme käyttää kahta ATMEGA8: n ADC-kanavaa työn suorittamiseen. Aiomme käyttää kanavia 0 ja 1.
Tarvittavat komponentit
Laitteisto: ATMEGA8, virtalähde (5v), AVR-ISP-OHJELMOINTI, LED (4 kpl), 1000uF kondensaattori, 100nF kondensaattori (5 kpl), 1KΩ vastus (6 kpl).
Ohjelmisto: Atmel studio 6.1, progisp tai flash magic.
Piirikaavio ja selitys työstä
JOYSTICKin jännite ei ole täysin lineaarinen; se on meluisa. Kohinan suodattamiseksi kondensaattorit sijoitetaan piirin jokaisen vastuksen yli kuvan osoittamalla tavalla.
Kuten kuvassa on esitetty, piirissä on neljä LEDiä. Jokainen LED edustaa jokaisen JOYSTICK-suunnan. Kun sauvaa liikutetaan suuntaan, vastaava LED palaa.
Ennen kuin jatkat, meidän on puhuttava ATMEGA8: n ADC: stä, ATMEGA8: ssa voimme antaa analogisen tulon mihin tahansa NELJÄÄ PORTC: n kanavaa, ei ole väliä minkä kanavan valitsemme, koska kaikki ovat samat, aiomme valita PORTC: n kanavan 0 tai PIN0.
ATMEGA8: ssa ADC: n resoluutio on 10 bittiä, joten ohjain pystyy havaitsemaan merkityksen Vref / 2 ^ 10: n minimimuutoksesta, joten jos referenssijännite on 5 V, saamme digitaalisen lähdön lisäyksen jokaista 5/2 ^ 10 = 5mV. Joten jokaista 5mV: n lisäystä kohti tuloa meillä on yhden lisäys digitaalisessa lähdössä.
Nyt meidän on määritettävä ADC-rekisteri seuraavien ehtojen perusteella, 1. Ensinnäkin meidän on otettava ADC-ominaisuus käyttöön ADC: ssä.
2. Täältä saadaan enimmäistulojännite ADC-muunnokselle + 5V. Joten voimme asettaa ADC: n maksimiarvon tai viitteen 5V: iin.
3. Ohjaimessa on liipaisimen muunnosominaisuus, joka tarkoittaa, että ADC-muunnos tapahtuu vasta ulkoisen liipaisun jälkeen, koska emme halua, että meidän on asetettava rekisterit ADC: lle toimimaan jatkuvassa vapaassa käynnissä.
4. Minkä tahansa ADC: n muuntotiheys (analoginen arvo digitaaliarvoon) ja digitaalisen lähdön tarkkuus ovat kääntäen verrannollisia. Joten digitaalisen lähdön tarkkuuden parantamiseksi meidän on valittava pienempi taajuus. Normaalille ADC-kellolle asetamme ADC: n esiasetuksen maksimiarvoon (2). Koska käytämme 1 MHz: n sisäistä kelloa, ADC: n kello on (1000000/2).
Nämä ovat ainoat neljä asiaa, jotka meidän on tiedettävä aloittaa ADC.
Kaikki yllä olevat neljä ominaisuutta on asetettu kahdella rekisterillä:
PUNAINEN (ADEN): Tämä bitti on asetettava, jotta ATMEGA: n ADC-ominaisuus voidaan ottaa käyttöön.
SININEN (REFS1, REFS0): Näitä kahta bittiä käytetään asettamaan referenssijännite (tai maksimi tulojännite, jonka annamme). Koska haluamme referenssijännitteen 5 V, REFS0 tulisi asettaa taulukon mukaan.
KELTAINEN (ADFR): Tämä bitti on asetettava, jotta ADC toimii jatkuvasti (vapaakäyttötila).
PINK (MUX0-MUX3): Nämä neljä bittiä ovat tulokanavan kertomiseen. Koska aiomme käyttää ADC0: ta tai PIN0: ta, meidän ei tarvitse asettaa yhtään bittiä kuten taulukossa.
RUSKEA (ADPS0-ADPS2): nämä kolme bittiä määrittävät ADC: n esiasteen. Koska käytämme 2: n esiastetta, meidän on asetettava yksi bitti.
TUMMA VIHREÄ (ADSC): tämä bitti asetettiin ADC: lle muuntamisen aloittamiseksi. Tämä bitti voidaan poistaa käytöstä ohjelmassa, kun muunnos on lopetettava.