Агуулгын хүснэгт:

Arduino AREF Pin: 6 алхам
Arduino AREF Pin: 6 алхам

Видео: Arduino AREF Pin: 6 алхам

Видео: Arduino AREF Pin: 6 алхам
Видео: Episode-2 | Arduino| Basics Of Robotics |Nerdy Andaa 2024, Арваннэгдүгээр
Anonim
Arduino AREF зүү
Arduino AREF зүү

Энэхүү гарын авлагад та Arduino эсвэл нийцтэй самбар дээрх аналог оролтын зүү эсвэл AREF зүүтэй хамт бага хүчдэлийг хэрхэн илүү нарийвчлалтай хэмжих талаар авч үзэх болно. Гэсэн хэдий ч эхлээд бид таныг хурдасгахын тулд засвар хийх болно. AREF -тэй анх удаа ажиллахаасаа өмнө энэ бичлэгийг бүхэлд нь уншина уу.

Алхам 1: Хяналт

Засвар!
Засвар!

Та Arduino analogRead () функцийг ашиглан мэдрэгчийн цахилгаан гүйдлийн хүчдэлийг хэмжих гэх мэт аналог оролтын зүүг ашиглаж болно гэдгийг санаж байна. AnalogRead () -ээс буцаагдсан утга нь тэгээс 1023 хооронд байх ба тэг нь 0 вольтыг илэрхийлдэг бол 1023 нь ашиглагдаж буй Arduino хавтангийн ажиллах хүчдэлийг илэрхийлнэ.

Ашиглалтын хүчдэл гэж хэлэхэд энэ нь цахилгаан хангамжийн хэлхээний дараа Arduino -д байдаг хүчдэл юм. Жишээлбэл, хэрэв танд ердийн Arduino Uno самбар байгаа бөгөөд түүнийг USB залгуураас ажиллуулж байгаа бол таны компьютер эсвэл төв дээрх USB залгуураас 5В хүчдэл байгаа нь эргэлзээгүй, гэхдээ одоогийн эргэн тойронд салхи салхилах тусам хүчдэл бага зэрэг буурдаг. микроконтроллер руу залгах - эсвэл USB эх үүсвэр нь зураастай биш байна.

Үүнийг Arduino Uno -г USB -д холбож, 5V ба GND зүү дээрх хүчдэлийг хэмжих мултиметрийг суурилуулснаар үүнийг хялбархан харуулах боломжтой. Зарим самбар 4.8 В хүртэл бага, зарим нь илүү өндөр боловч 5В -аас доош байх болно. Хэрэв та нарийвчлалыг олж мэдэх гэж байгаа бол самбараа 9V DC гэх мэт DC залгуур эсвэл Vin зүүгээр гадаад тэжээлийн эх үүсвэрээс тэжээнэ үү. Дараа нь цахилгаан зохицуулагчийн хэлхээг дамжуулсны дараа танд сайхан 5V байх болно, жишээлбэл зураг.

Энэ нь маш чухал юм, учир нь analogRead () утгын нарийвчлал нь үнэн 5 В байхгүй байхад нөлөөлөх болно. Хэрэв танд сонголт байхгүй бол хүчдэлийн уналтыг нөхөхийн тулд зураг зурахдаа математик ашиглаж болно. Жишээлбэл, хэрэв таны хүчдэл 4.8V бол - analogRead () -ийн хүрээ 0 ~ 1023 нь 0 ~ 5V биш, 0 ~ 4.8V -тэй холбоотой байх болно. Энэ нь өчүүхэн мэт сонсогдож магадгүй, гэхдээ хэрэв та утгыг хүчдэл болгон буцааж өгдөг мэдрэгч (жишээ нь TMP36 температур мэдрэгч) ашиглаж байгаа бол тооцоолсон утга буруу байна. Тиймээс нарийвчлалын үүднээс гадны цахилгаан хангамжийг ашигла.

Алхам 2: AnalogRead () яагаад 0 -ээс 1023 хүртэлх утгыг буцаадаг вэ?

AnalogRead () яагаад 0 -ээс 1023 хүртэлх утгыг буцаадаг вэ?
AnalogRead () яагаад 0 -ээс 1023 хүртэлх утгыг буцаадаг вэ?

Энэ нь ADC -ийн шийдвэртэй холбоотой юм. Нарийвчлал (энэ нийтлэлийн хувьд) нь аливаа зүйлийг тоон хэлбэрээр илэрхийлэх боломжтой түвшин юм. Нарийвчлал өндөр байх тусам аливаа зүйлийг дүрслэх нарийвчлал өндөр болно. Бид нарийвчлалыг битийн тоогоор хэмждэг.

Жишээлбэл, 1 битийн нарийвчлал нь тэг ба нэг гэсэн хоёр утгыг зөвшөөрнө. 2 битийн нарийвчлал нь тэг (нэг, хоёр, гурав) гэсэн дөрвөн утгыг зөвшөөрнө. Хэрэв бид хоёр битийн нарийвчлалтай таван вольтын мужийг хэмжих гэж оролдсон бөгөөд хэмжсэн хүчдэл нь дөрвөн вольт байсан бол манай ADC нь 3-ийн тоон утгыг буцааж өгөх болно. Үүнийг дүрсээр төсөөлөхөд илүү хялбар байдаг.

Тиймээс бидний 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 аналог унших үед үүнийг ашиглаж байгаа аналог зүү дээр хэмжсэн хүчдэлийг жишиг хүчдэл гэж нэрлэдэг зүйлтэй харьцуулдаг. Ердийн аналогийг уншихад лавлах хүчдэл нь хавтангийн ажиллах хүчдэл юм.

Uno, Mega, Duemilanove, Leonardo/Yún хавтан гэх мэт илүү алдартай Arduino самбаруудын хувьд 5V -ийн ажиллах хүчдэл. Хэрэв танд Arduino Due самбар байгаа бол ажиллах хүчдэл 3.3V байна. Хэрэв танд өөр зүйл байгаа бол Arduino бүтээгдэхүүний хуудсыг үзэх эсвэл самбар нийлүүлэгчээс асуугаарай.

Хэрэв танд 5V -ийн жишиг хүчдэл байгаа бол analogRead () -ээр буцаагдсан нэгж бүрийг 0.00488 В -оор үнэлнэ (Үүнийг 1024 -ийг 5В -т хуваах замаар тооцоолно). Хэрэв бид 0 -ээс 2 эсвэл 0 -ээс 4.6 хүртэлх хүчдэлийг хэмжихийг хүсч байвал яах вэ? ADC нь манай хүчдэлийн хүрээ 100% -ийг яаж мэдэх вэ?

AREF зүүний шалтгаан энд байна. AREF гэдэг нь аналог REFerence гэсэн утгатай. Энэ нь Arduino -ийг гадаад тэжээлийн эх үүсвэрээс лавлах хүчдэлээр хангах боломжийг бидэнд олгодог. Жишээлбэл, хэрэв бид хамгийн ихдээ 3.3В хүчдэлтэй хүчдэлийг хэмжихийг хүсч байвал бид сайн хүчирхэг 3.3V -ийг AREF зүү рүү оруулах болно.

Дараа нь ADC -ийн алхам бүр нь ойролцоогоор 3.22 милливолвольтыг илэрхийлнэ (1024 -ийг 3.3 болгон хуваана). Хамгийн бага жишиг хүчдэл нь 1.1 В байна гэдгийг анхаарна уу. AREF -ийн дотоод ба гадаад гэсэн хоёр хэлбэр байдаг тул тэдгээрийг авч үзье.

Алхам 4: Гадаад AREF

Гадаад AREF бол та Arduino самбар дээр гадаад лавлах хүчдэл өгдөг. Энэ нь зохицуулалттай тэжээлийн эх үүсвэрээс авах боломжтой, эсвэл танд 3.3V хэрэгтэй бол Arduino -ийн 3.3V зүүгээр авах боломжтой. Хэрэв та гадаад тэжээлийн хангамж ашиглаж байгаа бол GND -ийг Arduino -ийн GND зүү рүү холбохоо мартуузай. Эсвэл хэрэв та Arduno -ийн 3.3V эх үүсвэрийг ашиглаж байгаа бол 3.3V зүүгээс AREF зүү рүү холбогчийг ажиллуулна уу.

Гадаад AREF -ийг идэвхжүүлэхийн тулд дараах хүчин төгөлдөр бус тохиргоог ашиглана уу ():

аналог лавлагаа (ГАДААД); // лавлагааны хүчдэлд AREF ашиглана уу

Энэ нь AREF зүүтэй холбогдсон бүх зүйлд лавлах хүчдэлийг тохируулдаг бөгөөд энэ нь мэдээж 1.1V ба самбарын ажиллах хүчдэлийн хоорондох хүчдэлтэй байх болно. Маш чухал тэмдэглэл бол гадаад хүчдэлийн лавлагаа ашиглахдаа аналог лавлагаагаа ГАДААД гэж тохируулах ёстой. analogRead () -ийг ашиглахаас өмнө. Энэ нь идэвхтэй дотоод лавлах хүчдэл болон AREF зүүг богиносгохоос сэргийлж, самбар дээрх микроконтроллерыг гэмтээж болзошгүй юм. Хэрэв таны аппликешнд шаардлагатай бол AREF -ийн самбарын ажиллах хүчдэл рүү буцах боломжтой (өөрөөр хэлбэл хэвийн байдалдаа орно) дараахь зүйлийг оруулна уу.

аналог лавлагаа (DEFAULT);

Одоо гадаад AREF -ийг ажил дээрээ харуулах болно. 3.3V -ийн AREF -ийг ашиглан дараах схем нь A0 -аас хүчдэлийг хэмжиж, нийт AREF -ийн эзлэх хувь ба тооцоолсон хүчдэлийг харуулна.

#"LiquidCrystal.h" -ийг оруулна уу

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

int analoginput = 0; // бидний аналог пин

int analogamount = 0; // ирж буй үнэ цэнийг хадгалдаг хөвөх хувь = 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.хэвлэх (хувь, 2); lcd.setCursor (0, 1); lcd.print ("A0 (mV):"); lcd.println (хүчдэл, 2); саатал (250); }

Дээрх зургийн үр дүнг видеонд үзүүлэв.

Алхам 5: Дотоод AREF

Манай Arduino самбар дээрх микроконтроллерууд нь 1.1V дотоод лавлах хүчдэлийг үүсгэж чаддаг бөгөөд үүнийг бид AREF -ийн ажилд ашиглаж болно. Зүгээр л мөрийг ашиглана уу:

аналог лавлагаа (ДОТООД);

Arduino Mega хавтангийн хувьд дараахь зүйлийг ашиглана уу.

аналог лавлагаа (INTERNAL1V1);

in void setup () тэгээд та унтраасан байна. Хэрэв танд Arduino Mega байгаа бол 2.56V лавлах хүчдэл байдаг бөгөөд үүнийг дараах байдлаар идэвхжүүлдэг.

аналог лавлагаа (INTERNAL2V56);

Эцэст нь - AREF зүү дээрх үр дүнг шийдэхээс өмнө уншилтыг сайн сайн мультиметртэй харьцуулж үзээрэй.

Дүгнэлт

AREF функц нь аналог дохиог хэмжихэд илүү уян хатан байдлыг өгдөг.

Энэхүү бичлэгийг pmdway.com танд хүргэсэн бөгөөд энэ нь үйлдвэрлэгч болон цахилгаан бараа сонирхогчдод зориулагдсан бүх зүйлийг дэлхий даяар үнэгүй хүргэж өгөх болно.

Зөвлөмж болгож буй: