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

Ультразвуковой датчик HC-SR04 – это доступный и надежный датчик расстояния, который используется для избежания препятствий в различных робототехнических проектах. Этот датчик позволяет вашему 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 возможность обнаружения и измерения расстояния до объектов. Его простота использования и доступная цена делают его идеальным выбором для разнообразных проектов, будь то робототехника, измерение уровня воды или создание парковочных сенсоров. С помощью представленного примера кода вы можете быстро начать работу с этим датчиком и добавить новые функции в свои проекты.