Мазмұны:
- 1 -қадам: ADC дегеніміз не?
- 2-қадам: ADR AVR-микроконтроллерде қалай жұмыс істейді
- 3 -қадам: ADC түрлендіру формуласы
- 4 -қадам: ATmega8 -де ADC қалай теңшеледі?
- 5 -қадам: ADLAR таңдау
- 6 -қадам: ADCSRA таңдау
- 7 -қадам: Егер сіз ADC мәнін алғыңыз келсе, сізге төменде көрсетілген жұмыс қажет
- 8 -қадам: ADC мәнін орнатыңыз
- 9 -қадам: Жарық диодты түйреуішті конфигурациялаңыз
- 10 -қадам: ADC аппараттық құралын конфигурациялау
- 11 -қадам: ADC қосыңыз
- 12 -қадам: Аналогты цифрлық түрлендіруді бастаңыз
- 13 -қадам: мәңгілікке
- 14 -қадам: Соңында толық код бар
Бейне: AVR микроконтроллерінде ADC -ке кіріспе - Жаңадан бастаушыларға: 14 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл оқулықта сіз AVR микроконтроллеріндегі ADC барлығын білетін боласыз
1 -қадам: ADC дегеніміз не?
ADC немесе аналогты цифрлық түрлендіргіш аналогты кернеуді микроконтроллер пайдалана алатын цифрлық мәнге түрлендіруге мүмкіндік береді. Аналогты сигналдардың көптеген көздері бар, олар өлшеуді қалайды. Температураны, жарық қарқындылығын, қашықтықты, позицияны және күшті өлшейтін аналогты сенсорлар бар.
2-қадам: ADR AVR-микроконтроллерде қалай жұмыс істейді
AVR ADC AVR микроконтроллеріне аналогты кернеулерді сыртқы бөліктері аз немесе аз сандық мәндерге түрлендіруге мүмкіндік береді. ATmega8-де ADC-тың 10-биттік жуықтауы бар. ATmega8-де PortC-те 7 арналы ADC бар. ADC бөлек аналогтық кернеу түйрегіші бар, AVCC. AVCC VCC -тен ± 0,3 В -тан аспауы керек. Кернеу анықтамасы AREF түйреуішінде сырттай ажыратылуы мүмкін. AVCC кернеу анықтамасы ретінде қолданылады. ADC-ті үздіксіз жұмыс істеуге (еркін жұмыс режимі) немесе тек бір түрлендіруге орнатуға болады.
3 -қадам: ADC түрлендіру формуласы
Мұндағы Vin - таңдалған кіріс шнурындағы кернеу және таңдалған кернеудің сілтемесі Vref
4 -қадам: ATmega8 -де ADC қалай теңшеледі?
ATmega8 -де ADC енгізу үшін келесі тізілімдер қолданылады
ADC мультиплексорын таңдау
5 -қадам: ADLAR таңдау
ADC сол жақ реттеу нәтижесі ADLAR биті ADC деректер реестрінде ADC түрлендіру нәтижесінің көрсетілуіне әсер етеді. Нәтижені реттеу үшін ADLAR жазыңыз. Әйтпесе, нәтиже дұрыс реттеледі
ADC конверсиясы аяқталған кезде нәтиже ADCH және ADCL табылады ADCL оқылған кезде ADCH деректер тізілімі ADCH оқылмайынша жаңартылмайды. Демек, егер нәтиже түзетілсе және 8 биттік дәлдіктен артық талап етілмесе, ADCH оқу жеткілікті. Әйтпесе, алдымен ADCL оқу керек, содан кейін ADCH. Аналогты арналарды таңдау биттері Бұл биттердің мәні ADC -ге қандай аналогтық кірістер қосылғанын таңдайды.
6 -қадам: ADCSRA таңдау
• 7 -бит - ADEN: ADC қосу Бұл битті бірге жазу ADC қосады. Оны нөлге жазу арқылы ADC өшіріледі
• 6 -разряд - ADSC: ADC конверсияны Жалғыз түрлендіру режимінде бастау, әр конверсияны бастау үшін осы битті біреуіне жазыңыз. Еркін жүгіру режимінде бірінші конверсияны бастау үшін осы битті біреуіне жазыңыз.
• 5 -бит - ADFR: ADC Free Running таңдау Бұл бит (бір) орнатылған кезде ADC Free Running режимінде жұмыс істейді. Бұл режимде ADC деректер тізілімін үздіксіз іріктейді және жаңартады. Бұл бит (нөл) тазаланса, еркін жұмыс режимі тоқтатылады.
• 4 -разряд - ADIF: ADC үзу жалаушасы Бұл бит ADC түрлендіру аяқталғанда және деректер тізілімі жаңартылғанда орнатылады. ADC конверсиясының толық үзілуі, егер ADIE биті мен SREG-дегі I-бит орнатылса орындалады. Сәйкес Handling Vector өңдеу үзілісін орындау кезінде ADIF аппараттық құралдармен тазартылады. Немесе ADIF жалаушаға логикалық жазу арқылы тазартылады.
• 3-разряд-ADIE: ADC үзілісін қосу Бұл бит біреуіне жазылып, SREG-дегі I-бит орнатылған кезде, ADC түрлендірудің толық үзілуі қосылады.
• Биттер 2: 0 - ADPS2: 0: ADC Prescaler Биттерді таңдаңыз Деректер кестесіне сәйкес, бұл алдын ала есептеуді ADC кіріс жиілігі 50 КГц пен 200 КГц аралығында болатындай етіп орнату қажет. ADC сағаты ADPS2 көмегімен жүйелік сағаттан алынған: 0 Бұл биттер XTAL жиілігі мен ADC кіріс сағаты арасындағы бөлу коэффициентін анықтайды.
7 -қадам: Егер сіз ADC мәнін алғыңыз келсе, сізге төменде көрсетілген жұмыс қажет
- ADC мәнін орнатыңыз
- Шығу светодиодының түйреуішін конфигурациялаңыз
- ADC аппараттық құралын конфигурациялау
- ADC қосу
- Аналогты сандық түрлендіруді бастаңыз
- МӘҢГІЛІК
Егер ADC мәні орнатылған мәннен жоғары болса, басқа жарық диодты қосыңыз, басқа жарықдиодты өшіріңіз
8 -қадам: ADC мәнін орнатыңыз
Код: uint8_t ADCValue = 128;
9 -қадам: Жарық диодты түйреуішті конфигурациялаңыз
Код: DDRB | = (1 << PB1);
10 -қадам: ADC аппараттық құралын конфигурациялау
ADC аппараттық құралын конфигурациялау
Бұл ADC басқару регистрлерінде биттерді орнату арқылы жүзеге асады. Алдымен ADC үшін прескалярды орнатайық. Деректер кестесіне сәйкес, бұл алдын ала есептеуді ADC кіріс жиілігі 50 КГц пен 200 КГц аралығында болатындай етіп орнату қажет. ADC сағаты жүйелік сағаттан алынған. Жүйелік жиілігі 1 МГц болғанда, 8 -дің алдын ала есептегіші 125 кГц АДК жиілігіне әкеледі. Алдын ала бағалау ADCSRA регистріндегі ADPS биттерімен орнатылады. Деректер кестесіне сәйкес, ADPS2: 0 үш битінің барлығы 8 алдын ала есептегішті алу үшін 011 мәніне орнатылуы керек.
Код: ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0);
Әрі қарай, ADC эталондық кернеуін орнатайық. Бұл ADMUX регистріндегі REFS биттерімен басқарылады. Төменде AVCC эталондық кернеуі орнатылады.
Код: ADMUX | = (1 << REFS0);
ADP -ге мультиплексор арқылы өтетін арнаны орнату үшін ADMUX регистріндегі MUX биттерін сәйкесінше орнату қажет. Біз мұнда ADC5 қолданамыз
Код: ADMUX & = 0xF0; ADMUX | = 5;
ADC-ті еркін жұмыс режиміне қою үшін ADCSRA реестрінде дұрыс аталатын ADFR битін орнатыңыз:
Код: ADCSRA | = (1 << ADFR);
ADC мәнін оқуды жеңілдету үшін соңғы бір параметр өзгерісі енгізіледі. ADC рұқсаты 10 бит болса да, бұл көп ақпарат қажет емес. Бұл 10 биттік мән 8 биттік екі регистрге бөлінеді, ADCH және ADCL. Әдепкі бойынша, ADCL мәнінің ең төменгі 8 биті ADCL -де табылған, ал жоғарғы екеуі ADCH ең төменгі екі биті. ADMUX регистрінде ADLAR битін орнату арқылы біз ADC мәнін солға туралауға болады. Бұл ADCH регистріне ең үлкен 8 битті, ал қалғаны ADCL регистріне енгізеді. Егер біз ADCH регистрін оқитын болсақ, біз 0 -ден 5 вольтке дейінгі 0 -ден 255 -ке дейінгі санды білдіретін 8 биттік мәнді аламыз. Міне ADLAR битін орнататын код:
Код:
ADMUX | = (1 << ADLAR); Бұл мысал үшін ADC аппараттық құралын орнатуды аяқтайды. ADC өлшеуді бастамас бұрын тағы екі бит орнату керек.
11 -қадам: ADC қосыңыз
ADC қосу үшін ADCSRA ішіндегі ADEN битін орнатыңыз:
Код: ADCSRA | = (1 << ADEN);
12 -қадам: Аналогты цифрлық түрлендіруді бастаңыз
ADC өлшеулерін бастау үшін ADCSRA ішіндегі ADSC битін орнату қажет:
Код: ADCSRA | = (1 << ADSC);
Бұл кезде ADC ADC5 ұсынылған кернеуді іріктеуді үздіксіз бастайды. Осы кездегі код келесідей болады:
13 -қадам: мәңгілікке
Жалғыз нәрсе - ADC мәнін тексеру және жарық диодтарын жоғары / төмен көрсеткішті көрсету үшін орнату. ADCH бойынша ADC көрсеткіші 255 максималды мәнге ие болғандықтан, кернеудің жоғары немесе төмен екенін анықтау үшін сынақ мәні таңдалды. FOR ілмектеріндегі қарапайым IF/ELSE мәлімдемесі бізге дұрыс жарықдиодты қосуға мүмкіндік береді:
Код
егер (ADCH> ADCValue)
{
PORTB | = (1 << PB0); // Жарық диодты қосыңыз
}
басқа
{
PORTB & = ~ (1 << PB0); // Жарық диодты өшіріңіз
}
14 -қадам: Соңында толық код бар
Код:
#қосу
int main (жарамсыз)
{
uint8_t ADCValue = 128;
DDRB | = (1 << PB0); // LED1 шығыс ретінде орнатыңыз
ADCSRA | = (0 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // ADC prescalar мәнін 8 - // 125 кГц үлгі жиілігі 1 МГц етіп орнатыңыз
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)
{
ПОРТБ | = (1 << PB0); // LED1 қосыңыз
}
басқа
{
PORTE & = ~ (1 << PB1); // LED1 өшіріңіз
}
}
қайтару 0;
}
Алдымен осы оқулықты жариялаңыз Мұнда басыңыз
Ұсынылған:
Ковидтік қауіпсіздік дулыға 1 -бөлім: Tinkercad схемаларына кіріспе: 20 қадам (суреттермен)
Covid Safety дулыға 1 -бөлім: Tinkercad схемаларына кіріспе !: Сәлеметсіз бе, дос! Бұл екі бөлімнен біз Tinkercad схемаларын қалай қолдануға болатынын білеміз - бұл схемалардың қалай жұмыс істейтінін білуге арналған көңілді, қуатты және білім беру құралы! Оқудың ең жақсы әдістерінің бірі - бұл жасау. Сонымен, біз алдымен өзіміздің жеке жобамызды жасаймыз: th
IR схемаларына кіріспе: 8 қадам (суреттермен)
IR схемаларына кіріспе: IR - бұл күрделі технология, бірақ онымен жұмыс істеу өте қарапайым. Жарықдиодты немесе лазерден айырмашылығы, инфрақызыл сәулені адам көзімен көру мүмкін емес. Бұл нұсқаулықта мен инфрақызыл сәулені 3 түрлі схемада қолдануды көрсетемін
Кез келген жобаға WiFi бақылауын қалай қосуға болады -- ESP32 бастаушыларға арналған нұсқаулық: 5 қадам
WiFi бақылауын кез келген жобаға қалай қосуға болады || ESP32 бастаушыларға арналған нұсқаулық: Бұл жобада мен кез келген электроника жобасына WiFi бақылауын қосу үшін Arduino IDE көмегімен ESP32 қолданудың қаншалықты оңай/қиын екенін көрсетемін. Жол бойында мен сізге қарапайым WiFi серверін құру үшін ESP32 қалай пайдалану керектігін көрсетемін
DHT11/ DHT22 сенсорларын W/ Arduino қолдану бойынша бастаушыларға арналған нұсқаулық: 9 қадам
DHT11/ DHT22 сенсорларын W/ Arduino пайдалану бойынша бастаушыларға арналған нұсқаулық: Сіз осы және басқа таңғажайып оқулықтарды ElectroPeak ресми сайтынан оқи аласыз Шолу Бұл оқулықта сіз DHT11 мен DHT22 сенсорларын орнатуды, қоршаған ортаның температурасы мен ылғалдылығын өлшеуді үйренесіз. Оқыңыз: DHT11 және DHT22
Дәнекерлеуді бастаушыларға арналған нұсқаулық: 4 қадам
Дәнекерлеуді бастаушыларға арналған нұсқаулық: Бүгін мен жаңадан бастаушыларға дәнекерлеуге арналған нұсқаулық туралы айтқым келді. Дәнекерлеу - электрониканы жөндеуге немесе шектеулі ресурстармен дербес ПХД жасағысы келетіндер үшін өте маңызды түсінік