const int sigPin = 9; // Пин для датчика (и Trig, и Echo)
const int ledPin = 13;
const int buzzerPin = 8;
const int distanceThreshold = 20;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
long duration;
int distance;
// 1. Отправляем импульс (пин работает как OUTPUT)
pinMode(sigPin, OUTPUT);
digitalWrite(sigPin, LOW);
delayMicroseconds(2);
digitalWrite(sigPin, HIGH);
delayMicroseconds(5); // Для 3-пиновых датчиков часто нужно 5-10 мкс
digitalWrite(sigPin, LOW);
// 2. Слушаем ответ (переключаем пин в INPUT)
pinMode(sigPin, INPUT);
duration = pulseIn(sigPin, HIGH);
// 3. Считаем расстояние
distance = duration * 0.034 / 2;
// Логика тревоги
if (distance > 0 && distance <= distanceThreshold) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000);
delay(150);
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
delay(150);
} else {
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
}
Serial.print("Distance: ");
Serial.println(distance);
delay(100);
}