🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🚗 Проект: парковочный радар на HC-SR04

Схема парковочного радара на HC-SR04 и зуммере

HC-SR04 измеряет расстояние эхолотом, зуммер пищит тем чаще, чем ближе объект — точь-в-точь как штатный парктроник.

Как это работает

HC-SR04 работает как эхолот: на пине Trig подаётся короткий импульс, датчик излучает ультразвуковой щелчок 40 кГц, а на Echo появляется импульс, чья длительность равна времени полёта звука туда-обратно. Зная скорость звука (~343 м/с), из времени легко вычислить расстояние.

Пошаговая сборка

Так как реализации модуля бывают разные, если у вас нет тех контактов, что указаны ниже — сориентируйтесь по названиям на своей плате.

  1. HC-SR04: Trig → D9, Echo → D10, VCC → 5V, GND → GND.
  2. Активный зуммер: сигнал → D8, GND → GND.
  3. Датчик должен смотреть строго горизонтально — под углом эхо может не вернуться.
  4. Мягкие/наклонные поверхности могут поглощать ультразвук — датчик может их "не видеть".

Скетч

// ВНИМАНИЕ: лучше отладить код через монитор порта, я языковая модель,
// а не специализированный кодер, могу что-то упустить.

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: Электронные модули.

← 🚨 сигнализация от движения на HC…💨 газосигнализатор на MQ-2 с авт… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 186 ₽ 167 ₽ (экономия 19 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA