Традиционные пироэлектрические инфракрасные датчики требуют детектора пироэлектрического инфракрасного излучения тела, профессиональной микросхемы, сложной внешней схемы, поэтому они больше по размеру, имеют сложную схему и ниже надежность.
Теперь мы представляем этот новый пироэлектрический инфракрасный датчик движения, который специально разработан для Arduino.
Он использует интегрированный цифровой пироэлектрический инфракрасный датчик и имеет меньший размер, более высокую надежность, меньшее энергопотребление, а также более простую внешнюю схему.
Необходимое Оборудование
Плата Arduino UNO * 1
Датчик Движения PIR * 1
Перемычки * 3
USB - кабель * 1
Спецификация
• Входное напряжение 3.3 ~ 5V (максимум 6V)
• Рабочий ток 15uA
• Рабочая температура -20 ~ 85 ℃
• Выходное напряжение Высокое 3V, Низкое 0V
• Время задержки выхода (высокий уровень) около 2.3 до 3 секунд
• Угол обнаружения 100°
• Дальность обнаружения 7 метров
• Индикатор выхода светодиод (при высоком выходе он будет включен)
• Токовая нагрузка на пин 100mA
Настройка HC-SR501
На этом уроке мы будем использовать модуль HC-SR501. Этот модуль очень распространен и применяется во множестве DIY проектов в силу своей дешевизны.
У датчика имеется два переменных резистора и перемычка для настройки режима. Один из потенциометров регулирует чувствительность прибора. Чем она больше, тем дальше «видит» датчик. Также чувствительность влияет на размер детектируемого объекта. К примеру, можно исключить из срабатывания собаку или кошку.

Второй потенциометр регулирует время срабатывания T. Если датчик обнаружил движение, он генерирует на выходе положительный импульс длиной T.
Наконец, третий элемент управления — перемычка, которая переключает режим датчика. В положении L датчик ведет отсчет Т от самого первого срабатывания. Допустим, мы хотим управлять светом в ванной комнате. Зайдя в комнату, человек вызовет срабатывание датчика, и свет включится ровно на время Т. По окончании периода, сигнал на выходе вернется в исходное состояние, и датчик будет дать следующего срабатывания.
В положении H датчик начинает отсчет времени T каждый раз после обнаружения движения. Другими словами, любое шевеление человека вызовет обнуление таймера отсчета Т. По-умолчанию, перемычка находится в состоянии H.
По часовой увеличивает, против часовой уменьшает значение
Подключение Схемы
Пример Кода
//////////////////////////////////////////////////////////
//PIR
byte sensorPin = 3;
byte indicator = 13;
void setup()
{
pinMode(sensorPin, INPUT);
pinMode(indicator, OUTPUT);
Serial.begin(9600);
}
void loop()
{
byte state = digitalRead(sensorPin);
digitalWrite(indicator, state);
if (state == 1) Serial.println("Somebody is in this area!");
else if (state == 0) Serial.println("No one!");
delay(500);
}
//////////////////////////////////////////////////////////
Результат Теста
Если датчик обнаруживает движение поблизости, индикатор L (D13) на плате загорится, и на серийном мониторе будет отображаться сообщение "Somebody is in this area!" (Кто -то в этой области!).
Если движение не обнаружено, индикатор D13 на плате будет выключен, и на серийном мониторе будет отображаться сообщение "No one!" (Никого нет!).