Агуулгын хүснэгт:
- Алхам 1: ADC гэж юу вэ?
- Алхам 2: AVR дээр ADC хэрхэн ажилладаг вэ- Микроконтроллер
- Алхам 3: ADC хөрвүүлэх томъёо
- Алхам 4: ATmega8 дээр ADC -ийг хэрхэн тохируулах вэ?
- Алхам 5: ADLAR сонголт
- Алхам 6: ADCSRA сонголт
- Алхам 7: Хэрэв та ADC -ийн үнэ цэнийг авахыг хүсч байвал доор жагсаасан зарим ажлыг хийх шаардлагатай болно
- Алхам 8: ADC утгыг тохируулна уу
- Алхам 9: Гаралтын LED зүүг тохируулна уу
- Алхам 10: ADC тоног төхөөрөмжийг тохируулах
- Алхам 11: ADC -ийг идэвхжүүлнэ үү
- Алхам 12: Аналогоос тоон хөрвүүлэлтийг эхлүүлэх
- Алхам 13: Үүрд мөнхөд
- Алхам 14: Эцэст нь код бүрэн байна
Видео: AVR микроконтроллер дахь ADC -ийн танилцуулга - Эхлэгчдэд зориулсан: 14 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Энэ гарын авлагад та AVR микроконтроллер дахь ADC -ийн бүх зүйлийг мэдэх болно
Алхам 1: ADC гэж юу вэ?
ADC буюу Аналогоос Дижитал Хөрвүүлэгч нь аналог хүчдэлийг микроконтроллер ашиглаж болох тоон утга болгон хөрвүүлэх боломжийг олгодог. Хэмжих дуртай аналог дохионы олон эх сурвалж байдаг. Температур, гэрлийн эрч хүч, зай, байрлал, хүчийг хэмждэг аналог мэдрэгчүүд байдаг.
Алхам 2: AVR дээр ADC хэрхэн ажилладаг вэ- Микроконтроллер
AVR ADC нь AVR микроконтроллерт аналог хүчдэлийг гадаад хэсгүүдээс цөөхөн, тоон утга руу хөрвүүлэх боломжийг олгодог. ATmega8 нь 10 битийн дараалсан ойролцоо ADC онцлогтой. ATmega8 нь PortC дээр 7 сувгийн ADC-тэй. ADC нь тусдаа тэжээлийн хүчдэлийн зүү AVCC -тэй. AVCC нь VCC -ээс ± 0.3 В -оос ихгүй байх ёстой. Хүчдэлийн лавлагаа нь AREF зүү дээр гаднаас салгагдсан байж болно. AVCC нь хүчдэлийн лавлагаа болгон ашигладаг. ADC-ийг тасралтгүй ажиллуулах (чөлөөт горим) эсвэл ганцхан хөрвүүлэлт хийхээр тохируулж болно.
Алхам 3: ADC хөрвүүлэх томъёо
Вин бол сонгосон оролтын зүү дээрх хүчдэл ба Vref сонгосон хүчдэлийн лавлагаа юм
Алхам 4: ATmega8 дээр ADC -ийг хэрхэн тохируулах вэ?
ATmega8 дээр ADC -ийг хэрэгжүүлэхийн тулд дараах бүртгэлүүдийг ашигладаг
ADC Multiplexer сонголт
Алхам 5: ADLAR сонголт
ADC зүүн тохируулгын үр дүн ADLAR бит нь ADC өгөгдлийн бүртгэлд ADC хөрвүүлэх үр дүнг танилцуулахад нөлөөлдөг. Үр дүнг тохируулахын тулд ADLAR руу нэгийг бичнэ үү. Үгүй бол үр дүнг зөв тохируулна
ADC хөрвүүлэлт дууссаны дараа үр дүнг ADCH болон ADCL -ээс олно ADCL -ийг уншихад ADCH -ийн өгөгдлийн бүртгэл ADCH -ийг унших хүртэл шинэчлэгддэггүй. Тиймээс хэрэв үр дүнг тохируулаад 8 битээс илүү нарийвчлалтай байх шаардлагагүй бол ADCH-ийг уншихад хангалттай. Үгүй бол эхлээд ADCL уншиж, дараа нь ADCH унших ёстой. Аналог суваг сонгох битүүд Эдгээр битүүдийн утга нь ADC -тэй ямар аналог оролтыг холбохыг сонгоно.
Алхам 6: ADCSRA сонголт
• Bit 7 - ADEN: ADC идэвхжүүлэх Энэ битийг нэг рүү бичих нь ADC -ийг идэвхжүүлдэг. Үүнийг тэг болгосноор ADC -ийг унтраадаг
• Бит 6 - ADSC: ADC хөрвүүлэлтийг дан хөрвүүлэх горимд эхлүүлэхдээ хөрвүүлэлт бүрийг эхлүүлэхийн тулд энэ битийг нэг рүү бичнэ үү. Чөлөөт гүйлтийн горимд энэ хөрвүүлэлтийг нэг рүү бичээд анхны хөрвүүлэлтийг эхлүүлнэ үү.
• Бит 5 - ADFR: ADC Чөлөөт гүйлтийг сонгох Энэ битийг (нэг) тохируулах үед ADC Чөлөөт гүйлтийн горимд ажилладаг. Энэ горимд ADC нь өгөгдлийн бүртгэлийг байнга дээжлэн шинэчилж байдаг. Энэ битийг (тэг) арилгаснаар Чөлөөт гүйлтийн горимыг зогсооно.
• Bit 4 - ADIF: ADC Interrupt Flag Энэ битийг ADC хувиргах ажил дуусч, өгөгдлийн бүртгэл шинэчлэгдэх үед тохируулна. ADRE хөрвүүлэлтийн бүрэн тасалдал нь ADIE бит болон SREG дахь I-битийг тохируулсан тохиолдолд хийгддэг. Холбогдох тасалдлын харьцах векторыг гүйцэтгэх үед ADIF нь техник хангамжаар цэвэрлэгддэг. Эсвэл ADIF -ийг туг дээр логикоор бичиж цэвэрлэнэ.
• Bit 3-ADIE: ADC Interrupt Enable Энэ битийг нэг рүү бичээд SREG дахь I-битийг тохируулах үед ADC Conversion Complete Interrupt идэвхжинэ.
• Bits 2: 0 - ADPS2: 0: ADC Prescaler Битүүдийг сонгоно уу Мэдээллийн хүснэгтийн дагуу ADC оролтын давтамж нь 50 КГц -ээс 200 КГц хооронд байхаар тохируулсан байх ёстой. ADC цагийг ADPS2: 0 системийн тусламжтайгаар системийн цагнаас гаргаж авсан болно. Эдгээр битүүд нь XTAL давтамж ба ADC -ийн оролтын цагийн хоорондох хуваах хүчин зүйлийг тодорхойлдог.
Алхам 7: Хэрэв та ADC -ийн үнэ цэнийг авахыг хүсч байвал доор жагсаасан зарим ажлыг хийх шаардлагатай болно
- ADC утгыг тохируулна уу
- LED гаралтын гаралтыг тохируулах
- ADC тоног төхөөрөмжийг тохируулах
- ADC -ийг идэвхжүүлэх
- Аналогийг тоон хөрвүүлэлтийг эхлүүлэх
- Үүрд мөнхөд
Хэрэв ADC -ийн утга илүү өндөр байвал Set LED -ийг өөр LED -ийг асаана уу
Алхам 8: ADC утгыг тохируулна уу
Код: uint8_t ADCValue = 128;
Алхам 9: Гаралтын LED зүүг тохируулна уу
Код: DDRB | = (1 << PB1);
Алхам 10: ADC тоног төхөөрөмжийг тохируулах
ADC тоног төхөөрөмжийг тохируулах
Энэ нь ADC -ийн хяналтын бүртгэлд битүүдийг тохируулах замаар хийгддэг. Нэгдүгээрт, ADC -ийн prescalar -ийг тохируулъя. Мэдээллийн хүснэгтийн дагуу ADC оролтын давтамж нь 50 КГц -ээс 200 КГц хооронд байхаар энэхүү урьдчилсан тооцоог тохируулах шаардлагатай байна. ADC цаг нь системийн цагнаас гаралтай. Системийн давтамж 1МГц бол 8 хэмжигч нь 125 кГц -ийн ADC давтамжтай болно. Урьдчилан тооцоолох хугацааг ADCSRA регистрийн ADPS битүүдээр тохируулдаг. Өгөгдлийн хүснэгтийн дагуу ADPS2: 0 -ийн бүх гурван битийг 011 болгож тохируулсан байх ёстой.
Код: 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 битийн утга нь ADCH ба ADCL гэсэн 8 битийн хоёр регистрт хуваагдана. Анхдагч байдлаар, ADC -ийн хамгийн бага 8 битийг ADCL -ээс олдог бөгөөд дээд хоёр нь ADCH -ийн хамгийн доод хоёр бит юм. ADMUX регистрт ADLAR битийг тохируулснаар бид ADC утгыг зүүн тийш зэрэгцүүлж болно. Энэ нь хэмжилтийн хамгийн өндөр 8 битийг ADCH бүртгэлд, үлдсэнийг нь ADCL бүртгэлд оруулна. Хэрэв бид ADCH регистрийг уншвал бид 0 -ээс 5 вольтын хэмжилтийг 0 -ээс 255 хүртэлх тоогоор илэрхийлдэг 8 битийн утгыг авах болно. Бид үндсэндээ 10 битийн ADC хэмжилтийг 8 бит болгон хувиргадаг. ADLAR битийг тохируулах код энд байна:
Код:
ADMUX | = (1 << ADLAR); Энэ жишээнд зориулсан ADC тоног төхөөрөмжийн тохиргоог хийж дуусгасан болно. ADC хэмжилт хийж эхлэхээс өмнө өөр хоёр битийг тохируулах шаардлагатай.
Алхам 11: ADC -ийг идэвхжүүлнэ үү
ADC -ийг идэвхжүүлэхийн тулд ADEN битийг ADCSRA дээр тохируулна уу.
Код: ADCSRA | = (1 << ADEN);
Алхам 12: Аналогоос тоон хөрвүүлэлтийг эхлүүлэх
ADC хэмжилтийг эхлүүлэхийн тулд ADCSRA дахь ADSC битийг тохируулах шаардлагатай.
Код: ADCSRA | = (1 << ADSC);
Энэ үед ADC нь ADC5 дээр үзүүлсэн хүчдэлийн дээжийг тасралтгүй авч эхэлнэ. Энэ хүртэлх код дараах байдлаар харагдах болно.
Алхам 13: Үүрд мөнхөд
Үлдэх цорын ганц зүйл бол ADC -ийн утгыг туршиж үзээд LED -ийг өндөр / бага үзүүлэлтийг харуулахаар тохируулах явдал юм. ADCH дахь ADC уншилт нь хамгийн ихдээ 255 утгатай тул хүчдэлийн өндөр эсвэл бага эсэхийг тодорхойлохын тулд th -ийн туршилтын утгыг сонгосон. FOR гогцоонд байгаа IF/ELSE -ийн энгийн мэдэгдэл нь зөв LED -ийг асаах боломжийг бидэнд олгоно.
Код
хэрэв (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // LED асаах
}
өөр
{
PORTB & = ~ (1 << PB0); // LED унтраах
}
Алхам 14: Эцэст нь код бүрэн байна
Код:
#оруулах
int main (хүчингүй)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // LED1 -ийг гаралт болгон тохируулна уу
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // ADC prescalar -ийг 8 - // 125KHz түүврийн хурд 1MHz болгон тохируулна уу
ADMUX | = (1 << REFS0); // ADC лавлагааг AVCC болгож тохируулна уу
ADMUX | = (1 << ADLAR); // Зүүн талын ADC -ийн үр дүнг 8 битийн хялбар унших боломжтой болгохын тулд тохируулна уу
ADMUX & = 0xF0;
ADMUX | = 5; // ADC0 ашиглахын тулд MUX утгыг өөрчлөх шаардлагатай байв
ADCSRA | = (1 << ADFR); // ADC-ийг Чөлөөт гүйлтийн горимд тохируулна уу
ADCSRA | = (1 << ADEN); // ADC -ийг идэвхжүүлэх
ADCSRA | = (1 << ADSC); // A2D хөрвүүлэлтийг (1) байхад эхлүүлээрэй // Loop Forever
{
хэрэв (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // LED1 -ийг асаана уу
}
өөр
{
PORTE & = ~ (1 << PB1); // LED1 -ийг унтраа
}
}
буцаах 0;
}
Эхлээд энэ гарын авлагыг нийтлэх Энд дарна уу
Зөвлөмж болгож буй:
Ардуино ISP байдлаар -- AVR дээр Hex файлыг шарах -- AVR дахь гал хамгаалагч -- Ардуино програмистын хувьд: 10 алхам
Ардуино ISP байдлаар || AVR дээр Hex файлыг шарах || AVR дахь гал хамгаалагч || Ардуино програмистын хувьд: ……………… Миний YouTube сувгийг SUBSCRIBE дарж илүү олон видео үзээрэй …….. Энэ нийтлэл Энэ бол isp шиг arduino -ийн тухай юм. Хэрэв та Hex файлыг байршуулахыг хүсч байгаа эсвэл гал хамгаалагчаа AVR дээр тохируулахыг хүсч байвал програмист худалдаж авах шаардлагагүй болно
COVID-19-д зориулсан 20 дахь хоёр дахь гар угаах таймер: 6 алхам (зурагтай)
COVID-19-д зориулсан хоёр дахь гар угаах таймер: Дэлхий даяар COVID-19 тархах тусам бид нүүрээ бага багаар цуглуулж, гараа илүү олон удаа угааж өөрийгөө хамгаалах ёстой. гараа зөв угааж болохгүй. Гараа хэрхэн зөв угаах вэ? W
Things Network IoT LoRaWAN сүлжээний платформ дахь танилцуулга ба данс үүсгэх: 6 алхам
Things Network платформ дахь танилцуулга ба данс үүсгэх IoT LoRaWAN: Энэ боломжийг ашиглан бид Things Network платформ дээр данс үүсгэж, товч танилцуулга хийх болно. IoT ". Things Network нь LoR -ийг хэрэгжүүлсэн
Танилцуулга - Gopro Session -д зориулсан DIY Gimbal Mount, гэх мэт.: 5 алхам (зурагтай)
Танилцуулга - Gopro Session, гэх мэт DIY Gimbal Mount: Би GoPro сессийг холбох гар утас болох gimbal -тэй ажиллах шийдлийг хайж олоход маш их цаг зарцуулсан. Эцэст нь би өөрөө хийхээр шийдсэн. Үүнтэй ижил бэхэлгээ нь бусад GoPro камеруудад бас ажиллах болно - зөвхөн резинэн туузаар бэхлээрэй. Би
C-код дахь микроконтроллер даавууны ая үүсгэгч: 8 алхам (зурагтай)
Микроконтроллер даавууны ая үүсгэгч C-код: Өнгөрсөн оны 10-р сарын сүүлээр carmitsu-ийн зааварчилгаа өгсөн хэрэглэгчид миний үдийн хоолны хайрцагны синтезийг хараад надад зурвас илгээсэн. Түүний захиасаас: Би бага сургуульд хөгжим заадаг. Бид дуу хураагуур хөгжим их тоглодог. өөрөөр хэлбэл хүүхдүүд жаахан лимбэ тоглодог …… надад тасархай бий