// Программа для ультразвукового датчика расстояния 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);
}