🛒
0 товаров
0 руб.

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


🚧 Проект: ИК-барьер на связке KY-005 и KY-022

ИК-передатчик KY-005 и приёмник KY-022

ИК-передатчик KY-005 непрерывно светит модулированным лучом на 38 кГц, а приёмник KY-022 держит выход в LOW, пока луч не прерван — стоит перекрыть проход, и сигнал пропадает.

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

Это классическая схема ИК-барьера, знакомая по турникетам в магазинах и лифтам: передатчик KY-005 непрерывно светит инфракрасным светодиодом, модулированным на частоте 38 кГц (именно на эту частоту настроены стандартные ИК-приёмные модули, как в пультах ДУ), а приёмник KY-022 детектирует эту несущую и держит выход в LOW, пока луч доходит до него без помех. Как только кто-то пересекает луч — сигнал пропадает, приёмник переключается в HIGH, и Arduino узнаёт о пересечении.

Важная техническая деталь: функция `tone()`, запущенная один раз в `setup()`, продолжает генерировать несущую частоту на пине передатчика в фоновом режиме (через аппаратный таймер), не блокируя основной цикл `loop()` — поэтому Arduino свободно опрашивает приёмник, пока передатчик непрерывно "светит".

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

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

  1. Подключите KY-005 (передатчик): сигнал → D3, VCC → 5V, GND → GND.
  2. Подключите KY-022 (приёмник): сигнал → D2, VCC → 5V, GND → GND.
  3. Подключите активный зуммер: сигнал → D8, GND → GND.
  4. Установите передатчик и приёмник друг напротив друга по разные стороны проёма, в прямой видимости.
  5. Оба модуля подключаются к одной и той же Arduino — просто разведите провода питания/сигнала на нужное расстояние.

Скетч

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

const int txPin = 3;
const int rxPin = 2;
const int buzzerPin = 8;

void setup() {
  Serial.begin(9600);
  pinMode(rxPin, INPUT);
  pinMode(buzzerPin, OUTPUT);
  tone(txPin, 38000); // непрерывная несущая 38 кГц, работает в фоне
}

void loop() {
  if (digitalRead(rxPin) == HIGH) { // луч перекрыт
    digitalWrite(buzzerPin, HIGH);
    Serial.println("Луч перекрыт!");
  } else {
    digitalWrite(buzzerPin, LOW);
  }
  delay(50);
}

`tone()` на пине передатчика работает в фоне и не блокирует `loop()`. Оба модуля подключаются к одной плате Arduino — просто разнесите их проводами по разные стороны прохода.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 📳 виброохранная сигнализация на KY-002👆 сенсорный замок по количеству касаний на T… →

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

Все 2 товара сразу в корзину: 113 ₽ 102 ₽ (экономия 11 ₽)

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

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

Корзина


Поиск



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