Cov txheej txheem:

Taw qhia rau ADC hauv AVR Microcontroller - rau Pib: 14 Kauj Ruam
Taw qhia rau ADC hauv AVR Microcontroller - rau Pib: 14 Kauj Ruam

Video: Taw qhia rau ADC hauv AVR Microcontroller - rau Pib: 14 Kauj Ruam

Video: Taw qhia rau ADC hauv AVR Microcontroller - rau Pib: 14 Kauj Ruam
Video: Dais thiab nab qa sib xeem tsheb kauj vab 2024, Kaum ib hlis
Anonim
Taw qhia rau ADC hauv AVR Microcontroller | rau Beginners
Taw qhia rau ADC hauv AVR Microcontroller | rau Beginners

Hauv thid nyeem koj yuav paub txhua yam ADC hauv avr microcontroller

Kauj Ruam 1: ADC yog dab tsi?

ADC, lossis Analog rau Digital Converter, tso cai rau ib tus los hloov qhov ntsuas hluav taws xob sib piv rau tus nqi digital uas tuaj yeem siv los ntawm lub microcontroller. Muaj ntau qhov chaw ntawm cov cim sib piv uas ib tus yuav nyiam ntsuas. Muaj cov ntsuas hluav taws xob sib piv uas ntsuas qhov ntsuas kub, lub teeb pom kev zoo, nrug deb, txoj haujlwm, thiab lub zog, tsuas yog rau npe qee qhov.

Kauj Ruam 2: Yuav Ua Li Cas ADC hauv AVR- Microcontroller

AVR ADC tso cai rau AVR microcontroller hloov pauv qhov hluav taws xob sib piv rau cov txiaj ntsig digital nrog ob peb mus rau qhov tsis muaj sab nraud. ATmega8 nta 10-ntsis ua tiav kwv yees ADC. ATmega8 muaj 7 channel ADC ntawm PortC. ADC muaj qhov sib cais sib txawv ntawm cov khoom siv hluav taws xob tus pin, AVCC. AVCC yuav tsum tsis txawv ntau dua ± 0.3V los ntawm VCC.. Qhov ntsuas hluav taws xob tuaj yeem raug txiav tawm sab nraud ntawm tus pin AREF. AVCC tau siv los ua qhov ntsuas hluav taws xob. ADC kuj tseem tuaj yeem teeb tsa kom ua haujlwm tsis tu ncua (hom dawb-khiav) lossis tsuas yog ua ib qho kev hloov pauv.

Kauj Ruam 3: Cov Qauv Hloov Kho ADC

ADC Conversion Formula
ADC Conversion Formula

Qhov twg Vin yog qhov hluav taws xob ntawm tus pin xaiv nkag thiab Vref qhov xaiv qhov ntsuas siv

Kauj Ruam 4: Yuav Kho Li Cas ADC hauv ATmega8?

Yuav Kho Li Cas ADC hauv ATmega8?
Yuav Kho Li Cas ADC hauv ATmega8?

Cov npe hauv qab no yog siv rau kev siv ADC hauv ATmega8

Xaiv ADC Multiplexer

Kauj Ruam 5: Xaiv ADLAR

Xaiv ADLAR
Xaiv ADLAR
Xaiv ADLAR
Xaiv ADLAR

ADC Left Adjust Result Qhov ADLAR me ntsis cuam tshuam rau kev nthuav qhia ntawm ADC hloov pauv tshwm sim hauv ADC Cov Ntaub Ntawv Sau Npe. Sau ib qho rau ADLAR mus rau sab laug kho qhov tshwm sim. Txwv tsis pub, qhov tshwm sim raug kho

Thaum kev hloov pauv ADC tiav, qhov tshwm sim tau pom hauv ADCH thiab ADCL Thaum ADCL tau nyeem, ADC Cov Ntaub Ntawv Sau Npe tsis raug hloov kho kom txog thaum ADCH tau nyeem. Thiaj li, yog tias qhov txiaj ntsig tau hloov kho thiab tsis ntau dua 8-ntsis qhov xav tau, nws txaus los nyeem ADCH. Txwv tsis pub, ADCL yuav tsum tau nyeem ua ntej, tom qab ntawd ADCH. Analog Channel Xaiv Cov Khoom Tus nqi ntawm cov khoom no xaiv cov khoom siv analog twg txuas nrog rau ADC.

Kauj Ruam 6: Xaiv ADCSRA

Xaiv ADCSRA
Xaiv ADCSRA
Xaiv ADCSRA
Xaiv ADCSRA

• Ntsis 7 - ADEN: ADC Pab kom sau qhov me ntsis rau ib qho ua rau ADC. Los ntawm kev sau nws mus rau xoom, ADC raug kaw

• Me ntsis 6 - ADSC: ADC Pib Hloov Pauv Hauv Ib Hom Kev Hloov Pauv, sau qhov me ntsis mus rau ib qho kom pib txhua qhov hloov dua siab tshiab. Hauv Hom Kev Khiav Dawb, sau qhov no me ntsis rau ib qho kom pib hloov pauv thawj zaug.

• Ntsis 5 - ADFR: ADC Pub Dawb Xaiv Thaum qhov me ntsis tau teeb tsa (ib qho) ADC ua haujlwm nyob rau hauv Hom Dawb Ua Haujlwm. Hauv hom no, ADC kuaj thiab hloov kho Cov Ntaub Ntawv Sau Npe tsis tu ncua. Kev tshem tawm qhov no me ntsis (xoom) yuav Txiav Tawm Hom Dawb Ua Haujlwm.

• Ntsis 4 - ADIF: ADC cuam tshuam tus chij Qhov no tau teeb tsa thaum ADC hloov dua siab tshiab tiav thiab Cov Ntaub Ntawv Sau Npe raug hloov kho tshiab. ADC Kev Hloov Pauv Kev Ua Phem tiav yog ua tiav yog tias ADIE ntsis thiab I-ntsis hauv SREG tau teeb tsa. ADIF raug tshem tawm los ntawm kho vajtse thaum ua qhov cuam tshuam cuam tshuam txog Kev Ua Haujlwm Vector. Xwb, ADIF raug tshem tawm los ntawm kev sau ib zaj dab neeg mus rau tus chij.

• Ntsis 3-ADIE: ADC cuam tshuam pab tau Thaum qhov me ntsis no tau sau rau ib qho thiab I-ntsis hauv SREG tau teeb tsa, ADC Kev Hloov Pauv Hloov Pauv Qhib tau qhib.

• Cov khoom 2: 0 - ADPS2: 0: ADC Prescaler Xaiv Cov Khoom Raws li cov ntawv teev tseg, qhov prescalar no yuav tsum tau teeb tsa kom ADC cov tswv yim zaus nyob nruab nrab ntawm 50 KHz thiab 200 KHz. Lub moos ADC tau txais los ntawm lub moos system nrog kev pab los ntawm ADPS2: 0 Cov khoom no txiav txim siab faib faib ntawm XTAL zaus thiab lub sijhawm nkag mus rau ADC.

Kauj Ruam 7: Yog tias Koj Xav Tau Tus Nqi ADC Koj Yuav Tsum Xav Tau Ib Qho Haujlwm Ua Ntej Cov Npe Hauv qab no

  • Teeb ADC tus nqi
  • Kho cov zis LED tus pin
  • Kho kho vajtse ADC
  • Pab kom ADC
  • Pib Analog rau Digital Conversion
  • WHILE Mus Ib Txhis

YOG ADC Tus Nqi Siab dua tom qab teeb tus nqi, Qhib LED ELSE Tua Tawm LED

Kauj Ruam 8: Teeb ADC Tus Nqi

Code: uint8_t ADCValue = 128;

Kauj Ruam 9: Kho Tus Qauv LED Pin

Code: DDRB | = (1 << PB1);

Kauj ruam 10: Kho ADC Hardware

Kho kho vajtse ADC

Qhov no yog ua tiav los ntawm kev teeb tsa cov khoom me me hauv cov npe tswj hwm rau ADC. Ua ntej, cia teeb tsa prescalar rau ADC. Raws li cov ntawv teev tseg, qhov khoom noj uas xav tau no yuav tsum tau teeb tsa kom ADC cov tswv yim zaus nyob nruab nrab ntawm 50 KHz thiab 200 KHz. Lub moos ADC tau muab los ntawm lub moos system. Nrog lub kaw lus zaus ntawm 1MHz, prescaler ntawm 8 yuav ua rau muaj ADC zaus ntawm 125 Khz. Kev khaws cia tau teev tseg los ntawm ADPS cov khoom hauv ADCSRA sau npe. Raws li cov ntawv teev tseg, tag nrho peb qhov ADPS2: 0 khoom yuav tsum tau teeb tsa rau 011 kom tau txais 8 prescaler.

Code: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);

Tom ntej no, cia teeb ADC qhov ntsuas hluav taws xob. Qhov no yog tswj los ntawm REFS cov khoom hauv ADMUX sau npe. Cov hauv qab no teeb tsa qhov ntsuas hluav taws xob rau AVCC.

Code: ADMUX | = (1 << REFS0);

Txhawm rau teeb tsa cov channel dhau los ntawm tus lej sib npaug mus rau ADC, MUX cov khoom hauv ADMUX sau npe yuav tsum tau teeb tsa raws li. Txij li thaum peb tab tom siv ADC5 ntawm no

Code: ADMUX & = 0xF0; ADMUX | = 5;

Txhawm rau muab ADC rau hauv hom ua haujlwm dawb, teeb tsa lub npe zoo ADFR me ntsis hauv ADCSRA sau npe:

Code: ADCSRA | = (1 << ADFR);

Ib qho kev hloov pauv zaum kawg yuav ua kom nyeem ADC tus nqi yooj yim dua. Txawm hais tias ADC muaj kev daws teeb meem ntawm 10 cov khoom, cov ntaub ntawv ntau no feem ntau tsis tsim nyog. Tus nqi 10 ntsis no tau faib ua ob qhov 8 ntsis npe, ADCH thiab ADCL. Los ntawm lub neej ntawd, qis tshaj 8 khoom ntawm ADC tus nqi tau pom hauv ADCL, nrog ob sab saud yog ob qho qis tshaj ntawm ADCH. Los ntawm teeb tsa ADLAR me ntsis hauv ADMUX rau npe, peb tuaj yeem sab laug ua kom haum ADC tus nqi. Qhov no ua rau siab tshaj 8 khoom ntawm kev ntsuas hauv ADCH npe, nrog rau seem hauv ADCL rau npe. Yog tias peb nyeem ADCH sau npe, peb tau txais 8 tus nqi me me uas sawv cev rau peb 0 txog 5 volt ntsuas raws li tus lej los ntawm 0 txog 255. Peb pib hloov peb qhov ntsuas 10 ntsis ADC rau hauv 8 ntsis ib qho. Nov yog cov cai los teeb tsa ADLAR ntsis:

Txoj Cai:

ADMUX | = (1 << ADLAR); Qhov ntawd ua tiav kev teeb tsa ntawm ADC kho vajtse rau qhov piv txwv no. Ob qho ntxiv yuav tsum tau teeb tsa ua ntej ADC yuav pib ntsuas.

Kauj ruam 11: Pab kom ADC

Txhawm rau pab ADC, teeb tsa ADEN me ntsis hauv ADCSRA:

Code: ADCSRA | = (1 << ADEN);

Kauj Ruam 12: Pib Analog rau Digital Conversions

Txhawm rau pib ntsuas ADC, ADSC me ntsis hauv ADCSRA xav tau teeb tsa:

Code: ADCSRA | = (1 << ADSC);

Txij ntawm no mus, ADC yuav pib ntsuas qhov ntsuas txuas ntxiv ntawm ADC5. Cov cai rau qhov no yuav zoo li no:

Kauj Ruam 13: Thaum Twg Mus Ib Txhis

Tib qho uas yuav tsum ua yog ntsuas ADC tus nqi thiab teeb tsa LEDs los ua kom pom qhov siab / qis. Txij li thaum ADC nyeem ntawv hauv ADCH muaj tus nqi siab tshaj ntawm 255, qhov ntsuas tus nqi ntawm th tau raug xaiv los txiav txim siab seb qhov hluav taws xob tau siab lossis qis. Cov lus yooj yim IF/ELSE hauv FOR loops yuav tso cai rau peb tig qhov raug ntawm LED rau:

Code

yog (ADCH> ADCValue)

{

PORTB | = (1 << PB0); // Qhib LED

}

lwm tus

{

PORTB & = ~ (1 << PB0); // Tua LED

}

Kauj Ruam 14: Thaum Xaus Qhov Cai Ua tiav

Txoj Cai:

#suav nrog

int main (tsis muaj dab tsi)

{

uint8_t ADCValue = 128;

DDRB | = (1 << PB0); // Teeb LED1 raws li cov zis

ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // Teeb tsa ADC prescalar rau 8 - // 125KHz tus qauv tus nqi 1MHz

ADMUX | = (1 << REFS0); // Teeb ADC siv rau AVCC

ADMUX | = (1 << ADLAR); // Sab laug kho ADC qhov tshwm sim kom yooj yim nyeem 8 ntsis

ADMUX & = 0xF0;

ADMUX | = 5; // MUX qhov tseem ceeb xav tau hloov pauv los siv ADC0

ADCSRA | = (1 << ADFR); // Teeb ADC rau Hom Ua Haujlwm Dawb

ADCSRA | = (1 << ADEN); // Pab kom ADC

ADCSRA | = (1 << ADSC); // Pib A2D Hloov pauv thaum (1) // Loop Mus Ib Txhis

{

yog (ADCH> ADCValue)

{

PORTB | = (1 << PB0); // Qhib LED1

}

lwm tus

{

PORTE & = ~ (1 << PB1); // Tua tawm LED1

}

}

rov 0;

}

Thawj Tshaj Tawm qhov kev qhia Nyem rau ntawm no

Pom zoo: