← Все вопросы
Как измерить расстояние ультразвуковым датчиком HC-SR04 на Arduino?
8
Хочу сделать так, чтобы робот «видел» препятствие. Купил датчик HC-SR04 (такие два «глазика»). Как с него получить расстояние в сантиметрах? Совсем не понимаю, что там за Trig и Echo.
1 ответ
13
✓ Принятый ответ — помог автору
HC-SR04 работает как эхолот: посылает ультразвук с Trig и ловит отражение на Echo. По времени полёта считаем расстояние. Подключение: VCC → 5V, GND → GND, Trig и Echo → к двум цифровым пинам.
const int trigPin = 9;
const int echoPin = 10;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// короткий импульс на Trig
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH); // время в мкс
float distance = duration * 0.034 / 2; // в см
Serial.print(distance);
Serial.println(" cm");
delay(200);
}
Формула: звук летит ~0.034 см за микросекунду, делим на 2, потому что сигнал прошёл туда и обратно. Если расстояние показывает странно большое — обычно перепутаны Trig/Echo или нет общего GND.
Ваш ответ
Войдите, чтобы ответить на вопрос.