
Բովանդակություն:
- Քայլ 1: Ի՞նչ է ADC- ն:
- Քայլ 2. Ինչպես աշխատել ADC- ում AVR- միկրոկառավարիչում
- Քայլ 3: ADC փոխակերպման բանաձև
- Քայլ 4. Ինչպե՞ս կարգավորել ADC- ն ATmega8- ում:
- Քայլ 5. ADLAR- ի ընտրություն
- Քայլ 6: ADCSRA ընտրություն
- Քայլ 7. Եթե ցանկանում եք վերցնել ADC- ի արժեքը, ձեզ պետք է որոշակի աշխատանք, որը կատարված է ստորև թվարկված
- Քայլ 8: Սահմանեք ADC արժեքը
- Քայլ 9. Կարգավորեք ելքային LED փին
- Քայլ 10: Կարգավորեք ADC սարքաշարը
- Քայլ 11: Միացնել ADC- ն
- Քայլ 12: Սկսեք թվային փոխակերպումների անալոգը
- Քայլ 13 ՝ ԱՌԱ Fore ընդմիշտ
- Քայլ 14: Վերջում ամբողջական ծածկագիրն է
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Այս ձեռնարկում դուք կիմանաք ամեն ինչ ADR avr միկրոկառավարիչի մեջ
Քայլ 1: Ի՞նչ է ADC- ն:
ADC, կամ անալոգային թվային փոխարկիչ, թույլ է տալիս մեկին փոխարկել անալոգային լարումը թվային արժեքի, որը կարող է օգտագործվել միկրոկոնտրոլերի կողմից: Կան բազմաթիվ անալոգային ազդանշանների աղբյուրներ, որոնք կարելի է չափել: Կան անալոգային տվիչներ, որոնք չափում են ջերմաստիճանը, լույսի ինտենսիվությունը, հեռավորությունը, դիրքը և ուժը ՝ ընդամենը մի քանիսը նշելու համար:
Քայլ 2. Ինչպես աշխատել ADC- ում AVR- միկրոկառավարիչում
AVR ADC- ն թույլ է տալիս AVR միկրոկառավարիչին անալոգային լարումները փոխակերպել թվային արժեքների ՝ քիչ կամ առանց արտաքին մասերի: ATmega8- ը ունի 10-բիթանոց հաջորդական մոտավոր ADC: ATMega8- ը PortC- ում ունի 7 ալիքային ADC: ADC- ն ունի առանձին անալոգային մատակարարման լարման քորոց ՝ AVCC: AVCC- ն չպետք է տարբերվի ավելի քան ± 0.3 Վ -ից VCC- ից: Լարման մասին տեղեկությունը կարող է արտաքինից անջատվել AREF կապում: AVCC- ն օգտագործվում է որպես լարման հղում: ADC- ն կարող է նաև սահմանվել շարունակաբար աշխատելու համար (ազատ աշխատող ռեժիմ) կամ կատարել միայն մեկ փոխարկում:
Քայլ 3: ADC փոխակերպման բանաձև

