Дальномер 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);
}

Схема примера появится, когда загрузится страница: её собирает и считает движок цепей.

← Ко всем примерам