Несколько PIR датчиков движения в охранной системе.

Сельской Охранник
Offline
Зарегистрирован: 17.07.2018

Нужна помощь с написанием скетча к Ардуино нано (ATMega328P). 

Есть 4 PIR датчика (HC-SR501)  P.S. Для скетча пока нужно только 2. ;

Ардуинка; реле; сирена; источник 5V. 

Нужно чтоб при поступлении логического сигнала с датчика, ардуино подавал на реле сигнал HIGH→delay(300000)→LOW.

Есть пример моего скетча но ни один не работает, я что-то слышал что если 1-й датчик подаёт HIGH а 2-й LOW то происходит замыкание но я не уверен в этом.

Вот: https://pastebin.com/sjVCg0hH

Подскажите код вообщем☺.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

В сети полно

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

Сельской Охранник пишет:
Нужно чтоб при поступлении логического сигнала с датчика, ардуино подавал на реле сигнал HIGH→delay(300000)→LOW.

При такой постановке вопроса немного думаем, понимаем что надо просто задержать уровень сигнала, сомневаемся - за каким чёртом в задаче вообще Arduino. Всё делается на 555м таймере.

Если так хочется, то

1. if(digitalRead(PIR_N)){}

Если у датчиков активный ноль, то дописать ! и вместо INPUT в setup() - INPUT_PULLUP.

2. внутри этого условия (if(...(PIR))) пишется переменная типа unsigned long, туда присваивается текущее millis(). Наверху очевидно эту переменную создать, глобально. Либо приписать ключевое слово static.

Далее по тексту я называю такую переменную "время", time_pir1 например.

"Время" - это время включения. Время выключения это время включения плюс интервал (длительность, если так непонятно) включения.

Внутри этого же условия на выход тот уровень что надо удержать, например digitalWrite(RELAY,1);

3. снаружи этого условия сверка времени, если время истекло (больше или равно интервалу) возвращать уровнь на выходе на место, например digitalWrite(RELAY,0);

То же самое для других комплектов (датчик, выход, переменная со временем, интервал если он отличается).

Читать blink without delay.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Сельской Охранник пишет:

Нужно чтоб...

С таким здесь принято обращаться в раздел "Ищу исполнителя".

Цитата:

 я что-то слышал что если 1-й датчик подаёт HIGH а 2-й LOW то происходит замыкание но я не уверен в этом.

Судя по описанию, неверно составлена схема.

Но схему Вы не приводите. Как тут можно что-то посоветовать?

Сельской Охранник
Offline
Зарегистрирован: 17.07.2018

Спасибо за помощь всё вышло я над этим несколько дней сидел! Закрыто?

bwn
Offline
Зарегистрирован: 25.08.2014

Сельской Охранник пишет:

Спасибо за помощь всё вышло я над этим несколько дней сидел! Закрыто?

Ну зачем же ты это туда засовывал????

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

bwn, сложна.

Сельской Охранник
Offline
Зарегистрирован: 17.07.2018

Бате хотелось подключить датчики по порту на каждый хз почему)