Որտեղ Vin- ն ընտրված մուտքի քորոցի լարումն է, իսկ Vref- ը `ընտրված լարման հղումը
Քայլ 4. Ինչպե՞ս կարգավորել ADC- ն ATmega8- ում:

Հետևյալ գրանցամատյանները օգտագործվում են ATmega8- ում ADC- ի իրականացման համար
ADC Multiplexer- ի ընտրություն
Քայլ 5. ADLAR- ի ընտրություն


ADC Left Adjust Result ADLAR բիթը ազդում է ADC տվյալների գրանցամատյանում ADC փոխակերպման արդյունքի ներկայացման վրա: Մեկը գրեք ADLAR- ին ՝ արդյունքը ձախ կարգավորելու համար: Հակառակ դեպքում արդյունքը ճիշտ է ճշգրտվում
Երբ ADC- ի փոխարկումը ավարտված է, արդյունքը հայտնաբերվում է ADCH- ում և ADCL- ում: Հետևաբար, եթե արդյունքը մնա ճշգրտված և պահանջվի ոչ ավելի, քան 8 բիթ ճշգրտություն, բավական է կարդալ ADCH: Հակառակ դեպքում, նախ պետք է կարդալ ADCL, այնուհետև ADCH: Անալոգային ալիքի ընտրության բիթեր Այս բիթերի արժեքն ընտրում է, թե որ անալոգային մուտքերը միացված են ADC- ին:
Քայլ 6: ADCSRA ընտրություն


• Bit 7 - ADEN. ADC Միացնել Այս բիթը մեկին գրելը հնարավորություն է տալիս ADC- ին: Zeroրոյի հասցնելով ՝ ADC- ն անջատված է
• Բիթ 6 - ADSC. ADC Սկսել փոխարկումը Մեկ փոխարկման ռեժիմում, յուրաքանչյուր փոխարկումը սկսելու համար գրեք այս բիթը մեկին: Անվճար գործարկման ռեժիմում այս բիթը գրեք մեկին ՝ առաջին փոխարկումը սկսելու համար:
• Bit 5 - ADFR: ADC Free Running Select Երբ այս բիթը (մեկ) է դրված, ADC- ն գործում է Free Running ռեժիմում: Այս ռեժիմում ADC- ն անընդհատ նմուշառում և թարմացնում է Տվյալների գրանցամատյանները: Այս բիթը (զրո) մաքրելով կավարտվի Անվճար գործարկման ռեժիմը:
• Bit 4 - ADIF: ADC ընդհատման դրոշ Այս բիթը սահմանվում է, երբ ADC փոխակերպումն ավարտվում է և տվյալների գրանցամատյանները թարմացվում են: ADC փոխակերպման ամբողջական ընդհատումը կատարվում է, եթե SREG- ի ADIE բիթը և I բիթը դրված են: ADIF- ը մաքրվում է ապարատով `համապատասխան ընդհատումների բեռնաթափման վեկտորը կատարելիս: Այլապես, ADIF- ը մաքրվում է դրոշին տրամաբանական մուտքագրելով:
• Bit 3-ADIE. ADC Interrupt Enable Երբ այս բիթը գրվում է մեկի վրա և I-bit- ը SREG- ում սահմանվում է, ADC Conversion Complete Interrupt- ը ակտիվանում է:
• Բիթեր 2: 0 - ADPS2: 0: ADC Prescaler Select Bits Ըստ տվյալների թերթի, այս նախալարային սարքը պետք է սահմանվի այնպես, որ ADC մուտքագրման հաճախականությունը լինի 50 ԿՀց -ից մինչև 200 ԿՀց: ADC ժամացույցը բխում է համակարգի ժամացույցից ADPS2: 0 Այս բիթերը որոշում են XTAL հաճախականության և ADC- ի մուտքի ժամացույցի միջև բաժանման գործոնը:
Քայլ 7. Եթե ցանկանում եք վերցնել ADC- ի արժեքը, ձեզ պետք է որոշակի աշխատանք, որը կատարված է ստորև թվարկված
- Սահմանեք ADC արժեքը
- Կարգավորեք ելքային LED քորոցը
- Կարգավորեք ADC սարքավորումները
- Միացնել ADC- ը
- Սկսեք թվային փոխակերպումների անալոգը
- ԱՌԱ Հավերժ
ԵԹԵ ADC արժեքը ավելի բարձր է, ապա սահմանեք արժեքը, միացրեք LED ELSE- ը Անջատեք LED- ը
Քայլ 8: Սահմանեք ADC արժեքը
Կոդ ՝ uint8_t ADCValue = 128;
Քայլ 9. Կարգավորեք ելքային LED փին
Կոդ ՝ DDRB | = (1 << PB1);
Քայլ 10: Կարգավորեք ADC սարքաշարը
Կարգավորեք ADC սարքավորումները
Դա արվում է ADC- ի կառավարման ռեգիստրներում բիթեր սահմանելու միջոցով: Նախ, եկեք նախադրյալ սահմանենք ADC- ի համար: Տվյալների թերթիկի համաձայն, այս նախադրյալ սարքը պետք է սահմանվի այնպես, որ ADC մուտքային հաճախականությունը լինի 50 ԿՀց -ից մինչև 200 ԿՀց: ADC ժամացույցը բխում է համակարգի ժամացույցից: 1 ՄՀց համակարգի հաճախականությամբ, 8 -ի նախնական սակարկիչը կհանգեցնի 125 ԿՀց հաճախականության ADC հաճախականության: Նախնական չափագրումը սահմանվում է ADPS բիթերի կողմից ADCSRA գրանցամատյանում: Տվյալների թերթիկի համաձայն, բոլոր երեք ADPS2: 0 բիթերը պետք է սահմանվեն 011 -ի համար `8 նախնական սակարկիչը ստանալու համար:
Կոդ ՝ ADCSRA | = (0 << ADPS2) | (1 << ADPS1] | (1 << ADPS0];
Հաջորդը, եկեք սահմանենք ADC հղման լարումը: Սա վերահսկվում է ADMUX գրանցամատյանում REFS բիթերով: Հետևյալը սահմանում է հղման լարումը AVCC- ին:
Կոդ ՝ ADMUX | = (1 << REFS0);
Multiplexer- ով անցած ալիքը ADC- ին դնելու համար ADMUX գրանցամատյանում MUX բիթերը պետք է համապատասխանաբար սահմանվեն: Քանի որ մենք այստեղ օգտագործում ենք ADC5- ը
Կոդ ՝ ADMUX & = 0xF0; ADMUX | = 5;
ADC- ն ազատ գործարկման ռեժիմի մեջ դնելու համար ADCSRA գրանցամատյանում տեղադրեք համապատասխան անունով ADFR բիթը.
Կոդ ՝ ADCSRA | = (1 << ADFR);
Կարգավորումների վերջին փոփոխությունը կկատարվի `ADC արժեքը կարդալն ավելի պարզ դարձնելու համար: Թեև ADC- ն ունի 10 բիթ թույլատրություն, այսքան տեղեկատվություն հաճախ անհրաժեշտ չէ: Այս 10 բիթանոց արժեքը բաժանվում է երկու 8 բիթանոց գրանցիչների ՝ ADCH և ADCL: Լռելյայնորեն, ADC արժեքի ամենացածր 8 բիթը գտնվում է ADCL- ում, վերին երկուսը ADCH- ի ամենացածր երկու բիթերն են: ADLAR բիթը ADMUX գրանցամատյանում տեղադրելով ՝ մենք կարող ենք ձախ կողմում հավասարեցնել ADC արժեքը: Սա չափման ամենաբարձր 8 բիթն է դնում ADCH գրանցամատյանում, մնացածը `ADCL գրանցամատյանում: Եթե մենք այնուհետև կարդանք ADCH գրանցամատյանը, մենք ստանում ենք 8 բիթանոց արժեք, որը ներկայացնում է մեր 0 -ից 5 վոլտ չափումը որպես 0 -ից 255 համար: Մենք հիմնականում 10 -բիթանոց ADC չափումը վերածում ենք 8 բիթի: Ահա ADLAR բիթը սահմանելու կոդը.
Կոդ:
ADMUX | = (1 << ADLAR); Սա ավարտում է այս օրինակի համար ADC սարքավորումների կարգավորումը: Եվս երկու բիթ պետք է սահմանվի, մինչև ADC- ն սկսի չափումներ կատարել:
Քայլ 11: Միացնել ADC- ն
ADC- ն միացնելու համար ADEN բիթը տեղադրեք ADCSRA- ում.
Կոդ ՝ ADCSRA | = (1 << ԱԴԵՆ »);
Քայլ 12: Սկսեք թվային փոխակերպումների անալոգը
ADC չափումները սկսելու համար ADCSRA- ի ADSC բիթը պետք է սահմանվի.
Կոդ ՝ ADCSRA | = (1 << ADSC);
Այս պահին ADC- ն կսկսի շարունակաբար նմուշառել ADC5- ում ներկայացված լարումը: Այս կետի կոդն այսպիսի տեսք կունենա.
Քայլ 13 ՝ ԱՌԱ Fore ընդմիշտ
Մնում է միայն ADC արժեքը ստուգել և LED- ները սահմանել բարձր / ցածր ցուցիչ ցուցադրելու համար: Քանի որ ADC- ի ընթերցումը ADCH- ում ունի առավելագույն արժեքը 255, թ -ի թեստային արժեք է ընտրվել `որոշելու լարման բարձր կամ ցածր լինելը: FOR loops- ում IF/ELSE- ի պարզ հայտարարությունը թույլ կտա մեզ միացնել ճիշտ LED- ը.
Կոդ
եթե (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Միացրեք LED- ը
}
ուրիշ
{
PORTB & = ~ (1 << PB0); // Անջատեք LED- ը
}
Քայլ 14: Վերջում ամբողջական ծածկագիրն է
Կոդ:
#ներառում
int հիմնական (անվավեր)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // Որպես ելք սահմանեք LED1- ը
ADCSRA | = (0 << ADPS2) | (1 << ADPS1] | (1 << ADPS0]; // ADC prescalar- ը սահմանել 8 - // 125KHz նմուշի արագություն 1 ՄՀց
ADMUX | = (1 << REFS0); // ADC- ի հղումը սահմանեք AVCC- ի վրա
ADMUX | = (1 << ADLAR); // Ձախ կարգավորեք ADC արդյունքը ՝ 8 բիթանոց հեշտ ընթերցում թույլ տալու համար
ADMUX & = 0xF0;
ADMUX | = 5; // MUX արժեքները պետք է փոխվեն ADC0- ի օգտագործման համար
ADCSRA | = (1 << ADFR); // ADC- ն սահմանել Անվճար գործարկման ռեժիմի
ADCSRA | = (1 << ԱԴԵՆ »); // Միացնել ADC- ն
ADCSRA | = (1 << ADSC); // Սկսել A2D փոխակերպումները մինչ (1) // Loop Forever
{
եթե (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Միացնել LED1- ը
}
ուրիշ
{
ԼՈORՍ & = ~ (1 << PB1); // Անջատեք LED1- ը
}
}
վերադարձ 0;
}
Նախ հրապարակեք այս ձեռնարկը Սեղմեք այստեղ
Խորհուրդ ենք տալիս:
Covid անվտանգության սաղավարտ Մաս 1. Ներածություն Tinkercad սխեմաներին: 20 քայլ (նկարներով)

Covid Safety սաղավարտ Մաս 1. Ներածություն Tinkercad սխեմաներին. Սովորելու լավագույն միջոցներից մեկը դա անելն է: Այսպիսով, մենք նախ նախագծելու ենք մեր սեփական նախագիծը ՝
Visuino Ինչպես օգտագործել կոճակը որպես ներածություն LED- ի նման իրերը կառավարելու համար. 6 քայլ

Visuino Ինչպես օգտագործել կոճակը որպես մուտքի միջոց ՝ LED- ի նման իրերը վերահսկելու համար: Այս ձեռնարկում մենք կսովորենք, թե ինչպես միացնել և անջատել LED- ն ՝ օգտագործելով պարզ կոճակ և Visuino: Դիտեք ցուցադրական տեսանյութ
Ներածություն - DIY Gimbal Mount Gopro Session- ի համար և այլն: 5 քայլ (նկարներով)

Ներածություն - DIY Gimbal Mount Gopro Session- ի համար և այլն. Ես չափազանց շատ ժամանակ եմ ծախսել ՝ գտնելով լուծում, որը կաշխատի բջջային հեռախոսի ցանկացած գիմբալի հետ ՝ GoPro նիստը ամրացնելու միջոց: Վերջապես որոշեցի ինքս պատրաստել: Նույն լեռը կգործի նաև այլ GoPro տեսախցիկների դեպքում `պարզապես ամրացրեք ռետինե ժապավեններով: Ես
Ներածություն Particle Photon- ի և IoT- ի համար. 4 քայլ

Ներածություն Particle Photon- ի և IoT- ի համար. Մասնիկների ֆոտոնը վերջին և, իմ կարծիքով, ամենաթեժ զարգացման տախտակներից մեկն է: Այն ունի WiFi ինտեգրումներ և RESTful API, որը թույլ է տալիս հեշտությամբ շփվել տախտակի հետ, և նույնիսկ կարող եք այն կապել IFTTT- ի հետ
Android- ի համար CamScanner- ի ներածություն. 11 քայլ

Ներածություն CamScanner- ի համար Android- ի համար: Ներածություն CamScanner- ի համար Android- ի համար