Прегледи: 164 Аутор: Граце Време објаве: 26.07.2021. Порекло: Сајт
Тхе ХЦ-СР04 ултразвучни сензор је један од најпопуларнијих модула за мерење удаљености за Ардуино пројекте. Широко се користи у роботима за избегавање препрека, сензорима за паркирање, детекцији нивоа, паметним корпама за смеће, мерачима удаљености и другим апликацијама без контакта.
Модул емитује ултразвучне таласе од 40 кХз кроз предајник. Када се звучни талас сусретне са објектом, рефлектује се назад до пријемника. Мерењем времена одјека и коришћењем брзине звука, Ардуино може израчунати растојање између сензора и објекта.
| Параметар | Валуе |
| Типичан радни напон | 5В ДЦ |
| Статичка радна струја | Мање од 5мА на неким верзијама модула |
| Радна фреквенција | 40кХз ултразвучни талас |
| Удаљеност детекције | Уобичајени опсег: 2цм до 400цм; неке верзије са прилагођеним појачањем могу подржавати већи домет. |
| Угао детекције | Обично унутар 15 степени; неке верзије са већим појачањем могу достићи око 30 степени. |
| Прецизност | До око 0,3 цм под одговарајућим условима испитивања |
| Слепа зона | Минимална мерна удаљеност око 2 цм |
Ултразвучни модул ХЦ-СР04 има четири пина: ВЦЦ, ТРИГ, ЕЦХО и ГНД. Ардуино шаље кратак окидач импулс на ТРИГ пин, а затим чита повратни импулс са ЕЦХО пина.
| ХЦ-СР04 Пин | Ардуино веза | Функција |
| ВЦЦ | 5В | Напајање за ултразвучни модул. |
| ТРИГ | Дигитални пин 9 | Улаз окидача. Ардуино примењује импулс од 10ус да би започео опсег. |
| ЕЦХО | Дигитални пин 10 | Ехо излаз. Ардуино чита ширину импулса да би израчунао удаљеност. |
| ГНД | ГНД | Уземљење. |
ХЦ-СР04 ради на основу мерења времена лета. Ардуино шаље сигнал окидача високог нивоа од најмање 10 микросекунди на ТРИГ пин. Модул затим аутоматски шаље осам ултразвучних импулса од 40 кХз и чека рефлектовани ехо.
Када се детектује рефлектовани ултразвучни сигнал, ЕЦХО пин емитује импулс високог нивоа. Трајање овог импулса је време повратног путовања ултразвучног таласа.
Удаљеност = време високог нивоа еха × брзина звука / 2
У Ардуино коду, уобичајена поједностављена формула је:
Растојање у цм = трајање × 0,0343 / 2
Процес мерења времена је једноставан: Ардуино кратко држи ТРИГ на ниском нивоу, шаље импулс од 10ус високог, а затим враћа ТРИГ на низак ниво. ХЦ-СР04 шаље ултразвучни рафал и поставља ЕЦХО високо док се рефлектовани сигнал не врати или док мерење не истекне.
Да бисте избегли нестабилна очитавања, оставите кратко одлагање између мерења. Обично се користи циклус мерења од око 60мс тако да претходни ултразвучни ехо има времена да нестане пре следећег окидача.
Ардуино пулсеИн() функција се користи за мерење колико дуго дигитални пин остаје ХИГХ или ЛОВ. За ХЦ-СР04, Ардуино користи пулсеИн(ецхоПин, ХИГХ) да очита ширину импулса високог нивоа са ЕЦХО пина.
| Синтакса | Значење |
| пулсеИн(пин, вредност) | Чита трајање ХИГХ или ЛОВ импулса. |
| пулсеИн (пин, вредност, временско ограничење) | Чита импулс са вредношћу временског ограничења у микросекундама. |
Препоручује се коришћење временског ограничења. Ако се ехо не врати, функција може да престане да чека и врати 0 уместо да блокира програм предуго.
Ожичење је једноставно. Повежите ВЦЦ на 5В, ГНД на ГНД, ТРИГ на Ардуино дигитални излазни пин и ЕЦХО на Ардуино дигитални улазни пин. Следећи пример користи Ардуино Уно, ТРИГ на пину 9 и ЕЦХО на пину 10.
Следећи типични Ардуино програм шаље окидач од 10ус, чита ширину ЕЦХО импулса, израчунава растојање у центиметрима и штампа резултат у серијском монитору.
цонст инт тригПин = 9; цонст инт ецхоПин = 10; дуго трајање; флоат дистанцеЦм; воид сетуп() { пинМоде(тригПин, ОУТПУТ); пинМоде(ецхоПин, ИНПУТ); Сериал.бегин(9600); } воид лооп() { дигиталВрите(тригПин, ЛОВ); делаиМицросецондс(2); дигиталВрите(тригПин, ХИГХ); делаиМицросецондс(10); дигиталВрите(тригПин, ЛОВ); дуратион = пулсеИн(ецхоПин, ХИГХ, 30000); иф (дуратион == 0) { Сериал.принтлн('Ван опсега'); } елсе { дистанцеЦм = трајање * 0,0343 / 2; Сериал.принт('Удаљеност: '); Сериал.принт(дистанцеЦм); Сериал.принтлн(' цм'); } делаи(60); }
Ако видите вредности удаљености у серијском монитору, ултразвучни сензор ХЦ-СР04 и Ардуино ожичење раде исправно. Затим можете користити податке о удаљености за откривање препрека, контролу кретања робота, аутоматска врата, подсетнике за паркирање или пројекте нивоа течности.
Држите измерени објекат унутар препорученог опсега удаљености и изван слепе зоне од 2 цм.
Користите равну и чврсту површину циља за бољу ултразвучну рефлексију.
Избегавајте мерење меких, угаоних, порозних материјала или материјала који апсорбују звук.
Користите стабилно напајање од 5В и држите ожичење кратко и сигурно.
Додајте временско ограничење пулсеИн() да бисте спречили дуго блокирање када се ехо не врати.
Просечан или средњи филтер неколико очитавања да бисте смањили шум.
За већу прецизност, компензујте температуру јер се брзина звука мења са температуром ваздуха.
| Апликација | Како се користи ХЦ-СР04 |
| Робот за избегавање препрека | Открива оближње објекте и помаже роботу да промени правац. |
| Сензор удаљености при паркирању | Мери растојање између возила и препреке. |
| Детекција нивоа течности | Без контакта мери растојање од сензора до површине течности. |
| Паметна канта за смеће | Детектује руку или предмет у близини и покреће аутоматско отварање поклопца. |
Да бисте користили ултразвучни сензор ХЦ-СР04 са Ардуином, повежите ВЦЦ на 5В, ГНД на ГНД, ТРИГ на дигитални излазни пин и ЕЦХО на пин за дигитални улаз. Пошаљите окидач од 10ус, прочитајте трајање еха помоћу пулсеИн() и израчунајте удаљеност помоћу формуле времена лета.
ХЦ-СР04 је јефтин, једноставан за коришћење и погодан за многе Ардуино пројекте мерења удаљености. За најбоље резултате обратите пажњу на циљну површину, угао мерења, слепу зону, стабилну снагу, временско ограничење и температурне ефекте.
Ардуино шаље 10ус импулс на ТРИГ пин. ХЦ-СР04 емитује осам ултразвучних импулса од 40 кХз и поставља ЕЦХО пин високо док се рефлектовани звук не врати. Ардуино мери ово време пулса и израчунава удаљеност.
Формула је растојање = трајање × брзина звука / 2. У центиметрима, уобичајена Ардуино формула је дистанцеЦм = трајање × 0,0343 / 2, где се трајање мери у микросекундама.
Измерено време еха је време повратног пута од сензора до објекта и назад до сензора. Дељењем са 2 добијате једносмерну удаљеност између сензора и објекта.
Можете користити већину Ардуино дигиталних пинова. У многим примерима, ТРИГ је повезан на дигитални пин 9, а ЕЦХО је повезан на дигитални пин 10. Код мора да одговара пиновима који се користе у вашем ожичењу.
Уобичајени узроци укључују лабаво ожичење, нестабилно напајање од 5В, погрешне ТРИГ или ЕЦХО пин бројеве, нема предмета у домету, нагнуте циљне површине, мекане материјале, блокиране главе сензора или нема временског ограничења у пулсеИн() функцији.
Слепа зона је минимална удаљеност на којој модул не може поуздано да мери. За ХЦ-СР04, слепа зона је обично око 2 цм. Објекти који су ближи од овога могу произвести нестабилна очитавања.
Да, ХЦ-СР04 се може користити за једноставне бесконтактне пројекте нивоа воде ако је сензор заштићен од влаге и монтиран изнад површине течности. За влажне, спољашње или индустријске резервоаре, препоручује се водоотпорни ултразвучни сензор.
Користите стабилно напајање, држите сензор окомито на мету, избегавајте мекане или нагнуте површине, додајте временско ограничење пулсаИн, извршите вишеструка очитавања, користите средње филтрирање и оставите око 60 мс између мерења.