Sisällysluettelo:
- Vaihe 1: Mikä on ADC?
- Vaihe 2: Kuinka ADC toimii AVR-mikrokontrollerissa
- Vaihe 3: ADC -muunnoskaava
- Vaihe 4: Kuinka määrittää ADC ATmega8: ssa?
- Vaihe 5: ADLAR -valinta
- Vaihe 6: ADCSRA -valinta
- Vaihe 7: Jos haluat ottaa ADC -arvon, sinun on suoritettava alla lueteltu työ
- Vaihe 8: Aseta ADC -arvo
- Vaihe 9: Määritä lähdön LED -nasta
- Vaihe 10: Määritä ADC -laitteisto
- Vaihe 11: Ota ADC käyttöön
- Vaihe 12: Aloita analogisesta digitaaliseen muuntaminen
- Vaihe 13: IKINÄ ikuisesti
- Vaihe 14: Lopussa täydellinen koodi on
Video: Johdatus ADC: hen AVR -mikrokontrollerissa - aloittelijoille: 14 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tässä opetusohjelmassa tiedät kaiken ADC: n avr -mikrokontrollerissa
Vaihe 1: Mikä on ADC?
ADC tai analoginen digitaalimuunnin mahdollistaa analogisen jännitteen muuntamisen digitaaliseksi arvoksi, jota mikrokontrolleri voi käyttää. On olemassa monia analogisten signaalien lähteitä, joita voisi haluta mitata. Saatavilla on analogisia antureita, jotka mittaavat lämpötilaa, valon voimakkuutta, etäisyyttä, asentoa ja voimaa.
Vaihe 2: Kuinka ADC toimii AVR-mikrokontrollerissa
AVR ADC mahdollistaa AVR -mikrokontrollerin muuntaa analogiset jännitteet digitaalisiksi arvoiksi ilman ulkoisia osia. ATmega8 sisältää 10-bittisen peräkkäisen likimääräisen ADC: n. ATmega8: ssa on 7-kanavainen ADC PortC: ssä. ADC: ssä on erillinen analoginen syöttöjännitetappi, AVCC. AVCC ei saa poiketa VCC: stä enempää kuin ± 0,3 V. Jänniteohje voi olla ulkoisesti irrotettu AREF -nastasta. Jänniteohjeena käytetään AVCC: tä. ADC voidaan myös asettaa toimimaan jatkuvasti (vapaakäyntitila) tai suorittamaan vain yksi muunnos.
Vaihe 3: ADC -muunnoskaava
Missä Vin on valitun tulotapin jännite ja Vref valittu jänniteohje
Vaihe 4: Kuinka määrittää ADC ATmega8: ssa?
Seuraavia rekistereitä käytetään ADC: n toteuttamiseen ATmega8: ssa
ADC -multiplekserin valinta
Vaihe 5: ADLAR -valinta
ADC -vasemmanpuoleisen säädön tulos ADLAR -bitti vaikuttaa ADC -muunnostuloksen esittämiseen ADC -rekisterissä. Kirjoita yksi ADLARille vasemmalle säätääksesi tulosta. Muuten tulos on oikein säädetty
Kun ADC -muunnos on valmis, tulos löytyy ADCH: sta ja ADCL: stä. Näin ollen, jos tulos jätetään säätämättä ja vaaditaan enintään 8-bittistä tarkkuutta, riittää lukea ADCH. Muussa tapauksessa ADCL on ensin luettava ja sitten ADCH. Analogisen kanavan valintabitit Näiden bittien arvo valitsee, mitkä analogiatulot on kytketty ADC: hen.
Vaihe 6: ADCSRA -valinta
• Bitti 7 - ADEN: ADC Ota käyttöön Tämän bitin kirjoittaminen yhdeksi ottaa ADC: n käyttöön. Kirjoittamalla sen nollaan ADC kytkeytyy pois päältä
• Bitti 6 - ADSC: ADC Käynnistä muunnos Kirjoita tämä bitti yhdelle -muodossa, jos haluat aloittaa jokaisen muunnoksen. Vapaa juoksu -tilassa kirjoita tämä bitti yhdelle aloittaaksesi ensimmäisen muunnoksen.
• Bitti 5 - ADFR: ADC Free Running Select Kun tämä bitti on asetettu (yksi), ADC toimii Free Running -tilassa. Tässä tilassa ADC ottaa näytteitä ja päivittää tietorekistereitä jatkuvasti. Tämän bitin (nolla) tyhjentäminen lopettaa vapaakäyntitilan.
• Bitti 4 - ADIF: ADC -keskeytyslippu Tämä bitti asetetaan, kun ADC -muunnos on valmis ja tietorekisterit päivitetään. ADC Conversion Complete Interrupt suoritetaan, jos ADIE- ja I-bitit SREG: ssä on asetettu. Laitteisto tyhjentää ADIF: n suorittaessaan vastaavan keskeytyskäsittelyvektorin. Vaihtoehtoisesti ADIF tyhjennetään kirjoittamalla lippuun looginen.
• Bitti 3-ADIE: ADC-keskeytyksen esto Kun tämä bitti on kirjoitettu yhdelle ja IEG-bitti SREG: ssä on asetettu, ADC Conversion Complete Interrupt aktivoidaan.
• Bitit 2: 0 - ADPS2: 0: ADC -esiscaler -valintabitit Tietolomakkeen mukaan tämä esiskalari on asetettava siten, että ADC -tulotaajuus on 50–200 KHz. ADC -kello johdetaan järjestelmäkellosta ADPS2: 0: n avulla. Nämä bitit määrittävät jakautumistekijän XTAL -taajuuden ja ADC: n tulokellon välillä.
Vaihe 7: Jos haluat ottaa ADC -arvon, sinun on suoritettava alla lueteltu työ
- Aseta ADC -arvo
- Määritä lähdön LED -nasta
- Määritä ADC -laitteisto
- Ota ADC käyttöön
- Aloita analogisesta digitaaliseen muuntaminen
- IKINÄ ikuisesti
JOS ADC -arvo on suurempi kuin asetusarvo, sytytä LED ELSE Sammuta LED
Vaihe 8: Aseta ADC -arvo
Koodi: uint8_t ADCValue = 128;
Vaihe 9: Määritä lähdön LED -nasta
Koodi: DDRB | = (1 << PB1);
Vaihe 10: Määritä ADC -laitteisto
Määritä ADC -laitteisto
Tämä tehdään asettamalla bittejä ADC: n ohjausrekistereihin. Asetetaan ensin ADC: n eskalaari. Tietolomakkeen mukaan tämä eskalaari on asetettava siten, että ADC: n tulotaajuus on 50–200 KHz. ADC -kello on johdettu järjestelmän kellosta. Kun järjestelmän taajuus on 1 MHz, esiskaalaus 8 johtaa ADC -taajuuteen 125 Khz. Esiskaalaus asetetaan ADCSRA -rekisterin ADPS -bittien avulla. Tietolomakkeen mukaan kaikki kolme ADPS2: 0 -bittiä on asetettava arvoon 011, jotta saat 8 esiasetinta.
Koodi: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Seuraavaksi asetetaan ADC -referenssijännite. Tätä ohjaavat ADMUX -rekisterin REFS -bitit. Seuraavassa asetetaan vertailujännite AVCC: ksi.
Koodi: ADMUX | = (1 << REFS0);
Jos haluat asettaa kanavan multiplekserin kautta ADC: hen, ADMUX -rekisterin MUX -bitit on asetettava vastaavasti. Koska käytämme täällä ADC5: tä
Koodi: ADMUX & = 0xF0; ADMUX | = 5;
Aseta ADC vapaaseen toimintatilaan asettamalla sopivan niminen ADFR-bitti ADCSRA-rekisteriin:
Koodi: ADCSRA | = (1 << ADFR);
Viimeinen asetusten muutos helpottaa ADC -arvon lukemista. Vaikka ADC: n resoluutio on 10 bittiä, niin paljon tietoa ei usein tarvita. Tämä 10 -bittinen arvo on jaettu kahteen 8 -bittiseen rekisteriin, ADCH ja ADCL. Oletuksena ADCL: n ADCL -arvon alimmat 8 bittiä löytyvät ADCL: stä, ja kaksi ylempää ovat ADCH: n alimmat kaksi bittiä. Asettamalla ADLAR -bitin ADMUX -rekisteriin voimme kohdistaa ADC -arvon vasemmalle. Tämä asettaa mittauksen korkeimmat 8 bittiä ADCH -rekisteriin ja loput ADCL -rekisteriin. Jos luemme sitten ADCH -rekisterin, saamme 8 -bittisen arvon, joka edustaa 0–5 voltin mittaustamme numerona 0–255. Kääntämme 10 -bittisen ADC -mittauksemme 8 -bittiseksi. Tässä on koodi ADLAR -bitin asettamiseksi:
Koodi:
ADMUX | = (1 << ADLAR); Tämä viimeistelee ADC -laitteiston asennuksen tässä esimerkissä. Ennen kuin ADC aloittaa mittausten tekemisen, on asetettava kaksi muuta bittiä.
Vaihe 11: Ota ADC käyttöön
Ota ADC käyttöön asettamalla ADEN -bitti ADCSRA:
Koodi: ADCSRA | = (1 << ADEN);
Vaihe 12: Aloita analogisesta digitaaliseen muuntaminen
ADC -mittausten aloittamiseksi ADCSRA: n ADSC -bitti on asetettava:
Koodi: ADCSRA | = (1 << ADSC);
Tässä vaiheessa ADC aloittaisi jatkuvasti näytteenoton ADC5: n jännitteestä. Tässä vaiheessa koodi näyttäisi tältä:
Vaihe 13: IKINÄ ikuisesti
Ainoa asia, joka on tehtävä, on testata ADC -arvo ja asettaa LED -valot näyttämään korkea / matala -ilmaisin. Koska ADCH: n ADC -lukeman maksimiarvo on 255, testiarvo th valittiin sen määrittämiseksi, onko jännite korkea vai matala. Yksinkertainen IF/ELSE -lauseke FOR -silmukoissa antaa meille mahdollisuuden kytkeä oikea LED -valo päälle:
Koodi
jos (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Kytke LED päälle
}
muu
{
PORTB & = ~ (1 << PB0); // Sammuta LED
}
Vaihe 14: Lopussa täydellinen koodi on
Koodi:
#sisältää
int main (mitätön)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // Aseta LED1 lähtöksi
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Aseta ADC -eskalaari 8 - 125 KHz: n näytteenottotaajuuteen 1 MHz
ADMUX | = (1 << REFS0); // Aseta ADC -viitteeksi AVCC
ADMUX | = (1 << ADLAR); // Vasemmanpuoleinen ADC -tulos mahdollistaa helpon 8 -bittisen lukemisen
ADMUX & = 0xF0;
ADMUX | = 5; // MUX -arvoja on muutettava ADC0: n käyttämiseksi
ADCSRA | = (1 << ADFR); // Aseta ADC Free-Running Mode -tilaan
ADCSRA | = (1 << ADEN); // Ota ADC käyttöön
ADCSRA | = (1 << ADSC); // Aloita A2D -muunnokset (1) // Silmukka ikuisesti
{
jos (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Kytke LED -valo päälle 1
}
muu
{
PORTE & = ~ (1 << PB1); // Sammuta LED1
}
}
palauta 0;
}
Julkaise ensin tämä opetusohjelma Napsauta tätä
Suositeltava:
Johdatus GarageBandiin: 9 vaihetta
Johdanto GarageBandiin: GarageBand on alusta, jolla voit tehdä musiikkia. Tällä alustalla voit tehdä melkein mitä tahansa, olipa kyseessä sitten unelmamusiikkisi luominen tai toisto haluamastasi musiikista. Mutta se ei ole helppoa kumminkaan. Siksi olen täällä
Asenna täysi Windows 10 Raspberry Pi: hen!: 5 vaihetta
Asenna täysi Windows 10 Raspberry Pi: hen!: Raspberry Pi on loistava levy monien asioiden tekemiseen. On monia ohjeita, kuten IOT, kotiautomaatio jne. Tässä ohjeessa näytän sinulle, kuinka voit käyttää koko Windows -työpöytää Raspberry PI 3B -laitteellasi
8051 Liitäntä DS1307 RTC: hen ja aikaleiman näyttäminen nestekidenäytössä: 5 vaihetta
8051 -liitäntä DS1307 RTC: n kanssa ja aikaleiman näyttäminen nestekidenäytössä: Tässä opetusohjelmassa olemme selittäneet, kuinka voimme liittää 8051 -mikrokontrollerin ds1307 RTC: hen. Tässä näytämme RTC -ajan lcd: ssä käyttämällä proteus -simulaatiota
Johdatus robotiikkaan peruskoulun oppilaille Hummingbird -ohjaimilla: 18 vaihetta
Johdanto robotiikkaan peruskoulun opiskelijoille, joilla on Hummingbird -ohjaimet: Useimmat markkinoilla olevat robotiikkatyökalut vaativat käyttäjän lataamaan tietyt ohjelmistot kiintolevylleen. Hummingbird-robottiohjaimen kauneus on, että sitä voidaan käyttää verkkopohjaisella tietokoneella, kuten chromebookilla. Se on ollut myös
Johdatus äänentunnistukseen Elechouse V3: n ja Arduinon kanssa: 4 vaihetta (kuvien kanssa)
Johdatus äänentunnistukseen Elechouse V3: n ja Arduinon kanssa: Hei … Äänentunnistustekniikka on ollut täällä viime vuosina. Muistamme edelleen suuren jännityksen, joka meillä oli keskustellessamme ensimmäisen Siri -yhteensopivan iPhonen kanssa. Siitä lähtien äänikomentolaitteet ovat kasvaneet erittäin pitkälle