Kazalo:
- 1. korak: Kaj je ADC?
- 2. korak: Kako deluje ADC v mikrokontrolerju AVR
- 3. korak: Formula za pretvorbo ADC
- 4. korak: Kako konfigurirati ADC v ATmega8?
- 5. korak: Izbira ADLAR
- 6. korak: Izbira ADCSRA
- 7. korak: Če želite izmeriti vrednost ADC, morate narediti nekaj dela, ki je navedeno spodaj
- 8. korak: Nastavite vrednost ADC
- 9. korak: Konfigurirajte izhodni LED pin
- 10. korak: Konfigurirajte strojno opremo ADC
- 11. korak: Omogočite ADC
- Korak: Začnite analogno -digitalno pretvorbo
- 13. korak: VEDNO
- 14. korak: Na koncu je popolna koda
Video: Uvod v ADC v mikrokrmilniku AVR - za začetnike: 14 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
V tej vadnici boste izvedeli vse ADC v mikrokrmilniku avr
1. korak: Kaj je ADC?
ADC ali analogno -digitalni pretvornik omogoča pretvorbo analogne napetosti v digitalno vrednost, ki jo lahko uporablja mikrokrmilnik. Obstaja veliko virov analognih signalov, ki bi jih radi izmerili. Na voljo so analogni senzorji, ki merijo temperaturo, jakost svetlobe, razdaljo, položaj in silo.
2. korak: Kako deluje ADC v mikrokontrolerju AVR
AVR ADC mikrokontrolerju AVR omogoča pretvorbo analognih napetosti v digitalne vrednosti z malo ali brez zunanjih delov. ATmega8 ima 10-bitni zaporedni približevalni ADC. ATmega8 ima 7-kanalni ADC na PortC. ADC ima ločen analogni pin napajalne napetosti, AVCC. AVCC se ne sme razlikovati za več kot ± 0,3 V od VCC.. Referenčna napetost se lahko od zunaj loči na zatiču AREF. AVCC se uporablja kot referenčna napetost. ADC lahko nastavite tudi za neprekinjeno delovanje (način prostega teka) ali za samo eno pretvorbo.
3. korak: Formula za pretvorbo ADC
Kjer je Vin napetost na izbranem vhodnem zatiču in Vref izbrana referenčna napetost
4. korak: Kako konfigurirati ADC v ATmega8?
Naslednji registri se uporabljajo za implementacijo ADC v ATmega8
Izbira multipleksorja ADC
5. korak: Izbira ADLAR
Rezultat leve prilagoditve ADC Bit ADLAR vpliva na predstavitev rezultata pretvorbe ADC v podatkovnem registru ADC. Napišite eno v ADLAR, da levo prilagodite rezultat. V nasprotnem primeru je rezultat pravilno nastavljen
Ko je pretvorba ADC končana, se rezultat najde v ADCH in ADCL Ko se ADCL prebere, se podatkovni register ADC ne posodobi, dokler se ADCH ne prebere. Če je rezultat nastavljen levo in ni potrebna več kot 8-bitna natančnost, zadostuje, da se prebere ADCH. V nasprotnem primeru je treba najprej prebrati ADCL, nato ADCH. Biti za izbiro analognega kanala Vrednost teh bitov izbere, kateri analogni vhodi so povezani z ADC.
6. korak: Izbira ADCSRA
• Bit 7 - ADEN: ADC Enable Zapis tega bita v enega omogoča ADC. Z zapisom na nič se ADC izklopi
• Bit 6 - ADSC: ADC Start Conversion (Začetek pretvorbe ADC) V načinu enojne pretvorbe zapišite to bit v eno za začetek vsake pretvorbe. V načinu prostega teka zapišite to bitje v eno za začetek prve pretvorbe.
• Bit 5 - ADFR: ADC Free Running Select Ko je ta bit nastavljen (en), ADC deluje v načinu prostega teka. V tem načinu ADC neprekinjeno vzorči in posodablja podatkovne registre. Če izbrišete ta bit (nič), boste prekinili način prostega teka.
• Bit 4 - ADIF: ADC Interrupt Flag Ta bit je nastavljen, ko je pretvorba ADC končana in so podatkovni registri posodobljeni. Popoln prekinitev pretvorbe ADC se izvede, če sta nastavljena bit ADIE in I-bit v SREG. Strojna oprema počisti ADIF pri izvajanju ustreznega vektorja za ravnanje s prekinitvami. Druga možnost je, da se ADIF počisti tako, da se v zastavo zapiše logična.
• Bit 3-ADIE: ADC Interrupt Enable Ko je ta bit zapisan v eno in je nastavljen I-bit v SREG, se aktivira ADC Conversion Complete Interrupt.
• Biti 2: 0 - ADPS2: 0: Izbira bitov predkalerja ADC Glede na podatkovni list je treba to predskalo nastaviti tako, da je vhodna frekvenca ADC med 50 KHz in 200 KHz. Ura ADC izhaja iz sistemske ure s pomočjo ADPS2: 0 Ti biti določajo faktor delitve med frekvenco XTAL in vhodno uro ADC.
7. korak: Če želite izmeriti vrednost ADC, morate narediti nekaj dela, ki je navedeno spodaj
- Nastavite vrednost ADC
- Konfigurirajte izhodni LED pin
- Konfigurirajte strojno opremo ADC
- Omogoči ADC
- Zaženite analogno -digitalno pretvorbo
- Medtem ko za vedno
ČE je vrednost ADC višja od nastavljene vrednosti, VKLOPLJAVI LED ELSE Izklopi LED
8. korak: Nastavite vrednost ADC
Koda: uint8_t ADCValue = 128;
9. korak: Konfigurirajte izhodni LED pin
Koda: DDRB | = (1 << PB1);
10. korak: Konfigurirajte strojno opremo ADC
Konfigurirajte strojno opremo ADC
To se naredi z nastavitvijo bitov v krmilnih registrih za ADC. Najprej nastavimo predskalar za ADC. V skladu s podatkovnim listom je treba to predskalo nastaviti tako, da bo vhodna frekvenca ADC med 50 KHz in 200 KHz. Ura ADC izhaja iz sistemske ure. S sistemsko frekvenco 1MHz bo prednastavitev 8 povzročila frekvenco ADC 125 Khz. Prednamerjanje je nastavljeno z bitoma ADPS v registru ADCSRA. V skladu s podatkovnim listom morajo biti vsi trije bitovi ADPS2: 0 nastavljeni na 011, da dobimo 8 predkalerjev.
Koda: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Nato nastavimo referenčno napetost ADC. To nadzirajo bitovi REFS v registru ADMUX. Spodaj nastavite referenčno napetost na AVCC.
Koda: ADMUX | = (1 << REFS0);
Če želite kanal, ki poteka skozi multiplekser, nastaviti na ADC, je treba ustrezno nastaviti bit MUX v registru ADMUX. Ker tukaj uporabljamo ADC5
Koda: ADMUX & = 0xF0; ADMUX | = 5;
Če želite ADC preklopiti v način prostega teka, nastavite ustrezno imenovan bit ADFR v register ADCSRA:
Koda: ADCSRA | = (1 << ADFR);
Zadnja sprememba nastavitev bo olajšala branje vrednosti ADC. Čeprav ima ADC ločljivost 10 bitov, te informacije pogosto niso potrebne. Ta 10 -bitna vrednost je razdeljena na dva 8 -bitna registra, ADCH in ADCL. Privzeto najnižjih 8 bitov vrednosti ADC najdemo v ADCL, zgornja dva pa sta najnižja dva bita ADCH. Z nastavitvijo bita ADLAR v register ADMUX lahko vrednost ADC poravnamo levo. Tako se v register ADCH vnese največ 8 bitov meritve, preostali del pa v register ADCL. Če nato preberemo register ADCH, dobimo 8 -bitno vrednost, ki predstavlja našo meritev od 0 do 5 voltov kot število od 0 do 255. V osnovi spreminjamo 10 -bitno merjenje ADC v 8 -bitno. Tu je koda za nastavitev bita ADLAR:
Koda:
ADMUX | = (1 << ADLAR); S tem je za ta primer zaključena nastavitev strojne opreme ADC. Preden bo ADC začel izvajati meritve, je treba nastaviti še dva bita.
11. korak: Omogočite ADC
Če želite omogočiti ADC, nastavite bit ADEN v ADCSRA:
Koda: ADCSRA | = (1 << ADEN);
Korak: Začnite analogno -digitalno pretvorbo
Za začetek meritev ADC je treba nastaviti bit ADSC v ADCSRA:
Koda: ADCSRA | = (1 << ADSC);
Na tej točki bi ADC začel nenehno vzorčiti napetost, prikazano na ADC5. Koda do te točke bi izgledala tako:
13. korak: VEDNO
Edino, kar morate storiti, je, da preizkusite vrednost ADC in nastavite LED, da prikažejo indikator visoke / nizke vrednosti. Ker ima ADC v ADCH največjo vrednost 255, smo izbrali preskusno vrednost th, da ugotovimo, ali je napetost visoka ali nizka. Preprost stavek IF/ELSE v zankah FOR nam bo omogočil vklop pravilne LED:
Koda
če (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Vklopi LED
}
drugače
{
PORTB & = ~ (1 << PB0); // Izklopite LED
}
14. korak: Na koncu je popolna koda
Koda:
#vključi
int main (void)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // LED1 nastavimo kot izhod
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Predkalar ADC nastavite na 8 - // 125KHz frekvenco vzorčenja 1MHz
ADMUX | = (1 << REFS0); // Referenco ADC nastavite na AVCC
ADMUX | = (1 << ADLAR); // Levo prilagodite rezultat ADC, da omogočite enostavno 8 -bitno branje
ADMUX & = 0xF0;
ADMUX | = 5; // Vrednosti MUX je treba spremeniti za uporabo ADC0
ADCSRA | = (1 << ADFR); // ADC nastavite na Free-Running Mode
ADCSRA | = (1 << ADEN); // Omogoči ADC
ADCSRA | = (1 << ADSC); // Začni pretvorbe A2D, medtem ko (1) // Loop Forever
{
če (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Vklopite LED1
}
drugače
{
PORTE & = ~ (1 << PB1); // Izklopite LED1
}
}
vrnitev 0;
}
Najprej objavi to vadnico Kliknite tukaj
Priporočena:
Uvod v Visuino - Visuino za začetnike .: 6 korakov
Uvod v Visuino | Visuino za začetnike. V tem članku želim govoriti o Visuinu, ki je še ena programska oprema za grafično programiranje za Arduino in podobne mikrokrmilnike. Če ste elektronski hobist, ki želite priti v svet Arduina, vendar nimate predhodnega znanja programiranja
Kako uporabljati multimeter v tamilščini - Vodnik za začetnike - Multimeter za začetnike: 8 korakov
Kako uporabljati multimeter v tamilščini | Vodnik za začetnike | Multimeter za začetnike: Pozdravljeni prijatelji, V tej vadnici sem razložil, kako uporabljati multimeter v vseh vrstah elektronskih vezij v 7 različnih korakih, na primer 1) preskus neprekinjenosti za odpravljanje težav pri strojni opremi 2) merjenje enosmernega toka 3) preskušanje diode in LED 4) merjenje Resi
Uvod v napetost, tok, upor in moč, razložen za začetnike: 3 koraki
Uvod v napetost, tok, upor in moč, razložen za začetnike: Ta videoposnetek je povezan z osnovnimi izrazi elektronike in je enostaven za razumevanje, poskušal bom preprosto razložiti s konceptom analogije vode, zato pomaga razumeti teorijo testa, zato si oglejte ta videoposnetek za jasnejšo predstavo o toku, napetosti
Uvod v skript VB: vodnik za začetnike: 11 korakov
Uvod v skript VB: Vodnik za začetnike: *** ((((OPOZORILO: Čeprav je veliko korakov. To je pravzaprav precej preprosto. Za začetnike samo podrobno razložim. Če želite le, da koda skoči na zadnji korak in tam boste našli celotno kodo.)))) *** Veliko igram na Xboxu
Uvod v skript VB: Vodnik za začetnike: 2. del: Delo s datotekami: 13 korakov
Uvod v VB Script: Vodnik za začetnike: 2. del: Delo s datotekami: V zadnjem navodilu VBScript sem preučil, kako narediti skript za izklop interneta za predvajanje Xbox360. Danes imam drugačen problem. Moj računalnik se je naključno izklopil in vsakič se želim prijaviti, ko računalnik