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

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

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