Интернет-магазин «Неглупый Дом»
HC-SR04 постоянно измеряет расстояние до противоположной стены или косяка двери. Появилось препятствие ближе порога — включается сирена.
HC-SR04 измеряет расстояние эхолокацией: передатчик шлёт короткий импульс ультразвука (~40 кГц, выше слышимости человека), приёмник ловит отражённую волну. Время полёта звука прямо пропорционально расстоянию, поэтому деление на 58 переводит микросекунды в сантиметры.
В отличие от ИК-барьера (нужны два модуля по разные стороны проёма), тут достаточно одного датчика, направленного на противоположную стену: он постоянно мерит расстояние до неё, и когда в проёме появляется человек — измеренное расстояние резко падает, это и есть сигнал тревоги.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
const int thresholdCm = 80; // расстояние до стены при пустом проходе
long getDistanceCm() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
return duration / 58; // перевод времени полёта звука в сантиметры
}
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
long distance = getDistanceCm();
Serial.print("Расстояние, см: ");
Serial.println(distance);
if (distance > 0 && distance < thresholdCm) {
tone(buzzerPin, 1500);
} else {
noTone(buzzerPin);
}
delay(100);
}
Порог `thresholdCm` калибруется под проём — измерьте штатное расстояние через Serial-монитор и возьмите значение чуть меньше.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 195 ₽ 176 ₽ (экономия 19 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.