Подключение ультразвукового датчика к Ардуино

Ультразвуковой датчик Ардуино HC-SR04 ► расскажем, как подключить ультразвуковой дальномер HC-SR04 с библиотекой Ultrasonic Arduino для управления платой.

Ультразвуковой датчик расстояния Ардуино HC-SR04 рассмотрим на этом занятии. Расскажем, как подключить ультразвуковой дальномер HC-SR04. Разберем скетч для датчика, который может прекрасно служить для робота при определении расстояния до объектов или обнаружения препятствия. Также рассмотрим самую популярную библиотеку для ультразвуковых дальномеров на Arduino — Ultrasonic.h.

Видео. Ультразвуковой дальномер HC-SR04

Ультразвуковой дальномер HC-SR04 Arduino

Ультразвуковой датчик определяет расстояние до объекта так же, как это делают летучие мыши или дельфины. Датчик HC-SR04 генерирует узконаправленный сигнал на частоте 40 кГц и ловит отраженный сигнал (эхо). По времени распространения звука до объекта и обратно можно достаточно точно определить расстояние до него.

По этому же принципу работает множество приборов для исследования пространства — эхолот, сонар, радиолокатор и даже полицейский радар для определения скорости автомобиля. Все эти приборы излучают узконаправленный ультразвуковой сигнал и получают обратно отраженный сигнал. В отличии от инфракрасных дальномеров (IR), на показания ультразвукового датчика не влияет цвет объекта.

Принцип работы ультразвукового дальномера HC-SR04
Принцип работы ультразвукового дальномера HC-SR04

Но при настройке ультразвукового датчика на Ардуино могут возникнуть трудности с определением расстояния до звукопоглощающих объектов, поскольку они способны полностью погасить излучаемый сигнал. Для идеальной точности измерения расстояния, поверхность изучаемого объекта должна быть ровной и гладкой. Принцип работы ультразвукового датчика hc-sr04 показан на рисунке выше.

Как подключить ультразвуковой датчик к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • УЗ дальномер HC-SR04;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».
Схема подключения ультразвукового датчика к Arduino Uno
Схема подключения ультразвукового датчика к Arduino Uno

Схема подключения указана на рисунке выше. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic. После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:

Скетч для подключения датчика hc-sr04 к Arduino

int trigPin = 8; // назначаем имя для Pin8
int echoPin = 9; // назначаем имя для Pin9
 
void setup() { 
  Serial.begin (9600); // подключаем монитор порта
  pinMode(trigPin, OUTPUT); // назначаем trigPin (Pin8), как выход
  pinMode(echoPin, INPUT); // назначаем echoPin (Pin9), как вход
} 
 
void loop() { 
  int duration, cm; // назначаем переменную "cm" и "duration" для показаний датчика
  digitalWrite(trigPin, LOW); // изначально датчик не посылает сигнал
  delayMicroseconds(2); // ставим задержку в 2 ммикросекунд

  digitalWrite(trigPin, HIGH); // посылаем сигнал
  delayMicroseconds(10); // ставим задержку в 10 микросекунд
  digitalWrite(trigPin, LOW); // выключаем сигнал

  duration = pulseIn(echoPin, HIGH); // включаем прием сигнала

  cm = duration / 58; // вычисляем расстояние в сантиметрах

  Serial.print(cm); // выводим расстояние в сантиметрах
  Serial.println(" cm");

  delay(1000); // ставим паузу в 1 секунду
}

Пояснения к коду:

  1. для подключения выходов Trig и Echo на датчике можно использовать любые цифровые входы на Ардуино;
  2. чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: cm = duration / 5,8;.

Ультразвуковой датчик и светодиод Ардуино

Представленный скетч работает без библиотеки, поэтому в коде многовато строчек. Мы воспользуемся библиотекой для ультразвуковых дальномеров, что позволит нам значительно упростить скетч. Для начала установите библиотеку Ultrasonic (инструкция по установке библиотек в Arduino IDE) и загрузите следующую программу в Ардуино. Ссылка на скачивание архива со скетчами и библиотекой Ultrasonic.h — здесь.

Подключите дополнительно к плате RGB светодиод или несколько светодиодов, для создания мини проекта. Цвета светодиода будут переключаться, в зависимости от расстояния от датчика расстояния до предмета. Для управления светодиодами от УЗ датчика в программе используется условные операторы if. После сборки схемы, как на картинке выше, загрузите в микроконтроллер следующую программу.

Скетч с использованием библиотеки Ultrasonic.h

#include <Ultrasonic.h>    // подключаем библиотеку Ultrasonic
Ultrasonic ultrasonic(8,9); // назначаем выходы для Trig и Echo
 
void setup() {
  Serial.begin(9600);        // подключаем монитор порта
  pinMode (11, OUTPUT); // подключаем к пину светодиод
  pinMode (12, OUTPUT); // подключаем к пину светодиод
}

void loop () {
  int dist = ultrasonic.Ranging(CM);
  Serial.print(dist);     // выводим расстояние в сантиметрах
  Serial.println(" cm");

  // переключаем цвета светодиода
  if (dist < 50) {digitalWrite(12,0); digitalWrite(11,1);}
  if (dist < 50) {digitalWrite(12,1); digitalWrite(11,0);}

  delay(100);
}

Пояснения к коду:

  1. команда Ultrasonic ultrasonic(8,9); назначает имя для нашего датчика «ultrasonic» и назначаем выходы на Ардуино для Trig и Echo.
  2. расстояние при котором будут переключаться светодиоды можно изменить.
1 Star2 Stars3 Stars4 Stars5 Stars (11 votes, average: 5,00 out of 5)
Загрузка...

Похожие записи по теме:

3 комментариев для “Пример: Подключение ультразвукового датчика к Ардуино”

  1. Спасибо. Полезная статья про УЗ датчик HC-SR04. Было бы хорошо, если вы еще в статье дали ссылку на скачивание библиотеки Ultrasonic.h для УЗ датчика.

  2. Возможно ли при помощи такого датчика поддерживать заданное расстояние от датчика до земли. При удалении от земли включить серводвигатель и опустить датчик до заданного расстояния, а, при приближении к земле ближе заданного расстояния, при помощи этого же сервомотора поднять датчик на заданный уровень.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *