Turinys:
- 1 žingsnis: Kas yra ADC?
- 2 žingsnis: Kaip veikia ADC naudojant AVR-mikrovaldiklį
- 3 žingsnis: ADC konversijos formulė
- 4 žingsnis: Kaip sukonfigūruoti ADC ATmega8?
- 5 žingsnis: ADLAR pasirinkimas
- 6 žingsnis: ADCSRA pasirinkimas
- 7 veiksmas: jei norite gauti ADC vertę, turite atlikti toliau išvardytą darbą
- 8 veiksmas: nustatykite ADC reikšmę
- 9 veiksmas: sukonfigūruokite išvesties LED kaištį
- 10 veiksmas: sukonfigūruokite ADC aparatinę įrangą
- 11 veiksmas: įjunkite ADC
- 12 veiksmas: pradėkite analoginių į skaitmenines konversijas
- 13 žingsnis: KADA amžinai
- 14 žingsnis: pabaigoje visas kodas yra
Video: Įvadas į AVC mikrovaldiklio ADC - pradedantiesiems: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Šioje pamokoje jūs žinosite viską, kas yra ADC mikrovaldiklyje
1 žingsnis: Kas yra ADC?
ADC arba analoginis į skaitmeninį keitiklį leidžia konvertuoti analoginę įtampą į skaitmeninę vertę, kurią gali naudoti mikrovaldiklis. Yra daug analoginių signalų šaltinių, kuriuos galbūt norėsite išmatuoti. Galimi analoginiai jutikliai, kurie matuoja temperatūrą, šviesos intensyvumą, atstumą, padėtį ir jėgą.
2 žingsnis: Kaip veikia ADC naudojant AVR-mikrovaldiklį
AVR ADC leidžia AVR mikrovaldikliui konvertuoti analoginę įtampą į skaitmenines vertes be jokių išorinių dalių. „ATmega8“turi 10 bitų iš eilės apytikslį ADC. „ATmega8“turi 7 kanalų ADC „PortC“. ADC turi atskirą analoginį maitinimo įtampos kaištį, AVCC. AVCC nuo VCC turi skirtis ne daugiau kaip ± 0,3 V.. Įtampos atskaitos taškas gali būti išoriškai atsietas prie AREF kaiščio. AVCC naudojamas kaip atskaitos įtampa. ADC taip pat gali būti nustatytas nuolatiniam veikimui (laisvo veikimo režimas) arba tik vienai konversijai.
3 žingsnis: ADC konversijos formulė
Kur Vin yra pasirinkto įvesties kaiščio įtampa, o Vref - pasirinktos įtampos atskaitos taškas
4 žingsnis: Kaip sukonfigūruoti ADC ATmega8?
Šie registrai naudojami ADC diegimui ATmega8
ADC multiplekserio pasirinkimas
5 žingsnis: ADLAR pasirinkimas
ADC kairiojo reguliavimo rezultatas ADLAR bitas veikia ADC konvertavimo rezultato pateikimą ADC duomenų registre. Parašykite vieną ADLAR į kairę, norėdami koreguoti rezultatą. Priešingu atveju rezultatas bus tinkamai sureguliuotas
Kai ADC konvertavimas yra baigtas, rezultatas randamas ADCH ir ADCL Skaitant ADCL, ADC duomenų registras neatnaujinamas, kol neskaitomas ADCH. Taigi, jei rezultatas paliekamas sureguliuotas ir reikalaujama ne daugiau kaip 8 bitų tikslumo, pakanka perskaityti ADCH. Priešingu atveju pirmiausia reikia perskaityti ADCL, tada ADCH. Analoginių kanalų pasirinkimo bitai Šių bitų reikšmė pasirenka, kurie analoginiai įėjimai yra prijungti prie ADC.
6 žingsnis: ADCSRA pasirinkimas
• 7 bitas - ADEN: ADC Enable Įrašant šį bitą į vieną, įjungiamas ADC. Užrašius jį iki nulio, ADC išjungiamas
• 6 bitas - ADSC: ADC Pradėti konversiją Vienos konversijos režimu parašykite šį bitą į vieną, kad pradėtumėte kiekvieną konversiją. Laisvojo veikimo režimu parašykite šį bitą vienam, kad pradėtumėte pirmąją konversiją.
• 5 bitas - ADFR: ADC Free Running Select Kai nustatytas šis bitas (vienas), ADC veikia laisvojo veikimo režimu. Šiuo režimu ADC nuolat ima ir atnaujina duomenų registrus. Išvalius šį bitą (nulį) laisvojo veikimo režimas bus nutrauktas.
• 4 bitas - ADIF: ADC pertraukimo vėliava Šis bitas nustatomas, kai ADC konversija baigiama ir atnaujinami duomenų registrai. ADC konversijos užbaigimo pertraukimas vykdomas, jei yra nustatyti ADIE ir I bitai SREG. Vykdant atitinkamą pertraukimo tvarkymo vektorių, ADIF pašalinama aparatine įranga. Arba ADIF pašalinamas rašant loginį prie vėliavos.
• 3 bitas-ADIE: ADC pertraukimo įjungimas Kai šis bitas yra įrašytas į vieną ir nustatytas IEG bitas SREG, įjungiamas ADC Conversion Complete Interrupt.
• Bitai 2: 0 - ADPS2: 0: ADC prescaler Select Bits Pagal duomenų lapą, šis prescalar turi būti nustatytas taip, kad ADC įvesties dažnis būtų nuo 50 KHz iki 200 KHz. ADC laikrodis yra išvestas iš sistemos laikrodžio naudojant ADPS2: 0 Šie bitai nustato padalijimo koeficientą tarp XTAL dažnio ir įvesties laikrodžio į ADC.
7 veiksmas: jei norite gauti ADC vertę, turite atlikti toliau išvardytą darbą
- Nustatykite ADC vertę
- Konfigūruokite išvesties LED kaištį
- Konfigūruokite ADC aparatinę įrangą
- Įgalinti ADC
- Pradėkite analoginių į skaitmenines konversijas
- KAIP amžinai
JEI ADC reikšmė didesnė nei nustatyta vertė, įjunkite LED ELSE Išjunkite LED
8 veiksmas: nustatykite ADC reikšmę
Kodas: uint8_t ADCValue = 128;
9 veiksmas: sukonfigūruokite išvesties LED kaištį
Kodas: DDRB | = (1 << PB1);
10 veiksmas: sukonfigūruokite ADC aparatinę įrangą
Konfigūruokite ADC aparatinę įrangą
Tai daroma nustatant bitus ADC valdymo registruose. Pirma, nustatykime ADC išankstinį skalą. Remiantis duomenų lapu, šį išankstinį skaliarą reikia nustatyti taip, kad ADC įvesties dažnis būtų nuo 50 KHz iki 200 KHz. ADC laikrodis gaunamas iš sistemos laikrodžio. Esant 1MHz sistemos dažniui, padidinus 8, ADC dažnis bus 125 Khz. Išankstinio mastelio keitimą nustato ADPS bitai ADCSRA registre. Pagal duomenų lapą, norint gauti 8 prescaler, visi trys ADPS2: 0 bitai turi būti nustatyti į 011.
Kodas: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Toliau nustatykime ADC etaloninę įtampą. Tai valdo REFS bitai ADMUX registre. Toliau nustatyta atskaitos įtampa į AVCC.
Kodas: ADMUX | = (1 << REFS0);
Norint per kanalą perduotą kanalą nustatyti į ADC, reikia atitinkamai nustatyti MUX bitus ADMUX registre. Kadangi čia naudojame ADC5
Kodas: ADMUX & = 0xF0; ADMUX | = 5;
Norėdami įjungti ADC laisvai veikiančio režimo režimą, ADCSRA registre įveskite tinkamai pavadintą ADFR bitą:
Kodas: ADCSRA | = (1 << ADFR);
Bus atliktas paskutinis nustatymų pakeitimas, kad būtų paprasčiau skaityti ADC vertę. Nors ADC skiriamoji geba yra 10 bitų, tokios informacijos dažnai nereikia. Ši 10 bitų vertė yra padalinta į du 8 bitų registrus - ADCH ir ADCL. Pagal numatytuosius nustatymus ADCL yra mažiausi 8 bitai ADC vertės, o viršutiniai du yra mažiausi du ADCH bitai. Nustačius ADLAR bitą ADMUX registre, galime išlyginti ADC vertę į kairę. Taip aukščiausi 8 matavimo bitai įrašomi į ADCH registrą, o kiti - į ADCL registrą. Jei tada perskaitysime ADCH registrą, gausime 8 bitų reikšmę, kuri parodys mūsų nuo 0 iki 5 voltų matavimą kaip skaičių nuo 0 iki 255. Mes iš esmės paverčiame 10 bitų ADC matavimą į 8 bitų. Štai kodas, skirtas nustatyti ADLAR bitą:
Kodas:
ADMUX | = (1 << ADLAR); Tai užbaigia šio pavyzdžio ADC aparatinės įrangos sąranką. Prieš pradedant ADC matuoti, reikia nustatyti dar du bitus.
11 veiksmas: įjunkite ADC
Norėdami įjungti ADC, nustatykite ADEN bitą ADCSRA:
Kodas: ADCSRA | = (1 << ADEN);
12 veiksmas: pradėkite analoginių į skaitmenines konversijas
Norint pradėti ADC matavimus, ADCSRA reikia nustatyti ADSC bitą:
Kodas: ADCSRA | = (1 << ADSC);
Šiuo metu ADC pradės nuolat imti įtampą, pateiktą ADC5. Šiuo metu kodas atrodytų taip:
13 žingsnis: KADA amžinai
Liko tik išbandyti ADC vertę ir nustatyti, kad šviesos diodai rodytų aukštą / žemą indikaciją. Kadangi ADC rodmenys ADCH maksimali vertė yra 255, buvo pasirinkta bandymo vertė th, siekiant nustatyti, ar įtampa buvo aukšta, ar žema. Paprastas IF/ELSE teiginys FOR kilpose leis mums įjungti teisingą šviesos diodą:
Kodas
jei (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Įjunkite šviesos diodą
}
Kitas
{
PORTB & = ~ (1 << PB0); // Išjungti šviesos diodą
}
14 žingsnis: pabaigoje visas kodas yra
Kodas:
#įtraukti
int main (niekinis)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // Nustatykite LED1 kaip išvestį
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Nustatykite ADC prescalar į 8 - 125KHz mėginių dažnį 1MHz
ADMUX | = (1 << REFS0); // Nustatykite ADC nuorodą į AVCC
ADMUX | = (1 << ADLAR); // Kairysis ADC rezultato reguliavimas, kad būtų galima lengvai skaityti 8 bitus
ADMUX & = 0xF0;
ADMUX | = 5; // Norint naudoti ADC0, reikėjo pakeisti MUX reikšmes
ADCSRA | = (1 << ADFR); // Nustatykite ADC į laisvai veikiantį režimą
ADCSRA | = (1 << ADEN); // Įgalinti ADC
ADCSRA | = (1 << ADSC); // Pradėkite A2D konversijas, kol (1) // Loop Forever
{
jei (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Įjunkite LED1
}
Kitas
{
PORTE & = ~ (1 << PB1); // Išjungti LED1
}
}
grįžti 0;
}
Pirmiausia paskelbkite šį vadovėlį Spustelėkite čia
Rekomenduojamas:
LED laikrodis be mikrovaldiklio: 12 žingsnių
LED laikrodis be mikrovaldiklio: Kaip atrodo, man patinka gaminti skirtingus laikrodžius. Aš sukūriau ir suprojektavau daugybę elektroninių ir mechaninių laikrodžių, o šis yra dar vienas. Mano pirmasis elektronikos laikrodis reikalavo kelių pakartojimų ir aš daug išmokau. Pateiktas dizainas yra tobulas
Skaitmeninis laikrodis, bet be mikrovaldiklio [Hardcore Electronics]: 13 žingsnių (su nuotraukomis)
Skaitmeninis laikrodis, bet be mikrovaldiklio [„Hardcore Electronics“]: Sukurti grandines naudojant mikrovaldiklį yra gana paprasta, tačiau mes visiškai pamirštame daugybę darbų, kuriuos mikrovaldiklis turėjo atlikti, kad atliktų paprastą užduotį (net jei mirksi LED). Taigi, kaip sunku būtų sukurti skaitmeninį laikrodį
„Pasidaryk pats“bekontaktis rankų dezinfekavimo priemonės dozatorius be „Arduino“ar mikrovaldiklio: 17 žingsnių (su nuotraukomis)
„Pasidaryk pats“nekontaktinis rankų dezinfekavimo priemonės dozatorius be „Arduino“ar mikrovaldiklio: Kaip visi žinome, COVID-19 protrūkis pasiekė pasaulį ir pakeitė mūsų gyvenimo būdą. Esant tokiai būklei, alkoholis ir rankų dezinfekavimo priemonės yra gyvybiškai svarbūs skysčiai, tačiau jie turi būti naudojami tinkamai. Palietus alkoholio talpyklas ar rankų dezinfekavimo priemones užkrėstomis rankomis
„CloudX“mikrovaldiklio įvadas: 3 žingsniai
„CloudX“mikrovaldiklio įvadas: „CloudX“mikrovaldiklis yra atviro kodo aparatinė ir programinė įranga, mikrokompiuteris, leidžiantis kurti savo interaktyvius projektus. „CloudX“yra maža medžio drožlių plokštė, leidžianti vartotojams pasakyti, ką daryti prieš imantis bet kokių veiksmų, ji priima skirtingus k
AVR mikrovaldiklio saugiklių bitų konfigūracija. Mikrovaldiklio „Flash“atminties sukūrimas ir įkėlimas LED mirksėjimo programa: 5 žingsniai
AVR mikrovaldiklio saugiklių bitų konfigūracija. Šviesos diodų mirksėjimo programos sukūrimas ir įkėlimas į mikrokontrolerio „Flash“atmintį: Šiuo atveju sukursime paprastą programą C kodu ir įrašysime ją į mikrovaldiklio atmintį. Mes parašysime savo programą ir sudarysime šešioliktainį failą, naudodami integruotą kūrimo platformą „Atmel Studio“. Mes sukonfigūruosime saugiklį bi