Перейти к контенту
← Назад

Ультразвуковой сенсор

hc-sr04

// Copyright (c) 2026 ЦПМК по информатике
// Licensed under the MIT License.
// https://robot.mipt.ru/

// Определяем пины подключения HC-SR04
const int TRIG_PIN = 9;
const int ECHO_PIN = 10;

void setup() {
  Serial.begin(9600);
  
  pinMode(TRIG_PIN, OUTPUT); // Trig посылает сигнал
  pinMode(ECHO_PIN, INPUT);  // Echo принимает сигнал
}

void loop() {
  //  для уверенности, опускаем Trig перед отправкой
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);

  //  Генерируем импульс 10 микросекунд
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);

  //  Замеряем время ответа в микросекундах
  // pulseIn ждет, пока пин станет HIGH, и возвращает время в мкс
  long duration = pulseIn(ECHO_PIN, HIGH);

  //  Вычисляем расстояние
  // Скорость звука = 340 м/с или 0.034 см/мкс.
  // Делим на 2, так как звук идет до объекта и обратно.
  float distance = duration * 0.034 / 2;

  // Вывод данных
  if (distance > 400 || distance < 2) {
    Serial.println("Out of range (2-400cm)");
  } else {
    Serial.print("Distance: ");
    Serial.print(distance);
    Serial.println(" cm");
  }

  delay(100); // Небольшая пауза между замерами
}