Satura rādītājs:
- 1. darbība: kas ir ADC?
- 2. darbība. Kā strādāt ar ADC AVR-mikrokontrollerī
- 3. darbība: ADC konversijas formula
- 4. solis: Kā konfigurēt ADC ATmega8?
- 5. solis: ADLAR atlase
- 6. darbība: ADCSRA atlase
- 7. solis: ja vēlaties izmantot ADC vērtību, jums ir jāveic daži zemāk uzskaitīti darbi
- 8. darbība: iestatiet ADC vērtību
- 9. solis: konfigurējiet izejas LED tapu
- 10. darbība: konfigurējiet ADC aparatūru
- 11. darbība: iespējojiet ADC
- 12. darbība. Sāciet konvertēšanu no analogā uz digitālo
- 13. solis: MŪŽĪGI
- 14. darbība. Beigās ir pabeigts kods
Video: Ievads ADC AVR mikrokontrollerī - iesācējiem: 14 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šajā apmācībā jūs zināt visu ADC avr mikrokontrollerī
1. darbība: kas ir ADC?
ADC jeb Analog to Digital Converter ļauj analogo spriegumu pārvērst digitālā vērtībā, ko var izmantot mikrokontrolleris. Ir daudz analogo signālu avotu, kurus varētu vēlēties izmērīt. Ir pieejami analogie sensori, kas mēra temperatūru, gaismas intensitāti, attālumu, stāvokli un spēku.
2. darbība. Kā strādāt ar ADC AVR-mikrokontrollerī
AVR ADC ļauj AVR mikrokontrolleram pārveidot analogo spriegumu par digitālo vērtību bez ārējām daļām. ATmega8 ir 10 bitu secīga aptuvena ADC. ATmega8 ir 7 kanālu ADC PortC. ADC ir atsevišķa analogā barošanas sprieguma tapa AVCC. AVCC nedrīkst atšķirties no VCC vairāk par ± 0.3V. Sprieguma atskaite var būt ārēji atvienota pie AREF tapas. AVCC tiek izmantots kā atskaites spriegums. ADC var iestatīt arī tā, lai tā darbotos nepārtraukti (brīvās darbības režīms) vai veiktu tikai vienu reklāmguvumu.
3. darbība: ADC konversijas formula
Kur Vin ir spriegums izvēlētajā ieejas tapā un Vref - izvēlētā sprieguma atsauce
4. solis: Kā konfigurēt ADC ATmega8?
ADC ieviešanai ATmega8 tiek izmantoti šādi reģistri
ADC multipleksora izvēle
5. solis: ADLAR atlase
ADC kreisās pielāgošanas rezultāts ADLAR bits ietekmē ADC konvertēšanas rezultāta attēlojumu ADC datu reģistrā. Uzrakstiet vienu ADLAR pa kreisi, lai pielāgotu rezultātu. Pretējā gadījumā rezultāts ir pareizi noregulēts
Kad ADC konvertēšana ir pabeigta, rezultāts tiek atrasts ADCH un ADCL. Lasot ADCL, ADC datu reģistrs netiek atjaunināts, kamēr nav nolasīts ADCH. Līdz ar to, ja rezultāts tiek atstāts noregulēts un nepieciešama ne vairāk kā 8 bitu precizitāte, pietiek ar ADCH nolasīšanu. Pretējā gadījumā vispirms jāizlasa ADCL, pēc tam - ADCH. Analogo kanālu izvēles biti Šo bitu vērtība nosaka, kuras analogās ieejas ir pievienotas ADC.
6. darbība: ADCSRA atlase
• 7. bits - ADEN: ADC Iespējot Šī bita rakstīšana vienā iespējo ADC. Uzrakstot to līdz nullei, ADC tiek izslēgts
• 6. bits - ADSC: ADC Sākt konvertēšanu Viena reklāmguvuma režīmā ierakstiet šo bitu vienam, lai sāktu katru reklāmguvumu. Bezmaksas skriešanas režīmā uzrakstiet šo bitu vienam, lai sāktu pirmo reklāmguvumu.
• 5. bits - ADFR: ADC bezmaksas skriešanas izvēle Izvēloties šo bitu (vienu), ADC darbojas brīvās skriešanas režīmā. Šajā režīmā ADC nepārtraukti ņem paraugus un atjaunina datu reģistrus. Notīrot šo bitu (nulli), tiks pārtraukts bezmaksas skriešanas režīms.
• 4. bits - ADIF: ADC pārtraukšanas karogs Šis bits tiek iestatīts, kad ADC konvertēšana ir pabeigta un datu reģistri tiek atjaunināti. ADC Conversion Complete Interrupt tiek izpildīts, ja SRIE ir iestatīti ADIE bits un I-bit. ADIF tiek dzēsts ar aparatūru, izpildot atbilstošo pārtraukšanas apstrādes vektoru. Alternatīvi, ADIF tiek notīrīts, uzrakstot karodziņam loģisku.
• 3. bits-ADIE: ADC pārtraukšanas iespējošana Ja šis bits ir ierakstīts vienā un SREG I-bits ir iestatīts, tiek aktivizēts ADC konversijas pabeigšanas pārtraukums.
• Bits 2: 0 - ADPS2: 0: ADC Prescaler Select Bits Saskaņā ar datu lapu šī preskalāra iestatīšana jāveic tā, lai ADC ievades frekvence būtu no 50 KHz līdz 200 KHz. ADC pulkstenis ir atvasināts no sistēmas pulksteņa ar ADPS2 palīdzību: 0 Šie biti nosaka dalīšanas koeficientu starp XTAL frekvenci un ADC ievades pulksteni.
7. solis: ja vēlaties izmantot ADC vērtību, jums ir jāveic daži zemāk uzskaitīti darbi
- Iestatiet ADC vērtību
- Konfigurējiet izejas LED tapu
- Konfigurējiet ADC aparatūru
- Iespējot ADC
- Sāciet konvertēšanu no analogā uz digitālo
- MŪŽĪGI
Ja ADC vērtība ir augstāka, tad iestatiet vērtību, ieslēdziet LED ELSE Izslēdziet LED
8. darbība: iestatiet ADC vērtību
Kods: uint8_t ADCValue = 128;
9. solis: konfigurējiet izejas LED tapu
Kods: DDRB | = (1 << PB1);
10. darbība: konfigurējiet ADC aparatūru
Konfigurējiet ADC aparatūru
Tas tiek darīts, iestatot bitus ADC vadības reģistros. Vispirms iestatīsim ADC preskalāru. Saskaņā ar datu lapu, šis preskalārs ir jāiestata tā, lai ADC ievades frekvence būtu no 50 KHz līdz 200 KHz. ADC pulkstenis ir iegūts no sistēmas pulksteņa. Ja sistēmas frekvence ir 1 MHz, iepriekšēja palielinājuma skaļrunis 8 radīs ADC frekvenci 125 Khz. Iepriekšējo mērogošanu nosaka ADPS biti ADCSRA reģistrā. Saskaņā ar datu lapu visiem trim ADPS2: 0 bitiem jābūt iestatītiem uz 011, lai iegūtu 8 prescaler.
Kods: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Tālāk iestatīsim ADC atsauces spriegumu. To kontrolē REFS biti ADMUX reģistrā. Tālāk ir norādīts atsauces spriegums uz AVCC.
Kods: ADMUX | = (1 << REFS0);
Lai kanālu, kas izvadīts caur multipleksoru, iestatītu uz ADC, atbilstoši jāiestata MUX biti ADMUX reģistrā. Tā kā mēs šeit izmantojam ADC5
Kods: ADMUX & = 0xF0; ADMUX | = 5;
Lai ieslēgtu ADC brīvās darbības režīmā, ADCSRA reģistrā iestatiet precīzi nosaukto ADFR bitu:
Kods: ADCSRA | = (1 << ADFR);
Tiks veiktas pēdējās izmaiņas iestatījumos, lai vienkāršotu ADC vērtības nolasīšanu. Lai gan ADC izšķirtspēja ir 10 biti, tik daudz informācijas bieži nav nepieciešama. Šī 10 bitu vērtība ir sadalīta divos 8 bitu reģistros - ADCH un ADCL. Pēc noklusējuma ADCL ir atrodami zemākie 8 biti no ADC vērtības, un divi augšējie ir zemākie divi ADCH biti. Iestatot ADLAR bitu ADMUX reģistrā, mēs varam izlīdzināt ADC vērtību pa kreisi. Tādējādi augstākie 8 mērījumu biti tiek ievietoti ADCH reģistrā, bet pārējie - ADCL reģistrā. Ja mēs lasām ADCH reģistru, mēs iegūstam 8 bitu vērtību, kas attēlo mūsu 0 līdz 5 voltu mērījumu kā skaitli no 0 līdz 255. Mēs būtībā pārvēršam mūsu 10 bitu ADC mērījumu par 8 bitu. Šeit ir kods, lai iestatītu ADLAR bitu:
Kods:
ADMUX | = (1 << ADLAR); Tas pabeidz ADC aparatūras iestatīšanu šim piemēram. Lai ADC sāktu veikt mērījumus, ir jāiestata vēl divi biti.
11. darbība: iespējojiet ADC
Lai iespējotu ADC, iestatiet ADEN bitu ADCSRA:
Kods: ADCSRA | = (1 << ADEN);
12. darbība. Sāciet konvertēšanu no analogā uz digitālo
Lai sāktu ADC mērījumus, ADCSRA ir jāiestata ADSC bits:
Kods: ADCSRA | = (1 << ADSC);
Šajā brīdī ADC sāks nepārtraukti paraugu ņemšanu no sprieguma, kas uzrādīts ADC5. Kods līdz šim izskatīsies šādi:
13. solis: MŪŽĪGI
Atliek tikai pārbaudīt ADC vērtību un iestatīt gaismas diodes, lai parādītu augstu / zemu indikāciju. Tā kā ADC nolasījuma ADCH maksimālā vērtība ir 255, tika izvēlēta testa vērtība th, lai noteiktu, vai spriegums bija augsts vai zems. Vienkāršs IF/ELSE paziņojums FOR cilpās ļaus mums ieslēgt pareizo LED:
Kods
ja (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Ieslēdziet LED
}
citādi
{
PORTB & = ~ (1 << PB0); // Izslēdziet LED
}
14. darbība. Beigās ir pabeigts kods
Kods:
#iekļaut
int main (anulēts)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // Iestatīt LED1 kā izeju
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Iestatiet ADC preskalāru uz 8 - // 125KHz izlases frekvenci 1MHz
ADMUX | = (1 << REFS0); // Iestatīt ADC atsauci uz AVCC
ADMUX | = (1 << ADLAR); // Kreisais ADC rezultāts, lai varētu viegli nolasīt 8 bitus
ADMUX & = 0xF0;
ADMUX | = 5; // Lai izmantotu ADC0, ir jāmaina MUX vērtības
ADCSRA | = (1 << ADFR); // Iestatiet ADC brīvās darbības režīmā
ADCSRA | = (1 << ADEN); // Iespējot ADC
ADCSRA | = (1 << ADSC); // Sāciet A2D reklāmguvumus, kamēr (1) // Loop Forever
{
ja (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Ieslēdziet LED1
}
citādi
{
PORTE & = ~ (1 << PB1); // Izslēgt LED1
}
}
atgriezties 0;
}
Vispirms publicējiet šo pamācību Noklikšķiniet šeit
Ieteicams:
Laika stacija ar mikrokontrolleri Atmega328P-PU: 5 soļi
Meteoroloģiskā stacija ar mikrokontrolleri Atmega328P-PU: nesen es apmeklēju bezmaksas tiešsaistes kursu ar edx (Hārvarda universitātes un MIT dibināta 2012. gadā, edX ir tiešsaistes mācību galamērķis un MOOC nodrošinātājs, kas piedāvā augstas kvalitātes kursus no pasaules labākajām universitātēm un iestādēm izglītojamo priekšvakarā
DIY emg sensors ar mikrokontrolleri un bez tā: 6 soļi
DIY emg sensors ar mikrokontrolleri un bez tā: Laipni lūdzam zināšanu apmaiņas pamācību platformā. Šajā instrukcijā es apspriedīšu, kā izveidot pamata emg shēmu un tajā iesaistīto matemātisko aprēķinu. Jūs varat izmantot šo shēmu, lai novērotu muskuļu impulsu izmaiņas, kontrolētu
Metronoms, kas balstīts uz mikrokontrolleri: 5 soļi
Metronoms, kas balstīts uz mikrokontrolleri: metronoms ir laika noteikšanas ierīce, ko mūziķi izmanto, lai izsekotu dziesmu sitieniem un attīstītu laika sajūtu iesācējiem, kuri apgūst jaunu instrumentu. Tas palīdz saglabāt ritma izjūtu, kas ir izšķiroša mūzikā. Šis metronoms ir
Izveidojiet PWM viļņu ar PIC mikrokontrolleri: 6 soļi
PWM viļņa ģenerēšana ar PIC mikrokontrolleri: KAS IR PWM? PWM STANDS PULSE WIDTH MODULATION ir metode, ar kuru tiek mainīts impulsa platums. Lai skaidri saprastu šo jēdzienu, ņemiet vērā pulksteņa impulsu vai jebkuru kvadrātveida viļņu signālu, kuram ir 50% darba cikls, kas nozīmē, ka Tona un Tofa periods ir vienāds
Ievads CloudX mikrokontrollerī: 3 soļi
Ievads CloudX mikrokontrollerī: CloudX mikrokontrolleris ir atvērtā avota aparatūra un programmatūra, mikrodators, kas ļauj jums izveidot savus interaktīvos projektus. CloudX ir neliela skaidu plātne, kas lietotājiem ļauj pirms jebkādas darbības pateikt, kas jādara, tā pieņem dažādas iespējas