Дальномер HC-SR04
TRIG на D9 и ECHO на D10 — оба обязательны. Расстояние меряется длиной импульса: pulseIn возвращает микросекунды, а путь звука двойной, отсюда деление на 58.
Программа
// Дальномер HC-SR04: меряем расстояние длиной импульса.
//
// Провода два, и работают они в паре:
// TRIG — короткий импульс от нас: «померь сейчас»;
// ECHO — ответ датчика: чем дольше он держит HIGH, тем дальше препятствие.
//
// Звук идёт туда и обратно со скоростью ~343 м/с, поэтому микросекунды делят
// на 58, а не на 29: путь двойной.
const int TRIG = 9;
const int ECHO = 10;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(TRIG, LOW);
digitalWrite(TRIG, HIGH); // импульс запуска
digitalWrite(TRIG, LOW);
long us = pulseIn(ECHO, HIGH, 30000); // ждём эхо, но не дольше 30 мс
if (us == 0) {
Serial.println("эха нет — далеко или не подключён TRIG");
} else {
Serial.print(us / 58);
Serial.println(" см");
}
delay(200);
}
Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.