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