ИК-датчик движения HC-SR501: различия между версиями
Нет описания правки |
Нет описания правки |
||
(не показано 6 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
[[Файл:HC-sr5.jpg|мини|Внешний вид HC-SR501]] | [[Файл:HC-sr5.jpg|мини|Внешний вид HC-SR501]] | ||
'''HC-SR501''' - пироэлектрический инфракрасный датчик движения, позволяет обнаруживать движение в контролируемой зоне. Представляет из себя модуль состоящий из ИК сенсора 500BP, линзы Френеля, и управляющей модулем микросхемы BISS0001. Режим работы модуля задается перемычкой (режим H или режим L). | '''HC-SR501''' - пироэлектрический инфракрасный датчик движения, позволяет обнаруживать движение в контролируемой зоне. Представляет из себя модуль, состоящий из ИК сенсора 500BP, линзы Френеля, и управляющей модулем микросхемы BISS0001. Режим работы модуля задается перемычкой (режим H или режим L). | ||
В режиме H при срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень. В режиме L на выходе при каждом срабатывании датчика на выход подается отдельный импульс. | В режиме H при срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень. В режиме L на выходе при каждом срабатывании датчика на выход подается отдельный импульс. | ||
Строка 6: | Строка 6: | ||
Не рекомендуется использовать датчик в местах с резкими перепадами температур - резкий всплеск инфракрасного излучения от нагрева он будет воспринимать как появление перемещающегося объекта, что может вызвать ложное срабатывание. | Не рекомендуется использовать датчик в местах с резкими перепадами температур - резкий всплеск инфракрасного излучения от нагрева он будет воспринимать как появление перемещающегося объекта, что может вызвать ложное срабатывание. | ||
HC-SR501 часто применяется в охранных сигнализациях, а | HC-SR501 часто применяется в охранных сигнализациях, а также в умных домах для контроля освещения при появлении в помещении человека. | ||
== Технические характеристики == | == Технические характеристики == | ||
Строка 60: | Строка 60: | ||
|} | |} | ||
=== Программа === | === Программа для датчика === | ||
[[Файл:IR motion bb.png|мини|348x348пкс|Внешний вид макета]] | [[Файл:IR motion bb.png|мини|348x348пкс|Внешний вид макета]] | ||
Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае. | Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае. | ||
<syntaxhighlight lang="c"> | |||
const int movPin = 2 | |||
void setup() | |||
{ | |||
Serial.begin(9600); | |||
pinMode(movPin, INPUT); | |||
} | |||
void loop() | |||
{ | |||
int val = digitalRead(movPin); | |||
Serial.println(val); | |||
delay(100); | |||
} | |||
</syntaxhighlight>Загружаем программу на Ардуино и проверяем работу датчика. Можно покрутить настройки датчика и посмотреть как это отразится на его работе. | |||
== Программа для управления светом при помощи датчика движения == | |||
[[Файл:Imagesh.png|мини|305x305пкс|Схема подключения]] | |||
[[Файл:Imagevsh.png|мини|304x304пкс|Внешний вид макета с лампочкой]] | |||
Теперь напишем программу, которая будет при срабатывании датчика включать реле, а следовательно и освещение в комнате. | |||
<syntaxhighlight lang="c"> | |||
const int movPin = 2; | |||
const int relPin = 3; | |||
void setup() { | |||
Serial.begin(9600); | |||
pinMode(movPin, INPUT); | |||
pinMode(relPin, OUTPUT); | |||
} | |||
void loop(){ | |||
int val = digitalRead(movPin); | |||
if (val) | |||
digitalWrite(relPin, HIGH); | |||
else | |||
digitalWrite(relPin, LOW); | |||
} | |||
</syntaxhighlight>Загружаем программу на Ардуино, аккуратно подключаем схему к бытовой сети и проверяем работу датчика. |
Текущая версия от 18:46, 16 мая 2022
HC-SR501 - пироэлектрический инфракрасный датчик движения, позволяет обнаруживать движение в контролируемой зоне. Представляет из себя модуль, состоящий из ИК сенсора 500BP, линзы Френеля, и управляющей модулем микросхемы BISS0001. Режим работы модуля задается перемычкой (режим H или режим L).
В режиме H при срабатывании датчика несколько раз подряд на его выходе (на OUT) остается высокий логический уровень. В режиме L на выходе при каждом срабатывании датчика на выход подается отдельный импульс.
Не рекомендуется использовать датчик в местах с резкими перепадами температур - резкий всплеск инфракрасного излучения от нагрева он будет воспринимать как появление перемещающегося объекта, что может вызвать ложное срабатывание.
HC-SR501 часто применяется в охранных сигнализациях, а также в умных домах для контроля освещения при появлении в помещении человека.
Технические характеристики
- Напряжение питания: 4.8В до 20В
- Статический ток: 50 мА
- Уровня выходного сигнала: 3.3 В / низкий 0 В
- Время задержки: 0.5 — 200с (регулируемая)
- Время блокировки: 2.5 с
- Угол работы: < 100
- Рабочая температура: -15С до + 70C
- Определение объектов: 23 мм
- Габариты: 33мм x 25мм x 24мм
На модуль установлена линза Френеля, которая фокусирует инфракрасные сигналы на пироэлектрический датчик под названием 500BP. Датчик называется PIR (Passive Infra-Red). Пассивный он потому, что для обнаружения движения не используется какая-либо дополнительная энергия, кроме той, что испускается самими объектами.
500BP состоит из двух чувствительных элементов. Управляющая микросхема модуля регистрирует изменения сигналов от обоих элементов и по характеру их изменения обнаруживает движение объектов, испускающих инфракрасные сигналы (живых организмов).
Контакты датчика
Назначение выводов:
Модуль HC-SR501 имеет 3 вывода:
- VCC — положительное напряжение постоянного тока от 4,5 до 20 В постоянного тока.
- OUTPUT — логический выход на 3,3 вольта. LOW не указывает на обнаружение, HIGH означает, что кто-то был обнаружен.
- GND — заземление.
Назначение перемычек:
- H — это настройка Hold или Repeat. В этом положении HC-SR501 будет продолжать выдавать сигнал HIGH, пока он продолжает обнаруживать движение.
- L — Это параметр прерывания или без повтора. В этом положении выход будет оставаться HIGH в течение периода, установленного настройкой потенциометра TIME.
На плате HC-SR501 имеются дополнительные отверстия для двух компонентов, рядом расположена маркировка, посмотреть на нее можно сняв линзу Френеля.
Назначение дополнительных отверстий:
- RT — это предназначено для термистора или чувствительного к температуре резистора. Добавление этого позволяет использовать HC-SR501 в экстремальных температурах, а также в некоторой степени повышает точность работы детектора.
- RL — это соединение для светозависимого резистора или фоторезистора. Добавляя компонент, HC-SR501 будет работать только в темноте, что является общим приложением для чувствительных к движению систем освещения.
Подключение HC-SR501 к Ардуино Уно
Для соединения с микроконтроллером или напрямую с реле у HC-SR501 имеется три вывода. Подключаем их к Ардуино по следующей схеме:
HC-SR501 | GND | VCC | OUT |
Ардуино Уно | GND | +5V | 2 |
Программа для датчика
Как уже было сказано, цифровой выход датчика HC-SR501 генерирует высокий уровень сигнала при срабатывании. Напишем простую программу, которая будет отправлять в последовательный порт «1» если датчик увидел движение, и «0» в противном случае.
const int movPin = 2 void setup() { Serial.begin(9600); pinMode(movPin, INPUT); } void loop() { int val = digitalRead(movPin); Serial.println(val); delay(100); }
Загружаем программу на Ардуино и проверяем работу датчика. Можно покрутить настройки датчика и посмотреть как это отразится на его работе.
Программа для управления светом при помощи датчика движения
Теперь напишем программу, которая будет при срабатывании датчика включать реле, а следовательно и освещение в комнате.
const int movPin = 2; const int relPin = 3; void setup() { Serial.begin(9600); pinMode(movPin, INPUT); pinMode(relPin, OUTPUT); } void loop(){ int val = digitalRead(movPin); if (val) digitalWrite(relPin, HIGH); else digitalWrite(relPin, LOW); }
Загружаем программу на Ардуино, аккуратно подключаем схему к бытовой сети и проверяем работу датчика.