Пассивный инфракрасный датчик движений HC-SR501 (PIR, Passive Infrared) фиксирует движения объектов. Матрица из 15-ти небольших линз фокусирует ИК-излучение из разных участков окружающего пространства на пироэлектрический детектор, основу которого составляет пластина из танталата лития, вырабатывающая небольшое напряжение в ответ на поступающее тепловое излучение. При перемещении объекта из одной зоны в другую генерируется выходной сигнал (рис. S2.1, S2.2).
Основные характеристики
Наименование | Значение |
Постоянное напряжение, В | 4,5 ÷ 20 |
Ток потребления в режиме ожидания | менее 50 мкА |
Наибольший потребляемый ток во время работы, мА | 65 |
Напряжение логических уровней, В | 3,3 |
Расстояние обнаружения | 3 ÷ 7 м, по умолчанию 7 м |
Максимальный угол обнаружения 110° на расстоянии 7 м | 120° |
Время поддержания высокого уровня выхода при присутствии | 20 ÷ 300 с |
Время игнорирования событий после фиксации | 0,2 с |
Температура окружающего воздуха при работе | –15 ÷ 70°C |
Размеры, мм | 32×24×28 |
Внешний вид, назначение контактов
Рис. S2.1. Датчик HC-SR501
Рис. S2.2. Поле зрения датчика PIR с линзой Френеля
Схема подключения
Рис. S2.3. Схема подключения датчика движения
Программный код
Листинг S2.1. Обнаружение перемещения датчиком движения HC-SR501
#define IKPin 2 //Номер пина ИК-датчика движения HC-SR501
#define ledPin 13 //Номер пина встроенного светодиода
void setup(){
Serial.begin(9600);
pinMode(IKPin, INPUT);// Объявляем пин,
// к которому подключен датчик движения, входом
pinMode(ledPin,OUTPUT); // Объявляем пин,
// к которому подключен светодиод, выходом
}
void loop(){
int pirVal = digitalRead(IKPin); //считываем
// значения с датчика движения
// Если обнаружили движение, то транслируем
// сигнал тревоги в монитор порта
// и включаем светодиод
if(pirVal == HIGH) {
digitalWrite(ledPin, HIGH);
Serial.print("ALARM");
delay(2000);
}
else {
Serial.print("Scaning");
digitalWrite(ledPin,LOW);
}
}
Результат
Рис. S2.4. Фиксация движения на Мониторе порта