Содержание
Обзор датчика пространства HC-SR501
Модуль датчика движения (или присутствия) HCSR501 на основе пироэлектрического эффекта состоит из PIR-датчика 500BP (рис. 1) с дополнительной электрической развязкой на микросхеме BISS0001 и линзы Френеля, которая используется для увеличения радиуса обзора и усиления инфракрасного сигнала (рис. 2). Модуль используется для обнаружения движения объектов, излучающих инфракрасное излучение. Чувствительный элемент модуля – PIR-датчик 500BP. Принцип его работы основан на пироэлектричестве. Это явление возникновения электрического поля в кристаллах при изменении их температуры.Управление работой датчика осуществляет микросхема BISS0001. На плате расположены два потенциометра, с помощью первого настраивается дистанция обнаружения объектов (от 3 до 7 м), с помощью второго - задержка после первого срабатывания датчика (5 - 300 сек). Модуль имеет два режима – L и H. Режим работы устанавливается с помощью перемычки. Режим L – режим единичного срабатывания, при обнаружении движущегося объекта на выходе OUT устанавливается высокий уровень сигнала на время задержки, установленное вторым потенциометром. На это время датчик не реагирует на движущиеся объекты. Этот режим можно использовать в системах охраны для подачи сигнала тревоги на сирену. В режиме H датчик срабатывает каждый раз при обнаружении движения. Этот режим можно использовать для включения освещения. При включении модуля происходит его калибровка, длительность калибровки приблизительно одна минута, после чего модуль готов к работе. Устанавливать датчик желательно вдали от открытых источников света.
Рисунок 1. PIR-датчик 500BP
Рисунок 2. Линза Френеля
Технические характеристики HC-SR501
- Напряжение питания: 4.5-20 В
- Ток потребления : 50 мА
- Напряжение на выходе OUT: HIGH – 3,3 В, LOW – 0 В
- Интервал обнаружения: 3-7 м
- Длительность задержки после срабатывания: 5 — 300 сек
- Угол наблюдения до 120
- Время блокировки до следующего замера: 2.5сек.
- Режимы работы: L — одиночное срабатывание, H — срабатывание при каждом событии
- Рабочая температура от -20 до +80C
- Габариты 32x24x18 мм
Подключение инфракрасного датчика движения к Arduino
Модуль имеет 3 вывода (рис. 3):- VCC — питание 5-20 В;
- GND — земля;
- OUT — цифровой выход (0-3.3В).
Рисунок 3. Назначение контактов и настройка HC-SR501
Подключим модуль HC-SR501 к плате Arduino (Схема соединений на рис. 4) и напишем простой скетч, сигнализирующий звуковым сигналом и сообщением в последовательный порт, при обнаружении движущегося объекта. Для фиксации срабатываний микроконтроллером будем использовать внешние прерывания на вход 2. Это прерывание int0.Рисунок 4. Схема соединений подключения модуля HC-SR501 к плате Arduino
Загрузим скетч из листинга 1 на плату Arduino и посмотрим как датчик реагирует на препятствия (см. рис. 5). Модуль установим в режим работы L.Листинг 1
// Скетч к обзору датчика движения/присутствия HC-SR501 // http:// http://makerplus.ru // // контакт подключения выхода датчика #define PIN_HCSR501 2 // флаг сработки boolean flagHCSR501=false; // контакт подключения динамика int soundPin=9; // частота звукового сигнала int freq=587; void setup() { // инициализация последовательного порта Serial.begin(9600); // запуск обработки прерывания int0 attachInterrupt(0, intHCSR501,RISING); } void loop() { if (flagHCSR501 == true) { // Сообщение в последовательный порт Serial.println("Attention!!!"); // звуковая сигнализация на 5 сек tone(soundPin,freq,5000); // обнулить флаг сработки flagHCSR501 = false; } } // обработка прерывания void intHCSR501() { // установка флага сработки датчика flagHCSR501 = true; }
Рисунок 5. Вывод данных в монитор последовательного порта
С помощью потенциометров экспериментируем с длительностью сигнала на выходе OUT и чувствительностью датчика (расстоянием фиксации объекта).Пример использования
Создадим пример отправки sms при срабатывании датчика движения/присутствия на охраняемом объекте. Для этого будем использовать GPS/GPRS шилд. Нам понадобятся следующие детали:- плата Arduino Uno
- датчик HC-SR501
- GSM/GPRS шилд
- npn-транзистор, например С945
- резистор 470 Ом
- динамик 8 Ом 1Вт
- плата прототипирования
- провода
Рисунок 6. Схема соединений
При срабатывании датчика вызываем процедуру отправки sms с текстовым сообщением Attention!!! на номер PHONE. Содержимое скетча представлено в листинге 2. GSM/GPRS шилд в режиме отправки sms потребляет ток до 2 А, поэтому используем внешний источник питания 12В 2А.Листинг 2
// Скетч 2 к обзору датчика движения/присутствия HC-SR501 // отправка sms при срабатывании датчика // http:// http://makerplus.ru // контакт подключения выхода датчика #define PIN_HCSR501 2 // флаг сработки boolean flagHCSR501 false; // контакт подключения динамика int soundPin=9; // частота звукового сигнала int freq=587; // библиотека SoftwareSerial #include <SoftwareSerial.h> // номер телефона для отправки sms #define PHONE "+79034461752" // Выводы для SoftwareSerial (у вас могут быть 2,3) SoftwareSerial GPRS(7, 8); void setup() { // инициализация последовательного порта Serial.begin(9600); // запуск обработки прерывания int0 attachInterrupt(0, intHCSR501,RISING); // для обмена с GPG/GPRS шилдом GPRS.begin(19200); } void loop() { if (flagHCSR501 == true) { // Сообщение в последовательный порт Serial.println("Attention!!!"); // звуковая сигнализация на 5 сек tone(soundPin,freq,5000); // отправить sms SendSMS(); // обнулить флаг сработки flagHCSR501 = false; } } // обработка прерывания void intHCSR501() { // установка флага сработки датчика flagHCSR501 = true; } // подпрограмма отправки sms void SendSMS() { // AT-команда установки text mode GPRS.print("AT+CMGF=1\r"); delay(100); // номер телефона GPRS.print("AT + CMGS = \""); GPRS.print(PHONE); GPRS.println("\""); delay(200); // сообщение GPRS.println("Attention!!!"); delay(200); // ASCII код ctrl+z – окончание передачи GPRS.println((char)26); delay(200); GPRS.println(); }
Часто задаваемые вопросы FAQ
1. Модуль не срабатывает при движении объекта- Проверьте правильность подключения модуля.
- Настройте потенциометром дистанцию срабатывания.
- Настройте потенциометром задержку длительности сигнала.
- Настройте потенциометром задержку длительности сигнала.
- Установите перемычку в режим единичного срабатывания L.