Загрузка данных


// Программа для ультразвукового датчика расстояния HC-SR04 (по методичке)

const int trig = 2;       // Подключение Trig к выводу D2
const int echo = 3;       // Подключение Echo к выводу D3
long duration;            // Переменная для хранения длительности импульса
int distance;             // Переменная для хранения рассчитанного расстояния
const int ledPin = 13;    // Пин для светодиода (дополнительное задание)

void setup() {
  Serial.begin(9600);     // Запуск последовательного порта на скорости 9600 бод
  pinMode(trig, OUTPUT);  // Настройка trig как выхода
  pinMode(echo, INPUT);   // Настройка echo как входа
  pinMode(ledPin, OUTPUT);// Настройка пина светодиода
}

void loop() {
  // 4. Формирование стартового импульса
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  // 5. Измерение длительности импульса на echo (таймаут 30000 мкс)
  duration = pulseIn(echo, HIGH, 30000);

  // 6. Перевод времени в расстояние (деление duration на 58)
  distance = duration / 58;

  // 7. Вывод результата в монитор порта
  Serial.print("Расстояние до объекта (УЗ-датчик): ");
  Serial.print(distance);
  Serial.println(" см");

  // Дополнительное задание: светодиод загорается при отдалении объекта более чем на 40 см
  if (distance > 40) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  // 8. Пауза между измерениями (1000 мс / 1 сек)
  delay(1000);
}