Для измерения расстояния до предметов в мире Arduino очень часто используют ультра звуковые датчики. Наиболее распространены датчики SR04 и SRF05. Внешне они очень похожи, но есть некоторые отличия.
Датчик SR04
Это самый простой и дешёвый вариант ультразвукового датчика для Ардуино. У него есть четыре вывода для подключения, о назначении которых я расскажу чуть ниже.
Датчик SRF05
Различия датчиков SR04 и SRF05
#define trigPin 10
#define echoPin 11
#define soundSpeed 340 //скорость звука в воздухе (м/с)
unsigned long duration;
float distance;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// для большей точности установим значение LOW на пине Trig
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Теперь установим высокий уровень на пине Trig
digitalWrite(trigPin, HIGH);
// Подождем 10 мкс
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Узнаем длительность высокого сигнала на пине Echo (мкс)
duration = pulseIn(echoPin, HIGH);
// Рассчитаем расстояние в метрах S = Vt,
// поскольку звук проходит расстояние два раза - делим на 2
distance = ((duration * 1e-6) * soundSpeed)/2 ;
// Выведем значение в Serial Monitor
Serial.println(distance);
delay(200);
}