Время после срабатывания
- Войдите на сайт для отправки комментариев
Чт, 20/04/2017 - 17:32
подскажите пожалуйста
if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){
n1.toCharArray(n,20);
sms.SendSMS(n, sirena); // Посылаем СМС о том, что включена сирена
sms.DeleteSMS(1);memset(n,0,20);
char smsbuffer[160]="";
flag1++;
как сделать так чтоб сирена выключалась через какое то определенное время после срабатывания, как я понимаю при повторном срабатывании sensor1 появляется единица на 4 пине! и сирена включается и пока не отправлено смс об отмене так и будет пищать.
правильно ли это?после:
if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){ пишем,
delay(5000); digitalWrite(4,LOW)
??? Это правильно?
как включается серена (код)?
как включается серена (код)?
Ну насколько я вижу что так и включается , при повторном срабатывании дачика движения появляется единица
pinMode(10, OUTPUT); // Пассивный зумер (сигнал) Serial.begin(9600); pinMode(4, INPUT); // датчик движения // digitalWrite(4, HIGH); if (gsm.begin(4800)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); } void loop() { //===========================Первое срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==0){ n1.toCharArray(n,20); sms.SendSMS(n, smsDv); // Посылаем СМС о том, что есть движение sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; delay(5000); // Ждем 5 секунд } //===========================Повторное срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){ n1.toCharArray(n,20); sms.SendSMS(n, sirena); // Посылаем СМС о том, что включена сирена sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; } if (flag1>=2){ tone(10, 2780, 200); // Сиренакак включается серена (код)?
Ну насколько я вижу что так и включается , при повторном срабатывании дачика движения появляется единица
pinMode(10, OUTPUT); // Пассивный зумер (сигнал) Serial.begin(9600); pinMode(4, INPUT); // датчик движения // digitalWrite(4, HIGH); if (gsm.begin(4800)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); } void loop() { //===========================Первое срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==0){ n1.toCharArray(n,20); sms.SendSMS(n, smsDv); // Посылаем СМС о том, что есть движение sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; delay(5000); // Ждем 5 секунд } //===========================Повторное срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){ n1.toCharArray(n,20); sms.SendSMS(n, sirena); // Посылаем СМС о том, что включена сирена sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; } if (flag1>=2){ tone(10, 2780, 200); // Сиренагде появляется единица ????
еще раз...., выдохните.... и назовите номер строки где включается сирена
и не надо мне про датчик
код я так понимаю секретный ? что вы кусками то приводите.
в коде который я вам отправил есть вся информация для решения моего вопроса, код не секретный.
Серена включается в ардуино на 10 пин, датчик движения sensor1 ноходится на 4 пине- далее все написано в коде который выше приповторном срабатывании появляется 1 на 10 пине. если Вы про вот это подключение то
все написано в коде который выше приповторном срабатывании появляется 1 на 10 пине
вы меня за идиота принимаете ?
НОМЕР СТРОКИ ГДЕ НА 10 ПИНЕ ПОЯВЛЯЕТСЯ 1 ???????????
куски кода оставте себе, хотите помощи - полный код, иначе ....
в ообщем успехов.
#include "SIM900.h" #include <SoftwareSerial.h> #include "sms.h" #include "call.h" SMSGSM sms; CallGSM call; //=================Пины 2 и 3 для Подключения GSM модуля int sensor1=0; int flag1=0; boolean started=false; char smsbuffer[160]; char n[20]; String n1 = "+7"; String input_string = ""; String smsContent = ""; char sirena[] = "Sirena vkluchena!"; char PowerOFF[] = "Snyato s ohrani"; char smsDv[] ="Wnimaniye! Dvijeniye na objekte!"; char smsW[] ="Postanovka na ohranu!"; char pos; char sendsms[160]; void setup() { pinMode(10, OUTPUT); // Пассивный зумер (сигнал) pinMode(7, OUTPUT); Serial.begin(9600); pinMode(4, INPUT); // датчик движения // digitalWrite(4, HIGH); if (gsm.begin(4800)) { Serial.println("\nstatus=READY"); started=true; } else Serial.println("\nstatus=IDLE"); } void loop() { //===========================Первое срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==0){ n1.toCharArray(n,20); sms.SendSMS(n, smsDv); // Посылаем СМС о том, что есть движение sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; delay(5000); // Ждем 5 секунд } //===========================Повторное срабатывание датчика движения if ((digitalRead(4)==HIGH) && sensor1==1 && flag1==1){ n1.toCharArray(n,20); sms.SendSMS(n, sirena); // Посылаем СМС о том, что включена сирена sms.DeleteSMS(1);memset(n,0,20); char smsbuffer[160]=""; flag1++; } if (flag1>=2){ tone(10, 2780, 200); // Сирена } pos = sms.IsSMSPresent(SMS_UNREAD); // смотрим непрочитанные СМС if (pos) { // Если непрочитанные СМС есть, то... getsms(); // получаем непрочитанную СМС if (input_string=="0"){Serial.print("Snyato s ohrani!");n1.toCharArray(n,20); sms.SendSMS(n, PowerOFF); sms.DeleteSMS(1);memset(n,0,20); // Команда "0" - снять с охраны sensor1=0;digitalWrite(7,LOW);input_string=""; char smsbuffer[160]=""; flag1=0;} if (input_string=="1"){Serial.print("Postanovka na ohranu!");n1.toCharArray(n,20); sms.SendSMS(n, smsW); sms.DeleteSMS(1); memset(n,0,20); // Команда "1" - Поставить на охрану sensor1=1; input_string=""; char smsbuffer[160]=""; flag1=0;} sms.DeleteSMS(pos); // удаляем СМС из симки } } void getsms() { sms.GetSMS(1,n,20,smsbuffer,160); input_string =String(smsbuffer); }