norr@manorshi.com         +86-519-89185720
1
Мэдээний төв

Arduino дээр хэт авианы мэдрэгчийг хэрхэн ашиглах вэ?

Үзсэн: 164     Зохиогч: Грейс Нийтлэх цаг: 2021-07-26 Гарал үүсэл: Сайт

facebook хуваалцах товчлуур
twitter хуваалцах товчлуур
шугам хуваалцах товч
wechat хуваалцах товч
linkedin хуваалцах товчлуур
pinterest хуваалцах товчлуур
whatsapp хуваалцах товчлуур
kakao хуваалцах товчлуур
snapchat хуваалцах товчлуур
телеграмм хуваалцах товчлуур
хуваалцах товчийг хуваалц

Хэт авианы мэдрэгчийг Arduino-тэй хэрхэн ашиглах вэ: HC-SR04 гарын авлага

The HC-SR04 хэт авианы мэдрэгч нь Arduino төслүүдийн хамгийн алдартай зай хэмжих модулиудын нэг юм. Энэ нь саад тотгороос зайлсхийх робот, зогсоолын мэдрэгч, түвшин тодорхойлох, ухаалаг хогийн сав, зай хэмжигч болон бусад контактгүй мэдрэгч бүхий програмуудад өргөн хэрэглэгддэг.

Модуль нь дамжуулагчаар дамжуулан 40 кГц хэт авианы долгионыг ялгаруулдаг. Дууны долгион нь объекттой уулзах үед хүлээн авагч руу буцаж тусдаг. Цуурай цагийг хэмжиж, дууны хурдыг ашигласнаар Arduino мэдрэгч ба объектын хоорондох зайг тооцоолж чадна.

Arduino зайг хэмжихэд зориулсан HC-SR04 хэт авианы мэдрэгчийн модуль

HC-SR04 Техникийн үндсэн үзүүлэлтүүд

Параметр Үнэ цэнэ
Ердийн ажлын хүчдэл 5V DC
Статик ажлын гүйдэл Зарим модулийн хувилбаруудад 5мА-аас бага
Үйл ажиллагааны давтамж 40 кГц хэт авианы долгион
Илрүүлэх зай Нийтлэг хүрээ: 2см-ээс 400см хүртэл; Зарим ашигт тохируулсан хувилбарууд нь илүү урт зайг дэмждэг.
Илрүүлэх өнцөг Ихэвчлэн 15 градусын дотор; өндөр өсөлттэй зарим хувилбарууд нь ойролцоогоор 30 градус хүрч болно.
Нарийвчлал Тохиромжтой туршилтын нөхцөлд ойролцоогоор 0.3 см хүртэл
Сохор бүс Хамгийн бага хэмжих зай 2 см орчим байна

HC-SR04 зүү тайлбар

HC-SR04 хэт авианы модуль нь VCC, TRIG, ECHO, GND гэсэн дөрвөн тээглүүртэй. Arduino нь TRIG зүү рүү богино гох импульс илгээж, дараа нь ECHO зүүгээс буцах импульсийг уншдаг.

HC-SR04 зүү Arduino холболт Чиг үүрэг
VCC 5V Хэт авианы модулийн цахилгаан хангамж.
ТРИГ Дижитал зүү 9 Триггер оролт. Arduino зайг эхлүүлэхийн тулд 10us импульс ашигладаг.
ЭХО Дижитал зүү 10 Цуурай гаралт. Arduino зайг тооцоолохын тулд импульсийн өргөнийг уншдаг.
GND GND Газрын холболт.

HC-SR04 хэт авианы мэдрэгч pinout VCC TRIG ECHO GND

HC-SR04 хэт авианы мэдрэгчийн ажиллах зарчим

HC-SR04 нь нислэгийн цагийн хэмжилтээр ажилладаг. Arduino нь TRIG зүү рүү дор хаяж 10 микросекундын өндөр түвшний гох дохиог илгээдэг. Дараа нь модуль нь автоматаар найман 40 кГц хэт авианы импульс илгээж, туссан цуурайг хүлээнэ.

Ойсон хэт авианы дохио илрэх үед ECHO зүү нь өндөр түвшний импульс гаргадаг. Энэ импульсийн үргэлжлэх хугацаа нь хэт авианы долгионы хоёр талын аяллын хугацаа юм.

Зай = Цуурай өндөр түвшний цаг × Дууны хурд / 2

Arduino кодын энгийн хялбаршуулсан томъёо нь:

Зай см-ээр = үргэлжлэх хугацаа × 0.0343 / 2

HC-SR04 хэт авианы модулийн нислэгийн ажиллах зарчим

HC-SR04 Хэт авианы модулийн цагийн диаграмм

Хугацаа тогтоох үйл явц нь энгийн: Arduino нь TRIG-ийг богино хугацаанд бага байлгаж, 10us өндөр импульс илгээж, дараа нь TRIG-ийг бага руу буцаана. HC-SR04 нь хэт авианы тэсрэлт илгээж, туссан дохио буцаж ирэх хүртэл эсвэл хэмжилтийн хугацаа дуусах хүртэл ECHO-г өндөр болгодог.

Тогтворгүй уншилтаас зайлсхийхийн тулд хэмжилтийн хооронд богино хугацааны саатал үлдээнэ үү. 60 мс орчим хэмжилтийн циклийг ихэвчлэн ашигладаг тул өмнөх хэт авианы цуурай дараагийн гохоос өмнө алга болох цагтай байдаг.

Arduino програмчлалын үндэс: pulseIn функц

Arduino pulseIn() функц нь дижитал зүү ӨНДӨР эсвэл БАГА байх хугацааг хэмжихэд ашиглагддаг. HC-SR04-ийн хувьд Arduino нь pulseIn(echoPin, HIGH) ашигладаг. ECHO зүүгээс өндөр түвшний импульсийн өргөнийг уншихын тулд

Синтакс Утга
pulseIn(зүү, утга) ӨНДӨР эсвэл БАГА импульсийн үргэлжлэх хугацааг уншина.
pulseIn(зүү, утга, хугацаа) Микросекундээр завсарлагааны утгатай импульсийг уншина.

Хугацаа ашиглахыг зөвлөж байна. Хэрэв цуурай буцаж ирээгүй бол функц хүлээхээ зогсоож, програмыг хэт удаан блоклохын оронд 0-г буцаана.

Arduino хавтанг HC-SR04 хэт авианы зайны мэдрэгчтэй ашигладаг

HC-SR04 хэт авианы мэдрэгчийг Arduino руу хэрхэн холбох вэ

Утас нь шууд байна. VCC-ийг 5V-д, GND-ийг GND-д, TRIG-ийг Arduino дижитал гаралтын пин рүү, ECHO-г Arduino дижитал оролтын пин-д холбоно. Дараах жишээнд Arduino Uno, 9-р зүү дээр TRIG, 10-р зүү дээр ECHO ашигладаг.

HC-SR04 хэт авианы мэдрэгчийн Arduino Uno breadboard холболтын диаграм

HC-SR04 Хэт авианы мэдрэгч Arduino код

Дараах ердийн Arduino програм нь 10us триггер импульс илгээж, ECHO импульсийн өргөнийг уншиж, зайг сантиметрээр тооцож, үр дүнг цуврал монитор дээр хэвлэдэг.

const int trigPin = 9; const int echoPin = 10; урт хугацаа; хөвөх зайСм; хүчингүй тохиргоо() { pinMode(trigPin, OUTPUT);   pinMode(echoPin, INPUT);   Serial.begin(9600); } хүчингүй давталт() { digitalWrite(trigPin, LOW);   сааталМикросекунд(2);   digitalWrite(trigPin, HIGH);   сааталМикросекунд(10);   digitalWrite(trigPin, LOW);   үргэлжлэх хугацаа = pulseIn(echoPin, HIGH, 30000);   if (үргэлжлэх хугацаа == 0) { Serial.println ('Хүрээнээс гадуур');   } else { зайСм = үргэлжлэх хугацаа * 0.0343 / 2;     Serial.print('Зай: ');     Цуваа.хэвлэх(зай см);     Serial.println('см');   } саатал(60); }

Хэрэв та цуврал монитор дээр зайны утгыг харвал HC-SR04 хэт авианы мэдрэгч болон Arduino утас зөв ажиллаж байна. Дараа нь та зайны өгөгдлийг саад тотгор илрүүлэх, роботын хөдөлгөөнийг хянах, автомат хаалга, зогсоолын сануулга эсвэл шингэний түвшний төслүүдэд ашиглаж болно.

Arduino HC-SR04 хэт авианы мэдрэгчийг хэмжих програм

HC-SR04 хэмжилтийн нарийвчлалыг хэрхэн сайжруулах вэ

  • Хэмжсэн объектыг санал болгож буй зайд, 2 см-ийн сохор бүсээс гадуур байлга.

  • Хэт авианы тусгалыг илүү сайн болгохын тулд хавтгай, хатуу зорилтот гадаргууг ашигла.

  • Зөөлөн, өнцөгтэй, сүвэрхэг, дуу шингээх материалыг хэмжихээс зайлсхий.

  • Тогтвортой 5V тэжээлийн хангамж ашиглаж, утсыг богино, найдвартай байлга.

  • Цуурай буцаж ирэхгүй үед удаан блоклохоос сэргийлэхийн тулд pulseIn()-д завсарлага нэмнэ үү.

  • Дуу чимээг багасгахын тулд хэд хэдэн уншилтыг дундаж буюу медианаар шүүнэ.

  • Илүү нарийвчлалтай болгохын тулд дууны хурд нь агаарын температураас хамаарч өөрчлөгддөг тул температурыг нөхнө.

Arduino хэт авианы мэдрэгчийн төслүүдийн нийтлэг хэрэглээ

Өргөдөл HC-SR04 хэрхэн ашиглагддаг вэ
Саадаас зайлсхийх робот Ойролцоох объектуудыг илрүүлж, роботын чиглэлийг өөрчлөхөд тусалдаг.
Зогсоолын зай мэдрэгч Машин ба саад хоорондын зайг хэмждэг.
Шингэний түвшинг илрүүлэх Мэдрэгчээс шингэний гадаргуу хүртэлх зайг контактгүйгээр хэмждэг.
Ухаалаг хогийн сав Ойролцоох гар эсвэл объектыг илрүүлж, тагийг автоматаар нээхийг идэвхжүүлнэ.

Дүгнэлт

Arduino-той HC-SR04 хэт авианы мэдрэгчийг ашиглахын тулд VCC-ийг 5V-д, GND-ийг GND-д, TRIG-ийг дижитал гаралтын зүү рүү, ECHO-г дижитал оролтын пин рүү холбоно. 10us гох импульс илгээж, цуурай үргэлжлэх хугацааг pulseIn() ашиглан уншиж, нислэгийн цагийн томъёогоор зайг тооцоол.

HC-SR04 нь хямд, хэрэглэхэд хялбар бөгөөд Arduino зайны хэмжилтийн олон төслүүдэд тохиромжтой. Хамгийн сайн үр дүнд хүрэхийн тулд зорилтот гадаргуу, хэмжилтийн өнцөг, сохор бүс, тогтвортой хүч, ажиллах хугацаа, температурын нөлөөнд анхаарлаа хандуулаарай.

HC-SR04 Arduino хэт авианы мэдрэгчийн талаар байнга асуудаг асуултууд

HC-SR04 хэт авианы мэдрэгч нь Arduino-тэй хэрхэн ажилладаг вэ?

Arduino нь TRIG зүү рүү 10us импульс илгээдэг. HC-SR04 нь 40 кГц-ийн найман хэт авианы импульс ялгаруулж, туссан дуу буцаж ирэх хүртэл ECHO зүүг өндөр болгодог. Arduino нь энэ импульсийн хугацааг хэмжиж, зайг тооцдог.

HC-SR04 Arduino төслүүдийн зайны томъёо юу вэ?

Томъёо нь зай = үргэлжлэх хугацаа × дууны хурд / 2. Сантиметрээр нийтлэг Arduino томьёо нь зайCm = үргэлжлэх хугацаа × 0.0343 / 2 бөгөөд үргэлжлэх хугацааг микросекундээр хэмждэг.

Бид яагаад хэт авианы мэдрэгчийн үр дүнг 2-оор хуваадаг вэ?

Хэмжсэн цуурайны хугацаа нь мэдрэгчээс объект руу буцах, мэдрэгч рүү буцах хугацаа юм. 2-т хуваах нь мэдрэгч ба объектын хоорондох нэг талын зайг өгнө.

TRIG болон ECHO-д ямар Arduino зүү ашиглах ёстой вэ?

Та ихэнх Arduino дижитал зүү ашиглаж болно. Олон жишээн дээр TRIG нь дижитал зүү 9-д, ECHO нь дижитал зүү 10-д холбогдсон байдаг. Код нь таны утсанд ашигласан зүүтэй таарч байх ёстой.

Миний HC-SR04 хэт авианы мэдрэгч яагаад тэг эсвэл санамсаргүй утгыг буцаадаг вэ?

Нийтлэг шалтгаанууд нь сул утас, тогтворгүй 5V хүчдэл, буруу TRIG эсвэл ECHO зүү дугаар, хүрээн доторх объект байхгүй, зорилтот гадаргуу нь өнцөгтэй, зөөлөн материал, мэдрэгчийн толгой бөглөрсөн эсвэл pulseIn() функцэд хугацаа хэтрээгүй байна.

HC-SR04 хэт авианы мэдрэгчийн сохор бүс гэж юу вэ?

Сохор бүс нь модулийг найдвартай хэмжих боломжгүй хамгийн бага зай юм. HC-SR04-ийн хувьд сохор бүс нь ихэвчлэн 2 см орчим байдаг. Үүнээс ойр байгаа объектууд тогтворгүй уншилт үүсгэж болзошгүй.

HC-SR04 нь Arduino ашиглан усны түвшинг хэмжиж чадах уу?

Тийм ээ, мэдрэгчийг чийгээс хамгаалж, шингэний гадаргуугаас дээш суурилуулсан бол HC-SR04-ийг усны түвшний холбоо барихгүй энгийн төслүүдэд ашиглаж болно. Чийглэг, гадаа эсвэл үйлдвэрлэлийн савны хувьд ус нэвтэрдэггүй хэт авианы мэдрэгч ашиглахыг зөвлөж байна.

Би Arduino хэт авианы мэдрэгчийн заалтыг хэрхэн илүү тогтвортой болгох вэ?

Тогтвортой тэжээлийн хангамж ашиглах, мэдрэгчийг зорилтот түвшинд перпендикуляр байлгах, зөөлөн эсвэл өнцөгт гадаргуугаас зайлсхийх, импульсийн хугацаа нэмэх, олон уншилт хийх, медиан шүүлтүүрийг ашиглах, хэмжилтийн хооронд 60 мс орчим зай үлдээгээрэй.

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