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

Ультразвуковые дальномеры - это забавные маленькие модули, которые измеряют расстояние. Их можно использовать, чтобы измерить расстояние до объекта или определить, когда что-то находится рядом с датчиком, например, как детектор движения. Они идеально подходят для проектов, связанных с навигацией, обходом препятствий и домашней безопасностью. Поскольку они используют звук для измерения расстояния, они работают в темноте так же хорошо, как и на свету. Ультразвуковой дальномер, который я буду использовать в этом уроке, это HC-SR04, который может измерять расстояния от 2 см до 4оо см с точностью ± 3 мм. В этом уроке я покажу вам, как сделать дальномер на Arduino. Но прежде чем мы углубимся в это, давайте поговорим о том, как дальномер измеряет расстояние.

СКОРОСТЬ ЗВУКА

Ультразвуковые дальномеры измеряют расстояние, испуская импульс ультразвука, который распространяется по воздуху, пока не достигнет объекта. Когда этот звуковой импульс попадает на объект, он отражается от объекта и возвращается к ультразвуковому дальномеру. Ультразвуковой дальномер измеряет, сколько времени требуется звуковому импульсу для прохождения сигнала в оба конца от датчика и обратно и отправляет эти данные в Arduino. Зная время, которое требуется ультразвуковому импульсу для перемещения туда и обратно, а также зная скорость звука, Arduino может рассчитать расстояние до объекта. Формула, связывающая скорость звука, расстояние и пройденное время:
расстояние (S) = скорость (V) x время (t)

t - это время, которое требуется ультразвуковому импульсу, чтобы покинуть датчик, дойти и отскочить от объекта и вернуться к датчику. Делим это время пополам, так как нам нужно только измерить расстояние до объекта, а не расстояние до объекта и обратно до датчика.
V - это скорость, с которой звук распространяется по воздуху и равен он 331,4 м/сек.

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

V = 331.4 + (0.606 x T) + (0.0124 x H), где

V - скорость звука, м/сек 331.4 - скорость звука при 0 градусах Цельсия и 0% влажности
T - температура воздуха, С
H - влажность, %

Например, при 20 С и 50% влажности звук распространяется со скоростью:
V = 331.4 + (0.606 x 20) + (0.0124 x 50) V = 344.02 м/сек

Из приведенного выше уравнения видно, что температура оказывает наибольшее влияние на скорость звука. Влажность тоже имеет значение, но оно намного меньше, чем влияние температуры.

КАК УЛЬТРАЗВУКОВОЙ ДАЛЬНОМЕР ИЗМЕРЯЕТ РАССТОЯНИЕ

На лицевой стороне ультразвукового дальномера расположены два металлических цилиндра. Это преобразователи. Преобразователи преобразуют механические силы в электрические сигналы. В ультразвуковом дальномере есть передающий и приемный преобразователи. Передающий преобразователь преобразует электрический сигнал в ультразвуковой импульс, а приемный преобразователь преобразует отраженный ультразвуковой импульс обратно в электрический сигнал. Если вы посмотрите на заднюю часть дальномера, вы увидите ИС позади передающего преобразователя с надписью MAX3232. Это микросхема, которая контролирует передающий преобразователь. За приемным датчиком находится микросхема с маркировкой LM324. Это четырехканальный операционный усилитель, который усиливает сигнал, генерируемый приемным преобразователем, в сигнал, достаточно сильный для передачи на Arduino.

Ультразвуковой дальномер HC-SR04 имеет четыре контакта: Vcc , Trig , Echo и GND.

Vcc - плюс.
GND - минус.
Trig - отправка ультразвукового импульса.
Echo - принимающий контакт.

Чтобы начать измерение расстояния, нам нужно отправить сигнал высокого напряжения 5 В на контакт Trig в течение не менее 10 мкс. Когда модуль получает этот сигнал, он излучает 8 импульсов ультразвука с частотой 40 кГц от передающего преобразователя. Затем он ждет и слушает на приемном преобразователе отраженный сигнал. Если объект находится в пределах досягаемости, 8 импульсов будут отражены обратно на датчик. Когда импульс попадает на приемный преобразователь, вывод Echo выводит сигнал высокого напряжения.
Длина этого сигнала высокого напряжения равна общему времени, которое занимает 8 импульсов для прохождения от передающего преобразователя и обратно к принимающему преобразователю. Однако мы хотим измерить только расстояние до объекта, а не расстояние от пути, по которому прошел звуковой импульс. Поэтому мы делим это время пополам, чтобы получить переменную времени в уравнении d = sxt выше. Поскольку мы уже знаем скорость звука, мы можем решить уравнение для расстояния.

ПОДКЛЮЧЕНИЕ УЛЬТРАЗВУКОВОГО ДАЛЬНОМЕРА ДЛЯ ПОСЛЕДОВАТЕЛЬНОГО МОНИТОРА

Давайте начнем с создания простого ультразвукового дальномера, который будет выводить измерения расстояния на ваш последовательный монитор. Если вы хотите вывести показания на жидкокристаллический дисплей, посмотрите следующий раздел. Подключить все просто, просто подключите так:

Загрузите код в плату.

#define trigPin 10
#define echoPin 13

void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}

void loop() {
float duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);

digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) * 0.0344;

if (distance >= 400 || distance <= 2){
Serial.print("Distance = ");
Serial.println("Out of range");
}
else {
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
delay(500);
}

ПОЯСНЕНИЯ К КОДУ

Строка 11: объявляет переменную длительность и расстояние .
Строки 12 и 13: отправляет НИЗКИЙ сигнал 2 мкс в trigPin, чтобы убедиться, что он выключен в начале цикла программы.
Строки 15-17: Посылает сигнал высокого уровня 10 мкс на trigPin, чтобы инициировать последовательность из восьми ультразвуковых импульсов 40 кГц, посылаемых от передающего преобразователя.
Строка 19: определяет переменную длительности как длину (в мкс) любого входного сигнала HIGH, обнаруженного в echoPin. Выход Echo pin равен времени, за которое излучаемый ультразвуковой импульс перемещается к объекту и обратно к датчику.
Строка 20: определяет переменную расстояния как длительность (время в d = sxt), умноженную на скорость звука, конвертированную из метров в секунду в сантиметры в мкс (0,0344 см / мкс).
Строки 22-24: Если расстояние больше или равно 400 см, или меньше или равно 2 см, выводим сообщение «Расстояние = Вне диапазона» на последовательном мониторе.
Строки 26-30: Если измерение расстояния не выходит за пределы диапазона, выводим сообщение, рассчитанное в строке 20, на последовательном мониторе в течение 500 мс.

Оставлять комментарии могут только зарегистрированные пользователи. Указав email, ваше имя и комментарий вы пройдете простую регистрацию. На указанный вами email будет выслан пароль от аккаунта. Если у вас уже есть аккаунт
Нет комментариев. Но вы можете оставить его первым.