Мазмұны:

Arduino AREF түйреуі: 6 қадам
Arduino AREF түйреуі: 6 қадам

Бейне: Arduino AREF түйреуі: 6 қадам

Бейне: Arduino AREF түйреуі: 6 қадам
Бейне: AREF - Как подключить опорное напряжение к Arduino 2024, Қараша
Anonim
Arduino AREF түйреуіші
Arduino AREF түйреуіші

Бұл оқулықта біз Arduino немесе үйлесімді тақтадағы аналогтық кіріс түйреуіштерді AREF түйреуішімен бірге үлкен дәлдікпен кіші кернеулерді қалай өлшеуге болатынын қарастырамыз. Алдымен біз сізді жылдамдату үшін кейбір түзетулер жасаймыз. AREF -пен бірінші рет жұмыс жасамас бұрын бұл жазбаны толығымен оқып шығыңыз.

1 -қадам: қайта қарау

Қайта қарау!
Қайта қарау!

Есіңізде болар, сенсорлардан электр тогының кернеуін өлшеу үшін Arduino analogRead () функциясын қолдана аласыз және аналогтық кіріс түйреуішінің біреуін қолдана аласыз. AnalogRead () -тен қайтарылған мән нөлден 1023 -ке дейін болады, нөлдік нөлдік вольтты білдіреді және 1023 қолданыстағы Arduino тақтасының жұмыс кернеуін білдіреді.

Біз жұмыс кернеуі деп айтатын болсақ - бұл электрмен жабдықтау схемасынан кейін Arduino қол жетімді кернеу. Мысалы, егер сізде әдеттегі Arduino Uno тақтасы болса және оны USB розеткасынан іске қоссаңыз - компьютерде немесе концентратордағы USB розеткасынан тақтада 5В бар екеніне сенімді болыңыз, бірақ кернеу шамалы төмендейді. Микроконтроллерге қосылу - немесе USB көзі нөлге ұшырамайды.

Мұны Arduino Uno -ны USB -ге жалғау және 5В және GND түйреуіштеріндегі кернеуді өлшеуге арналған мультиметрді орнату арқылы оңай көрсетуге болады. Кейбір тақталар 4,8 В дейін төмендейді, кейбіреулері жоғары, бірақ 5 В төмен. Егер сіз дәлдікке қол жеткізсеңіз, тақтаны тұрақты ток розеткасы немесе Vin штыры арқылы сыртқы қуат көзінен қуаттаңыз, мысалы 9В тұрақты ток. Содан кейін қуат реттегіш схемасынан өткеннен кейін сізде жақсы 5В болады, мысалы, сурет.

Бұл өте маңызды, себебі кез келген analogRead () мәндерінің дәлдігіне шынайы 5 В болмауы әсер етеді, егер сізде ешқандай мүмкіндік болмаса, кернеудің төмендеуін өтеу үшін эскизде кейбір математиканы қолдануға болады. Мысалы, егер сіздің кернеуіңіз 4,8 В болса - analogRead () диапазоны 0 ~ 1023 0 ~ 5 В емес, 0 ~ 4,8 В -қа қатысты болады. Бұл маңызды емес болып көрінуі мүмкін, бірақ егер сіз мәнді кернеу ретінде қайтаратын сенсорды қолдансаңыз (мысалы, TMP36 температура сенсоры) - есептелген мән қате болады. Сондықтан дәлдік үшін сыртқы қуат көзін қолданыңыз.

2 -қадам: AnalogRead () неге 0 мен 1023 арасындағы мәнді қайтарады?

Неліктен AnalogRead () 0 мен 1023 арасындағы мәнді қайтарады?
Неліктен AnalogRead () 0 мен 1023 арасындағы мәнді қайтарады?

Бұл ADC шешіміне байланысты. Ажыратымдылық (бұл мақала үшін) - бұл бір нәрсені сандық түрде көрсетуге болатын дәреже. Ажыратымдылық неғұрлым жоғары болса, бір нәрсені дәл көрсетуге болады. Біз ажыратымдылықты разрядтың саны бойынша өлшейміз.

Мысалы, 1-разрядты ажыратымдылық тек екіге (екеуінің күшіне) тең болады-нөл және бір. 2-разрядты ажыратымдылық төрт (екеуі екіге дейін) мәнге рұқсат береді-нөл, бір, екі және үш. Егер біз екі вольтты ажыратымдылықпен бес вольтты диапазонды өлшеуге тырыссақ және өлшенген кернеу төрт вольтты құраса, біздің ADC 3 сандық мәнді қайтарады-өйткені төрт вольт 3,75 пен 5В аралығында болады. Мұны сурет арқылы елестету оңайырақ.

Біздің 2-разрядтық рұқсаты бар біздің ADC мысалында ол кернеуді тек мүмкін болатын төрт мәнмен көрсете алады. Егер кіріс кернеуі 0 мен 1,25 аралығында болса, ADC сандық 0 қайтарады; егер кернеу 1,25 пен 2,5 аралығында түссе, ADC 1 сандық мәнін қайтарады. Біздің Arduino ADC диапазонының 0 ~ 1023 диапазонында-бізде 1024 мүмкін мәндер бар немесе 2-ге дейін 10. Сондықтан біздің Arduino-да 10 биттік рұқсаты бар ADC бар.

3 -қадам: Сонымен AREF деген не?

Ұзақ тарихты қысқарту үшін, сіздің Arduino аналогты оқуды қабылдағанда, ол аналогтық түйреуіште өлшенетін кернеуді эталондық кернеумен салыстырады. Қалыпты analogRead пайдалану кезінде тірек кернеуі - бұл тақтаның жұмыс кернеуі.

Uno, Mega, Duemilanove және Leonardo/Yún тақталары сияқты ең танымал Arduino тақталары үшін жұмыс кернеуі 5В. Егер сізде Arduino Due тақтасы болса, жұмыс кернеуі 3,3 В құрайды. Егер сізде басқа нәрсе болса - Arduino өнімінің бетін тексеріңіз немесе тақта жеткізушісінен сұраңыз.

Егер сізде 5В эталондық кернеу болса, analogRead () арқылы қайтарылған әрбір бірлік 0,00488 В -қа бағаланады (бұл 1024 -ті 5В -ке бөлу арқылы есептеледі). Егер 0 мен 2 немесе 0 мен 4.6 арасындағы кернеуді өлшегіміз келсе ше? ADC біздің кернеудің 100% диапазонын қалай біледі?

AREF түйреуішінің себебі осында жатыр. AREF аналогты сілтеме дегенді білдіреді. Бұл бізге Arduino -ны сыртқы қуат көзінен кернеу кернеуін беруге мүмкіндік береді. Мысалы, егер біз максималды диапазоны 3,3 В болатын кернеулерді өлшегіміз келсе, біз AREF түйреуішіне жақсы тегіс 3.3 В береміз - мүмкін IC кернеу реттегішінен.

Содан кейін ADC әр қадамы шамамен 3,22 милливольтты құрайды (1024 -ті 3,3 -ке бөліңіз). Назар аударыңыз, ең төменгі эталондық кернеу 1,1 В болады. AREF -тің екі түрі бар - ішкі және сыртқы, сондықтан оларды қарастырайық.

4 -қадам: Сыртқы AREF

Сыртқы AREF - бұл Arduino тақтасына сыртқы тірек кернеуін беретін жер. Бұл реттелетін қуат көзінен болуы мүмкін немесе егер сізге 3,3 В қажет болса, оны Arduino 3,3 В істікшесінен алуға болады. Егер сіз сыртқы қуат көзін пайдалансаңыз, GND -ті Arduino GND түйреуішіне қосқаныңызға сенімді болыңыз. Немесе сіз Arduno 3.3V көзін пайдалансаңыз - 3.3V істікшесінен AREF түйреуішіне секіргішті іске қосыңыз.

Сыртқы AREF -ті іске қосу үшін void setup () ішінде келесілерді пайдаланыңыз:

аналогтық сілтеме (Сыртқы); // сілтеме кернеуі үшін AREF пайдаланыңыз

Бұл сілтеме кернеуін AREF түйреуішіне қосқан кез келген нәрсеге қояды - бұл, әрине, кернеу 1,1 В пен тақтаның жұмыс кернеуі арасында болады. Өте маңызды ескерту - сыртқы кернеу сілтемесін пайдаланған кезде аналогты сілтемені Сыртқы күйіне орнату керек. analogRead () қолданбас бұрын. Бұл белсенді ішкі тірек кернеуі мен AREF түйреуішінің қысқа болуына жол бермейді, бұл тақтадағы микроконтроллерді зақымдауы мүмкін. Егер сіздің қосымшаңыз қажет болса, сіз AREF үшін тақтаның жұмыс кернеуіне (яғни қалыпты жағдайға) төмендегілермен оралуға болады.

analogReference (DEFAULT);

Енді жұмыста сыртқы AREF көрсету. 3.3В АРЭФ көмегімен келесі эскиз A0 кернеуін өлшейді және жалпы AREF пайызын және есептелген кернеуді көрсетеді:

#«LiquidCrystal.h» қосыңыз

LiquidCrystal lcd (8, 9, 4, 5, 6, 7);

int analoginput = 0; // біздің аналогтық түйреуіш

int analogamount = 0; // кіріс мәнін сақтайды float пайыз = 0; // біздің өзгермелі кернеудің пайыздық мәнін сақтау үшін пайдаланылады = 0; // кернеу мәнін сақтау үшін қолданылады

жарамсыз орнату ()

{lcd.begin (16, 2); аналогтық сілтеме (Сыртқы); // сілтеме кернеуі үшін AREF пайдаланыңыз}

бос цикл ()

{lcd.clear (); analogamount = analogRead (analoginput); пайыз = (аналогтық мән/1024,00)*100; кернеу = аналогтық шама*3.222; // милливольтпен lcd.setCursor (0, 0); lcd.print («% AREF:»); lcd.print (пайыз, 2); lcd.setCursor (0, 1); lcd.print («A0 (мВ):»); lcd.println (кернеу, 2); кешіктіру (250); }

Жоғарыдағы эскиздің нәтижелері бейнеде көрсетілген.

5 -қадам: Ішкі AREF

Біздің Arduino тақталарындағы микроконтроллерлер 1.1В ішкі сілтеме кернеуін де жасай алады және біз оны AREF жұмысы үшін қолдана аламыз. Желіні қолданыңыз:

аналогтық сілтеме (ІШКІ);

Arduino Mega тақталары үшін мыналарды пайдаланыңыз:

analogReference (INTERNAL1V1);

in void setup () және сіз өшірілдіңіз. Егер сізде Arduino Mega болса, 2.56В кернеу кернеуі де бар, ол қосылады:

analogReference (INTERNAL2V56);

Ақырында - AREF түйреуішінің нәтижелерін шешпес бұрын, көрсеткіштерді әрқашан белгілі жақсы мультиметрмен салыстырыңыз.

Қорытынды

AREF функциясы сізге аналогтық сигналдарды өлшеудің икемділігін береді.

Бұл хабарламаны pmdway.com сізге жеткізді - бұл өндірушілер мен электроникаға әуесқойлар үшін, бүкіл әлем бойынша ақысыз жеткізу.

Ұсынылған: