Ардуино менен HC-SR04 ультраүн аралык аралыкты кантип байланыштырса болот

Мазмуну:

Ардуино менен HC-SR04 ультраүн аралык аралыкты кантип байланыштырса болот
Ардуино менен HC-SR04 ультраүн аралык аралыкты кантип байланыштырса болот

Video: Ардуино менен HC-SR04 ультраүн аралык аралыкты кантип байланыштырса болот

Video: Ардуино менен HC-SR04 ультраүн аралык аралыкты кантип байланыштырса болот
Video: HC-SR04 Датчик расстояния и сигнализация на Ардуино! 2024, Ноябрь
Anonim

Бул макалада, биз HC-SR04 ультраүндүү аралыкты аныктоочу-сонарды Arduino менен байланыштырабыз.

Ultrasonic сенсор HC-SR04
Ultrasonic сенсор HC-SR04

Зарыл

  • - Arduino;
  • - ultrasonic сенсор HC-SR04;
  • - зымдарды туташтыруу.

Нускамалар

1 кадам

HC-SR04 ультраүн аралык аралыкты аныктагычтын аракети эхолокация принцибине негизделген. Ал космоско үн импульстарын чыгарып, тоскоолдуктан чагылдырылган сигналды алат. Объектке чейинки аралык үн толкунунун тоскоолдукка жана артка таралуу убактысы менен аныкталат.

Үн толкуну аралыкты аныктагычтын TRIG бутуна 10 микросекунддан кем эмес оң импульстун жардамы менен кошулат. Импульстун аякташы менен, аралыкты аныктагыч өзүнүн алдындагы мейкиндикке 40 кГц жыштыктагы үн импульстарын жарып чыгат. Ошол эле учурда чагылдырылган сигналдын кечигүү убактысын аныктоонун алгоритми ишке киргизилет жана аралыкты аныктагычтын ECHO бутунда логикалык бирдик пайда болот. Датчик чагылдырылган сигналды аныктаары менен, ECHO төөнөгүчүндө логикалык нөл пайда болот. Бул сигналдын узактыгы (сүрөттөгү "Эхо кечигүүсү") объектке чейинки аралыкты аныктайт.

HC-SR04 аралык аралыкты өлчөө диапазону - 0,3 см чечилиши менен 4 метрге чейин, Байкоо бурчу - 30 градус, натыйжалуу бурчу - 15 градус. Күтүү режиминде учурдагы керектөө 2 мА, иштеп жатканда - 15 мА.

HC-SR04 ультраүн аралык аралыкты аныктагычтын иштөө принциби
HC-SR04 ультраүн аралык аралыкты аныктагычтын иштөө принциби

2-кадам

УЗИ аралыкты өлчөгүчтү + 5 В чыңалуу менен камсыз кылат. Калган эки төөнөгүч Ардуинонун каалаган санарип портуна туташкан, биз 11 жана 12ге туташабыз.

Ардуиного HC-SR04 Ультрадыбыстық Rangeefinder туташтырылууда
Ардуиного HC-SR04 Ультрадыбыстық Rangeefinder туташтырылууда

3-кадам

Эми тоскоолдукка чейинки аралыкты аныктап, аны сериялык портко чыгарган эскиз жазалы. Биринчиден, биз TRIG жана ECHO казыктарынын сандарын койдук - бул 12 жана 11 казыктар. Андан кийин биз триггерди чыгаруу деп жарыялайбыз жана жаңырыкты киргизүү катары кабыл алабыз. Сериялык портту 9600 ылдамдык режиминде баштайбыз. Циклдин () ар бир кайталанышында биз аралыкты окуп, аны портко чыгарабыз.

GetEchoTiming () функциясы триггер импульсун жаратат. Ал жөн гана 10 микросекундалык импульстун агымын жаратат, бул үн пакетинин космостук аралыкты аныктагычтын нурлануусун баштоого түрткү болот. Андан кийин ал үн толкуну тарай баштагандан тартып, жаңырык келгенге чейинки убакытты эстейт.

GetDistance () функциясы объектке чейинки аралыкты эсептейт. Мектептин физика курсунан биз аралыктын ылдамдыкка көбөйгөнгө барабар экендигин эстейбиз: S = V * t. Абада үндүн ылдамдыгы 340 м / с, микросекундалардагы убакыт биз билебиз "дуратуюн". Убакытты бир нече секунданын ичинде алуу үчүн, 1,000,000 бөлүңүз. Дыбыш эки эсе аралыкты - объектке жана артка өткөндүктөн, аралыкты экиге бөлүшүңүз керек. Демек, биз эскизде жазган объектке чейинки аралык S = 34000 см / сек * узактыгы / 1.000.000 сек / 2 = 1.7 см / сек / 100. Микроконтроллер көбөйтүүнү бөлүүгө караганда тезирээк жүргүзөт, андыктан "/ 100" дегенди "* 0, 01" эквивалентине алмаштырдым.

УЗИ sonar HC-SR04 менен иштөө үчүн эскиз
УЗИ sonar HC-SR04 менен иштөө үчүн эскиз

4-кадам

Ошондой эле, көптөгөн китепканалар ультра үн менен иштөө үчүн жазылган. Мисалы, бул: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Китепкана стандарттуу түрдө орнотулган: Arduino IDE папкасында жайгашкан китепканалар каталогуна жүктөө, ачуу. Андан кийин китепкананы колдонсо болот.

Китепкананы орнотуп, жаңы эскиз жазалы. Анын ишинин натыйжасы бирдей - порттун сериялык монитору объектке чейинки аралыкты сантиметр менен көрсөтөт. Эскизде float dist_cm = ultrasonic. Ranging (INC) деп жазсаңыз, анда аралык дюйм менен көрсөтүлөт.

Китепкананы колдонуп ультрадыбыстық sonar эскиз
Китепкананы колдонуп ультрадыбыстық sonar эскиз

5-кадам

Ошентип, биз HC-SR04 ультраүн аралык аралыкты өлчөгүчтү Arduinoго туташтырып, андан маалыматтарды эки башка жол менен алдык: атайын китепкана аркылуу жана жок.

Китепкананы пайдалануунун артыкчылыгы - коддун көлөмү бир топ кыскарып, программанын окумдуулугу жогорулагандыктан, шаймандын татаалдыгын терең изилдөөнүн кажети жок жана аны токтоосуз колдонсоңуз болот. Бирок бул кемчилик да: сиз шайман кандай иштээрин жана андагы кандай процесстер болуп жаткандыгын жакшы түшүнө албайсыз. Кандай болгон күндө дагы, кайсы ыкманы колдонуу сизге байланыштуу.

Сунушталууда: