Схемы датчиков движения hc sr501 для включения света своими руками

Добавил пользователь Алексей Ф.
Обновлено: 18.09.2024

Начинаю выкладывать свои разработки на тиньках AVR по мелкой автоматизации в квартире. Может кому пригодится.

В этом топике представляю простенький контроллер плавного включения галогеновых ламп на ATtiny9 /10.
Без плавного включения, хоть одна галогенка перегорала раз в несколько месяцев, а иногда чаще.
Заодно в него добавил датчик движения HC-SR501, выключающий свет по таймауту, если его забыли выключить.

У меня это устройство используется в ванной комнате.
Устройство включается обычным выключателем, решил не рисковать — все таки ванная комната. Далее, если не было движения в течении нескольких минут, то выключаем свет, если обнаруживается движение — снова плавно включаем.

Лампы включаются с помощью симистора, а плавность достигается медленным изменением фазового угла.
Датчик перехода через ноль построен на сдвоенной оптопаре и срабатывает по нарастающему фронту INT0.
Начало и конец импульса включения симистора выполняется в прерываниях сравнения таймера — COMPA и COMPB. В регистры OCR0A и OCROB заносятся значения начала и конца импульса.

Датчик движения — пассивный на PIR сенсоре — типа HC-SR501.
При подаче напряжения на датчик, он всегда сначала срабатывает на заданное время, которое задается резистором регулировки длительности импульса, потом сигнал снимается на время паузы, и начинается его нормальная работа.
Можно использовать это для своих целей, измерив время этого импульса при включении устройства.
Время в секундах таймаута выключения получается умножением длительности импульса датчика на 16.

Схема (D1, D3, R6 не используются)

Схема (D1, D3, R6 не используются, красная нумерация ножек для оптосимистора VO2223)

    , , , , , ,
  • +5
  • 24 июля 2013, 04:28
  • 1

Комментарии ( 68 )

Не очень хорошо WDT делать в прерывании — процессор может зависнуть в теле, а в прерывание исправно входить.
И еще — при переустановке WDT тоже неплохо делать WDR.

Почему-то меня всегда умиляет использование оптопарной развязки в устройствах питающихся через гасящий конденсатор!
Ну зачем они там а? Ребят… схема-то всёравно под высоким потенциалом :)
а размеры у них всегда большие… юзать 6-ногую тиньку и трёх таких монстров в ряд :) Смешно блин…

Общий провод схемы управления не совпадает ни с одним проводом сети из-за использования мостового выпрямителя. Отсюда необходимость гальванической развязки.

классической схеме с гасящим кондером достаточно не моста а двух диодов. и тогда земля всей схемы будет на одном из фазных проводов.

Детект нуля через ногу МК со стабилитроном и парой резюков в мегаомм не вызовут никакого нагрева.

Управление симистором вполне легко делается транзюком каким-нить биполярником на 20 вольт 500 миллиампер в sot23


HC-SR501 — очень популярный и дешевый PIR инфракрасный детектор, работающий в инфракрасном диапазоне. Его задача — обнаружение движения. Он реагирует на перемещение объекта в поле его зрения на расстоянии до 7м.

Подключение HCSR-501



Для подключения датчика движения HCSR-501 достаточно 3-х проводов:

  1. VCC: питание от 4.5 до 20В (Ток потребления 50мА)
  2. GND: земля
  3. OUT: логический выход:
  • 3,3 В (высокий уровень) — при обнаружении движения
  • GND (низкий уровень) — когда движение отсутствует

Если объект перемещается в пределах видимости датчика, его выходной статус на выводе OUT изменится с низкого на высокий.

Плата датчика движения HCSR-501 оснащена двумя потенциометрами, которые позволяют регулировать на выходе длительность высокого уровня и чувствительность. Потенциометр Tx регулирует длительность высокого уровня после обнаружения объекта в диапазоне от 5 до 200 сек.


Дальность действия (чувствительность) HCSR-501 составляет до 7 м, угол обзора 100 градусов. Дальность действия можно отрегулировать с помощью потенциометра Sx в пределах от 3 до 7 м.


Дополнительная перемычка MD позволяет изменять реакцию датчика на движение:


  • H: (состояние по умолчанию) датчик поддерживает высокий уровень на выходе до тех пор, пока не обнаружит какое-либо движение в течение времени, установленного потенциометром Tx (режим повторного запуска).
  • L: датчик сигнализирует о каждом последующем обнаружении движения переходом в высокое состояние; после обнаружения движения датчик выдает высокий уровень, который длится в соответствии с настройкой потенциометра Tx, затем переходит в низкое состояние и снова выдает высокий уровень после обнаружения следующего движения.


Схема подключения HCSR-501

Выход OUT датчика HCSR-501 является цифровым и работает с логикой 3,3В. Благодаря этому вы можете подключить этот модуль напрямую к Ардуино или Raspberry.

Для Ардуино подключите датчик следующим образом:


Когда вы это сделаете, все, что останется, — это в скетче определить, когда вывод OUT переключается с низкого на высокий уровень. Это происходит, когда в поле зрения детектора происходит перемещение объекта.

Эта программа проверяет состояние сигнала на выводе D2 каждые 100 мс. Если на нем появляется высокий сигнал (определение с помощью функции digitalRead()) — запускается функция alarm(), в которой выполняются действия, связанные с поднятием тревоги.

Функция alarm() будет вызываться повторно каждые 100 мс, пока на выходе OUT PIR детектора будет высокий уровень.

Однако на практике нам может понадобиться решение, при котором наше устройство должно реагировать не на состояние сигнала, а на его изменение.

Прерывания

В этом случае стоит попробовать механизм, называемый прерываниями. Прерывания — это реакция микроконтроллера от внешних систем — например, описываемого ИК-детектора. Сигнал с извещеателя прерывает работу основной программы. Таким образом, он заставляет микроконтроллер реагировать на обнаружение движения.

В отличие от вышеприведенного примера, Ардуино не опрашивает время от времени состояние датчика (digitalRead() в функции loop()), а прерывает выполнение кода программы в результате сигнала от PIR детектора. У Ардуино UNO есть 2 контакта, которые обрабатывают внешние прерывания: D2 и D3.

Изменим нашу программу:

Ключевым моментом здесь является оператор attachInterrupt() в функции setup(). Установка:

digitalPinToInterrupt — прерывание подключено к цифровому выводу D2,

alarm — прерывание обрабатывается функцией alarm(),

RISING — функция alarm() сработает, когда состояние вывода D2 изменится с низкого на высокий (запуск по нарастающему фронту).

Однако у такого подхода есть особенность — функция alarm() сработает только один раз, когда детектор обнаружит движение. В следующий раз функция alarm() сработает только тогда, когда извещатель вернется в низкое состояние и снова активируется

В частном доме в коридоре 2х2м захотел сделать освещение с датчиком движения, но покупать готовый светильник как-то не хотелось (тем более, что начал потихоньку вникать в тему "Умного дома"). Хотелось, помимо простого включения по датчику движения, управлять освещением и тонко его настраивать в случае необходимости.

Я использую Home Assistant на Raspberry pi.

Для создания блока управления светильника нам потребуется:

NodeMcu" />
1. NodeMcu Датчик движения SR-501" />
2. Датчик движения SR-501 Твердотельное реле

Цена 133 руб." />
3. Твердотельное реле

Схема подключения


Подключаем все компоненты по данной схеме. Джампер (желтая перемычка) на датчике движения SR-501 ставим в положение "H" - пока будете находиться в зоне видимости датчика, он не выключит свет.

NodeMCU нужно прошить прошивкой EspEasy (или другой, какая Вам больше по душе). Описывать процедуру прошивки тут не буду, т.к. на портале уже много информации на этот счет.

Настраиваем EspEasy следующим образом:

На вкладке Tools переходим в раздел Advanced и ставим галочку напротив пункта Rules, сохраняем настройки и перезагружаем наше устройство.

Переходим на появившуюся вкладку Rules и вставляем туда следующее:

Затем добавляем в конфигурационный файл Home Assistant следующее:


Фоторезистор для SR-501


Если Вы хотите, чтобы датчик движения срабатывал не всякий раз, когда фиксирует движения, а только тогда, когда становится темно на улице (помещении), то следует установить фоторезистор в имеющиеся на датчике контакты.

Спасибо, что дочитали до конца :-)

Это моя первая статья и я начинающий "домостроитель", поэтому не судите строго)

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

Напряжение питания может быть от 4,5 до 20V, ток в режиме покоя 60мкА, при срабатывании на выходе появляется логическая единица напряжением 3,ЗV и держится время, установленное подстроечным резистором (от 2 до 100 секунд).

Характерной особенностью датчика является то, как он начинает работу, -после подачи питания датчик около 30-40 секунд не реагирует на движение. То есть, если мы делаем простую сигнализацию, то это уже есть время на выход из помещения и закрывание дверей.

Принципиальная схема

На рисунке 1 показана простейшая схема сигнализации. Питание от любого источника постоянного тока напряжением 12V, способного обеспечить работу сирены F1. Сирена F1 - электронная сирена, предназначенная для автомобильных сигнализаций.

Принципиальная схема включения сигнализации с применением датчика движения HC-SR501

Рис. 1. Принципиальная схема включения сигнализации с применением датчика движения HC-SR501.

Переменным резистором установки длительности импульса, расположенным на плате датчика движения, нужно установить продолжительность звучания сирены после срабатывания. Работает эта схема следующим образом.

Чтобы поставить на охрану включаем S1. Питание поступает на датчик движения и он в течение 30-40 секунд не реагирует на движения. В это время уходим из помещения, закрываем дверь. Через 30-40 секунд после включения датчик движения выходит в рабочий режим.

Если теперь войти, на выходе датчика появится напряжение 3,ЗV. Оно поступает через R1 на базу транзистора VТ1. Но не сразу, потому что в схеме есть конденсатор С1, он задерживает рост напряжения на базе транзистора VТ1.

Это напряжение достигает критической величины через несколько секунд. Потом транзисторы VТ1 и VТ2 открываются и включают сирену F1, которая звучит столько времени, сколько установлено подстроечным резистором на плате датчика движения.

Цепь R1-C1 дает задержку включения сирены в несколько секунд, эта задержка нужна чтобы можно было войти в помещение и отключить сигнализацию скрыто расположенным выключателем S1. Если нужно чтобы сирена включалась без задержки - удалите конденсатор С1.

На рисунке 2 показана схема простейшего охранного устройства с вызовом посредством сотового телефона. Нужен старый, простой, кнопочный сотовый телефон с гарнитурой и возможностью вызова по введенному в память номеру нажатием кнопки гарнитуры (или звонка по последнему номеру нажатием кнопки гарнитуры). Этому требованию отвечают многие кнопочные сотовые телефоны, например, Samsung-GT-E212, FLY-DS105, Phillips-1500 и многие другие (Л.1).

В сотовый телефон, находящийся на охране вносят единственный номер, по которому он будет звонить. А канал электронного ключа на микросхеме D1 подключают параллельно кнопке гарнитуры этого сотового телефона.

При срабатывании датчика движения логическая единица с его выхода поступает на управляющий вход ключа микросхемы D1, её ключ открывается и работает как нажатие кнопки гарнитуры. Телефон звонит по заранее введенному в его память номеру. Получив на свой телефон вызов с его номера вы понимаете что датчик сработал.

Схема подключения к гарнитуре телефона

В принципе, такое же устройство (звонящее на сотовый) можно сделать и по схеме на рис.1, заменив сирену электромагнитным реле, контакты которого подключить параллельно кнопке гарнитуры сотового телефона. Или сохранить и сирену, подключив обмотку реле параллельно ей. А вот микросхему CD4066 со схемы на рис.2 пристроить в схему на рис.1 будет затруднительно.

Связано это с тем, что выходной уровень логической единицы датчика движения равен 3,ЗV при любом напряжении питания. Поэтому, если микросхема D1 будет питаться напряжением 12V, единицу напряжением 3,ЗV она не воспримет как единицу, потому что напряжение единицы для её входа должно быть не менее 60% от напряжения питания. Либо D1 нужно будет питать напряжением 5V через параметрический стабилизатор.

Схема подключения датчика HC-SR501 к гарнитуре мобильного телефона

Рис. 2. Схема подключения датчика HC-SR501 к гарнитуре мобильного телефона.

Микросхему CD4066 можно заменить аналогом К561КТЗ.

Схема более сложной сигнализации

На рисунке 3 показана схема более сложной сигнализации, в которой есть светодиодная индикация и наборная кодовая клавиатура. Впрочем, это тоже очень простая схема, и отличается она от схемы на рисунке 1 только тем, что есть кодовый замок - выключатель питания датчика движения.

Кодовый замок по аналогичной схеме был неоднократно описан на страницах этого и других изданий. Это простой не программируемый кодовый замок, в котором код задается схемой пайки кнопок, а кнопки кодового числа нужно нажимать одновременно. В его основе RS-триггер на микросхеме D1.

Напряжение с выхода триггера (с выхода логического элемента D1.3) поступает через резистор R7 на базу транзистора VТ4. Если на выходе D1.3 логическая единица, то транзисторы VТ3 и VТ4 открываются и через транзистор VТ3 подается питание на датчик движения. Если же на выходе D1.3 ноль, то эти транзисторы закрываются и питание датчика движения выключается.

Можно использовать кнопки для домофонов. Они достаточно прочные и на них есть цифры. Но, можно и обычные тумблерные замыкающие кнопки, просто, на панели, на которой они будут расположены, нужно будет выгравировать, или нанести другим способом, цифры от 0 до 9.

Схема самодельной охранной сигнализации на основе датчика HC-SR501

Рис. 3. Схема самодельной охранной сигнализации на основе датчика HC-SR501.

Так как кнопки нужно нажимать одновременно, удобнее всего код сделать из трех цифр, - и нажимать удобно тремя пальцами, и секретность достаточная. Все кнопки, номера которых входят в кодовое число нужно включить последовательно. Это кнопки S1-S3 на схеме. При их одновременном нажатии на вывод 2 D1.1 поступает логическая единица от источника питания.

RS-триггер переключается в положение с нулем на выходе D1.3. Датчик движения выключается и, соответственно, сигнализация перестает работать. Все остальные кнопки, которые не входят в кодовое число, соединяют параллельно. Это кнопки S4-S10 на схеме.

При нажатии любой из них, или нескольких из них, на вывод 6 D1.2 поступает логическая единица от источника питания. Если триггер не в состоянии с единицей на выходе D1.3, то он в это состояние переключается. Если уже в таком состоянии, то так и остается. А конденсатор С1 при этом разряжается через кнопки S4-S10.

И потом, после того как они все выключаются, начинает заряжаться через R10. Пока он заряжается даже правильный набор кода не выключит сигнализацию. Этим обеспечивается защита от подбора кода. Выключатель S11 служит для полного выключения сигнализации. Его может и не быть в схеме.

Коленышев Д. С. РК-09-17.

Литература: 1. Лыжин Р. - Занимательные опыты со старым Самсунгом. РК-02-16.

Читайте также: