Проект 2: Ультразвуковой дальномер HC-SR04
Ультразвуковой датчик HC-SR04 – доступный и надежный датчик расстояния, используемый для избежаниe препятствий в робототехнике. Он позволяет Arduino «видеть» окружающую среду, предотвращая столкновения и падения. Датчик также применяется в системах контроля уровня воды и парковочных сенсорах. Работает при напряжении 5V, имеет рабочую частоту 40Hz, измеряет расстояния от 2 см до 4 м с углом обзора 15 градусов. Простой в подключении и программировании, HC-SR04 идеально подходит для проектов на базе Arduino.

Этот датчик позволяет вашему Arduino «видеть» окружающую среду и предотвращает столкновения или падения робота с поверхности. HC-SR04 также применяется в турельных установках, для контроля уровня воды и даже в качестве парковочного сенсора. В этом проекте мы будем использовать датчик HC-SR04 с Arduino и программным скетчем для создания интерактивного дисплея на экране компьютера.
Технические характеристики
Рабочее напряжение: DC 5V
Рабочий ток: 15mA
Рабочая частота: 40Hz
Максимальная дальность: 4 м
Минимальная дальность: 2 см
Угол измерения: 15 градусов
Входной сигнал триггера: 10µS TTL импульс
Выходной сигнал эхо: TTL сигнал, пропорциональный расстоянию
Размер: 46x20.4 мм
Вес: 9 г
Подключение
VCC к 5V на Arduino
GND к GND на Arduino
Echo к пину 7 на Arduino
Trig к пину 8 на Arduino
Пример кода
#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Встроенный светодиод
int maximumRange = 200; // Необходимая максимальная дальность
int minimumRange = 0; // Необходимая минимальная дальность
long duration, distance; // Время, используемое для расчета расстояния
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Использование светодиода (если необходимо)
}
void loop() {
// Следующий цикл trigPin/echoPin используется для определения
// расстояния до ближайшего объекта путем отражения звуковых волн от него.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// Рассчитать расстояние (в см) на основе скорости звука.
distance = duration / 58.2;
if (distance >= maximumRange || distance <= minimumRange){
// Отправить отрицательное число на компьютер и включить светодиод,
// чтобы указать "вне диапазона"
Serial.println("-1");
digitalWrite(LEDPin, HIGH);
}
else {
// Отправить расстояние на компьютер с помощью протокола Serial и
// выключить светодиод, чтобы указать на успешное чтение.
Serial.println(distance);
digitalWrite(LEDPin, LOW);
}
// Задержка 50 мс перед следующим чтением.
delay(50);
}
Заключение
Ультразвуковой датчик HC-SR04 предоставляет вашему проекту на базе Arduino возможность обнаружения и измерения расстояния до объектов. Его простота использования и доступная цена делают его идеальным выбором для разнообразных проектов, будь то робототехника, измерение уровня воды или создание парковочных сенсоров. С помощью представленного примера кода вы можете быстро начать работу с этим датчиком и добавить новые функции в свои проекты.