Модуль инфракрасного датчика движения HS-SR501

Описание

Цифровой датчик, основанный на инфракрасной технологии. Пироэлектрический элемент (приемник ИК излучения) позволяет отслеживать движение теплых объектов. Удобен для использования в проектах по сигнализации, автоматизации включения света при появлении человека и пр.

Технические характеристики

  • Напряжение питания: 5 - 20 В
  • Потребляемый ток: < 50 мкА
  • Выходное напряжение: 3,3 В (HIGH сигнал), 0 В (LOW сигнал)
  • Два режима работы
  • Время задержки: 5 - 300 сек (регулируется)
  • Время блокировки: 2,5 сек (регулируется)
  • Угол обзора: 110°
  • Рабочая температура: -15°C - 70°C

Физические размеры

  • Модуль (Д х Ш х В): 32 х 24 х 25 мм

Режимы работы

  • Режим работы «H» - в данном режиме выходной сигнал датчика остается в HIGH во время задержки, пока остается движение в зоне срабатывания датчика, далее сигнал снижается до LOW после задержки, если движение отсутствует
  • Режим работы «L» - в данном режиме выходной сигнал датчика переводится в HIGH, при каждом обнаружении движения

Плюсы использования данного датчика

  • Недорогое решение для использования в DIY устройствах
  • Высокая дальность срабатывания
  • Большой угол обзора
  • Низкое энергопотребление
  • Прост в подключении
  • Два режима работы
  • Настраиваемое время задержки и блокировки

Минусы использования данного датчика

  • Отслеживает движения только теплых объектов

Элементы датчика

  1. Вход GND
  2. Сигнальный выход OUT
  3. Вход питания VCC
  4. Переключатель в режим «H»
  5. Переключатель в режим «L»
  6. Регулятор чувствительности
  7. Регулятор времени задержки

Пример подключения и использования

В примере иллюстрируется подключение модуля к контроллеру (в примере использовался контроллер Smart UNO), и вывод сообщений о наличии (или отсутствии) движения.

Схема подключения:

Скетч для загрузки:

const int outPin = 8; //пин подключения вывода Out от датчика 
const int ledPin = 13; //пин свтодиода на контроллере

void setup() {
  pinMode(outPin, INPUT); // режим пина Out
  pinMode(ledPin, OUTPUT); //режим пина светодиода
  digitalWrite(outPin, LOW); //На Out подача 0В

  //Калибровка датчика (не менее 30 сек)
  for(int i = 0; i < 30; i++) 
  {
    digitalWrite(ledPin, HIGH); //включение светодиода
    delay(500); //задержка
    digitalWrite(ledPin, LOW); //отключение светодиода
    delay(500); //задержка
  }

  delay(50); //задержка

  Serial.begin(9600); //инициализация Serial-порта
}

void loop() {
  if (digitalRead(outPin) == HIGH) Serial.println("There is some moving"); //если обнаружено движение - вывести сообщение об обнаружении
  else Serial.println("There is quiet"); //иначе вывести сообщение об отсутствии
  delay(100); //задержка
}