Mundarija:

Arduino AREF pin: 6 qadam
Arduino AREF pin: 6 qadam

Video: Arduino AREF pin: 6 qadam

Video: Arduino AREF pin: 6 qadam
Video: Arduino 3 пина на 6 светодиодов чарлиплексинг 2024, Noyabr
Anonim
Arduino AREF pin
Arduino AREF pin

Ushbu qo'llanmada biz Arduino yoki mos keladigan taxtadagi analog kirish pinlari yordamida AREF pin bilan birgalikda kichikroq kuchlanishni qanday aniqroq o'lchash mumkinligini ko'rib chiqamiz. Ammo, avvalo, biz sizni tezlashtirish uchun biroz tuzatishlar qilamiz. Iltimos, AREF bilan birinchi marta ishlashdan oldin, ushbu xabarni to'liq o'qing.

1 -qadam: Qayta ko'rib chiqish

Qayta ko'rib chiqish!
Qayta ko'rib chiqish!

Esingizda bo'lsin, siz Arduino analogRead () funktsiyasidan sensorlardagi elektr tokining kuchlanishini o'lchash uchun va shunga o'xshash analog kirish pimlaridan birini ishlatishingiz mumkin. AnalogRead () dan qaytarilgan qiymat noldan 1023 gacha, nol esa nol voltsni va 1023 ishlatilayotgan Arduino platasining ish kuchlanishini bildiradi.

Va biz ish kuchlanishini aytganda - bu Arduino uchun quvvat manbai sxemasidan keyin mavjud bo'lgan kuchlanish. Masalan, agar sizda odatiy Arduino Uno kartasi bo'lsa va uni USB rozetkasidan ishlatsangiz - kompyuterda yoki uyadagi USB rozetkasida taxtada 5V mavjud - lekin oqim shamol esganda kuchlanish biroz pasayadi. mikrokontrolderga ulang - yoki USB manbai shunchaki ishlamayapti.

Buni Arduino Uno -ni USB -ga ulash va 5V va GND pimlarida kuchlanishni o'lchash uchun multimetrni o'rnatish orqali osongina ko'rsatish mumkin. Ba'zi platalar 4,8 V gacha, ba'zilari esa 5 V dan past bo'ladi. Agar siz aniqlik uchun o'q otayotgan bo'lsangiz, taxtangizni tashqi rozetkadan DC rozetkasi yoki 9 pinli DC pin orqali quvvatlantiring. Keyin, quvvat regulyatori sxemasidan o'tib, sizda yaxshi 5V bo'ladi, masalan tasvir.

Bu juda muhim, chunki analogRead () qiymatlarining to'g'riligiga haqiqiy 5 V bo'lmasligi ta'sir qiladi. Agar sizda boshqa variant bo'lmasa, siz kuchlanishning pasayishini qoplash uchun eskizda ba'zi matematikadan foydalanishingiz mumkin. Misol uchun, agar sizning kuchlanishingiz 4,8 V bo'lsa - analogRead () diapazoni 0 ~ 1023 0 ~ 5V emas, balki 0 ~ 4,8 V ga to'g'ri keladi. Bu ahamiyatsiz tuyulishi mumkin, lekin agar siz qiymatni kuchlanish sifatida qaytaradigan sensordan foydalansangiz (masalan, TMP36 harorat sensori) - hisoblangan qiymat noto'g'ri bo'ladi. Shuning uchun aniqlik uchun tashqi quvvat manbasidan foydalaning.

2 -qadam: Nega AnalogRead () 0 dan 1023 gacha qiymatni qaytaradi?

Nima uchun AnalogRead () 0 dan 1023 gacha qiymatni qaytaradi?
Nima uchun AnalogRead () 0 dan 1023 gacha qiymatni qaytaradi?

Bu ADC qaroriga bog'liq. Ruxsat (bu maqola uchun) - biror narsani raqamli ifodalashning darajasi. Ruxsat qanchalik baland bo'lsa, biror narsani aks ettirish aniqligi shunchalik yuqori bo'ladi. Biz rezolyutsiyani bit o'lchamlari soniga qarab o'lchaymiz.

Masalan, 1-bitli ruxsat faqat ikkita (ikkitasi bitta) qiymatga ruxsat beradi-nol va bitta. 2-bitli piksellar sonini to'rtta (ikkitasi ikkitadan) kuchga ruxsat beradi-nol, bir, ikki va uch. Agar biz besh voltli diapazonni ikki bitli aniqlik bilan o'lchashga harakat qilsak va o'lchangan kuchlanish to'rt volt bo'lsa, bizning ADC 3 raqamli qiymatini qaytaradi-chunki to'rt volt 3,75 dan 5V gacha. Buni tasvir yordamida tasavvur qilish osonroq.

Shunday qilib, 2-bitli aniqlikdagi ADC misolimiz bilan, u faqat to'rtta mumkin bo'lgan qiymatga ega bo'lgan kuchlanishni ko'rsatishi mumkin. Agar kirish voltaji 0 dan 1,25 gacha tushsa, ADC raqamli 0 ni qaytaradi; agar kuchlanish 1,25 va 2,5 oralig'iga tushib qolsa, ADC 1. sonli qiymatni qaytaradi va hokazo. Bizning Arduino-ning ADC diapazoni 0 ~ 1023 oralig'ida-bizda 1024 mumkin bo'lgan qiymatlar-yoki 10 ga 2 ga teng. Shunday qilib, bizning Arduino-larimiz 10-bitli ADC-ga ega.

3 -qadam: Xo'sh, AREF nima?

Uzoq hikoyani qisqartirish uchun, sizning Arduino analog o'qishni qabul qilganda, u ishlatilgan analog pinda o'lchangan kuchlanishni mos yozuvlar kuchlanishi bilan taqqoslaydi. Oddiy analogRead ishlatilganda, mos yozuvlar kuchlanishi - bu plataning ishchi kuchlanishi.

Uno, Mega, Duemilanove va Leonardo/Yun taxtalari kabi mashhur Arduino platalari uchun 5V ish kuchlanishi. Agar sizda Arduino Due kartasi bo'lsa, ish kuchlanishi 3,3 V ni tashkil qiladi. Agar sizda boshqa narsa bo'lsa - Arduino mahsulot sahifasini tekshiring yoki taxta etkazib beruvchisidan so'rang.

Agar sizda 5V mos yozuvlar kuchlanishi bo'lsa, analogRead () bilan qaytarilgan har bir birlik 0,00488 V ga baholanadi (Bu 1024ni 5V ga bo'lish yo'li bilan hisoblanadi). Agar biz 0 dan 2 gacha yoki 0 dan 4,6 gacha bo'lgan kuchlanishni o'lchasak nima bo'ladi? ADC bizning kuchlanish diapazonimizning 100% nima ekanligini qaerdan biladi?

Va bu erda AREF pinining sababi yotadi. AREF analog REFerence degan ma'noni anglatadi. Bu bizga Arduino -ni tashqi quvvat manbaidan mos yozuvlar kuchlanishi bilan ta'minlashga imkon beradi. Misol uchun, agar biz maksimal 3.3V diapazonli kuchlanishni o'lchashni xohlasak, biz AREF piniga yaxshi silliq 3.3Vni berar edik, ehtimol IC voltaj regulyatoridan.

Keyin ADCning har bir bosqichi taxminan 3,22 millivoltni tashkil qiladi (1024ni 3,3 ga bo'ling). E'tibor bering, sizda eng past mos yozuvlar kuchlanishi 1,1 V ni tashkil qiladi. AREFning ikkita shakli bor - ichki va tashqi, shuning uchun ularni ko'rib chiqaylik.

4 -qadam: Tashqi AREF

Tashqi AREF - bu Arduino kartasiga tashqi mos yozuvlar kuchlanishini etkazib beradigan joy. Bu tartibga solinadigan quvvat manbai bo'lishi mumkin yoki agar sizga 3,3V kerak bo'lsa, uni Arduino -ning 3,3V pinidan olishingiz mumkin. Agar siz tashqi quvvat manbaidan foydalanayotgan bo'lsangiz, GND ni Arduino GND piniga ulang. Yoki agar siz Ardunoning 3.3V manbasidan foydalansangiz - 3.3V pinidan AREF pinigacha o'tish moslamasini ishlating.

Tashqi AREF -ni faollashtirish uchun quyidagi sozlamalarni yaroqsiz holga keltiring ():

analog ma'lumotnoma (tashqi); // mos yozuvlar kuchlanishi uchun AREFdan foydalaning

Bu AREF piniga ulangan har qanday narsaga mos yozuvlar kuchlanishni o'rnatadi - bu, albatta, 1,1V va plataning ish kuchlanishiga to'g'ri keladi. Juda muhim eslatma - tashqi kuchlanish moslamasidan foydalanganda siz analog ma'lumotni EXTERNAL ga o'rnatishingiz kerak. analogRead () ni ishlatishdan oldin. Bu sizga faol ichki mos yozuvlar kuchlanishini va AREF pinini qisqartirishning oldini oladi, bu esa bortdagi mikrokontrollerga zarar etkazishi mumkin. Agar sizning arizangiz uchun kerak bo'lsa, siz AREF uchun plataning ish kuchlanishiga qaytishingiz mumkin (ya'ni - normal holatga qaytadi).

analogReference (DEFAULT);

Endi ishda tashqi AREFni ko'rsatish. 3.3V AREF yordamida quyidagi eskiz A0 kuchlanishini o'lchaydi va umumiy AREF va hisoblangan kuchlanishning foizini ko'rsatadi:

#"LiquidCrystal.h" ni qo'shing

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

int analoginput = 0; // bizning analog pinimiz

int analogamount = 0; // kiruvchi qiymatni saqlaydi float foiz = 0; // bizning foiz qiymatimizni saqlash uchun ishlatiladi float kuchlanish = 0; // kuchlanish qiymatini saqlash uchun ishlatiladi

bo'sh o'rnatish ()

{lcd.begin (16, 2); analog ma'lumotnoma (tashqi); // mos yozuvlar kuchlanishi uchun AREFdan foydalaning}

bo'sh halqa ()

{lcd.clear (); analogamount = analogRead (analoginput); foiz = (analog miqdori/1024,00)*100; kuchlanish = analog miqdori*3.222; // millivoltlarda lcd.setCursor (0, 0); lcd.print ("% AREF:"); lcd.print (foiz, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (kuchlanish, 2); kechikish (250); }

Yuqoridagi eskiz natijalari videoda ko'rsatilgan.

5 -qadam: Ichki AREF

Arduino platalarimizdagi mikrokontrollerlar 1.1V ichki mos yozuvlar kuchlanishini ham ishlab chiqarishi mumkin va biz buni AREF ishi uchun ishlatishimiz mumkin. Faqat chiziqdan foydalaning:

analog ma'lumotnoma (Ichki);

Arduino Mega platalari uchun quyidagilardan foydalaning:

analogReference (INTERNAL1V1);

in void setup () va siz o'chirilgansiz. Agar sizda Arduino Mega -ga ega bo'lsangiz, u holda 2,56V mos yozuvlar zo'riqishida ham mavjud:

analogReference (INTERNAL2V56);

Nihoyat - natijalaringizni AREF pinidan aniqlashdan oldin, o'qishni har doim ma'lum bo'lgan yaxshi multimetr bilan sozlang.

Xulosa

AREF funktsiyasi analog signallarni o'lchashda sizga ko'proq moslashuvchanlikni beradi.

Bu xabar sizga pmdway.com tomonidan olib kelingan - ishlab chiqaruvchilar va elektronika ixlosmandlari uchun hamma narsa, butun dunyo bo'ylab bepul etkazib berish.

Tavsiya: