ИК датчик движения для Arduino HC-SR501

Модуль с инфракрасным датчиком движения HC-SR501 может фиксировать движения человека или животного на расстоянии до 7 метров. Данный модуль часто используется в простых охранных системах или бытовых проектах (автоматическое включение света при движении, автоматизации электрических приборов и т. д.)

Плата модуля спроектирована на основе чипа управления BISS0001. Чип принимает излучения с датчика и обрабатывает полученную информацию для преобразования ее в аналоговый или в цифровой сигнал.

Модуль HC-SR501 обладает двумя режимами работы (HL). Для изменения режимов используется джампер, который расположен на обратной стороне модуля. В режиме H, импульс на выходе модуля пропадает в случае отсутствия движения в зоне при заданном времени. Если подключить режим L, на выходе появляется логический сигнал при срабатывании модуля.

Так же на плате расположены 2 потенциометра. С помощью потенциометра SX изменяется расстояние чувствительности датчика (3 – 7 м), соответственно подстроечным резистором TX задается время, в течении которого будет передаваться логическая единица при движении в зоне датчика (5 – 300 с).

Инфракрасный датчик обладает 3 контактами для подключения к микропроцессору Arduino. Выходы VCC и GND обеспечивают подачу напряжения на плату, а контакт OUT необходим для передачи сигнала от датчика к микроконтроллеру устройства.

Подача напряжения на модуль осуществляется от внешнего источника питания, платы Arduino.


Технические характеристики модуля:

Напряжение питания, В4,5 … 20
Максимальный потребляемый ток, мА60
Выходное напряжение, В3,3
Расстояние обнаружения, м3 … 7
Угол обнаружения, °145
Время задержки, с5 … 300
Рабочая температура, °C-20 … +80
Размеры модуля, мм3.2 см x 2.4 см x 1.8

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

Пример скетча:

int ledPin = 13;
int switchPin = 2;
int value = 0;
void setup() {
	pinMode(ledPin, OUTPUT);
	pinMode(switchPin, INPUT);
}
void loop() {
	value = digitalRead(switchPin); 
	if (HIGH == value) {
		digitalWrite(ledPin, HIGH);
	} else {
		digitalWrite(ledPin, LOW); 
	}
}
//]]>