Поругайте код сигнализации
- Войдите на сайт для отправки комментариев
Ср, 07/01/2015 - 14:06
Все вроде работает
Что-то мне мой код не нравится
// art100 wo write 2050107 HC-SR501 //pins----------------------------- #define PINHCSR501 2//PIR сенсор #define PINLED13 13// //consts--------------------------- int TimeWait = 10;// sek 30; long unsigned int TimeTmp = 0;// long unsigned int TimePause = 5000; // boolean FlagMotion = true; boolean FlagMotionEnd = true; //--------------------------------------------------- void setup(){ Serial.begin(9600); //протокол в терминал разделитель ; pinMode(PINHCSR501, INPUT);digitalWrite(PINHCSR501, LOW);//собственно умный детектор pinMode(PINLED13, OUTPUT); //контролька Serial.println("Signalisation.");//readme Serial.print("TimeWait sek:");Serial.print(TimeWait);Serial.print(":"); for(int i=0; i<TimeWait; i++){ Serial.print("."); delay(1000); } Serial.println("done"); Serial.println("Started."); Serial.println("Time alarm :( Time end :)"); } //============================================================================================= void loop(){ if(digitalRead(PINHCSR501)==HIGH){//если тревога digitalWrite(PINLED13,HIGH);//тревога на контрольку if(FlagMotion){ FlagMotion=false;//флаг сбросим Serial.print(millis()/1000);Serial.print("; sek motion detected; ");delay(50);//в протокол } FlagMotionEnd=true;//флаг поднимем } if(digitalRead(PINHCSR501)== LOW){//если нет изменений digitalWrite(PINLED13, LOW); //гасим контрольку if(FlagMotionEnd){//если флаг о конце протокола есть TimeTmp = millis();//запомнили время FlagMotionEnd= false;//флаг сбросим } if(!FlagMotion && millis() - TimeTmp > TimePause){//чето тут дурью попахивает FlagMotion = true;//флаг поднимем Serial.print((millis()-TimePause)/1000);Serial.println("; sek motion ended;");delay(50); } } } //=============================================================================================
Может кто полезную мысль выскажет?
Протоко вроде пишу.
Но что-то мне не нравится. :(
Signalisation. TimeWait sek:10:..........done Started. Time alarm :( Time end :) 13; sek motion detected; 15; sek motion ended; 40; sek motion detected; 43; sek motion ended; 67; sek motion detected; 70; sek motion ended; 103; sek motion detected; 105; sek motion ended; 147; sek motion detected; 150; sek motion ended; 163; sek motion detected; 173; sek motion ended; 187; sek motion detected; 190; sek motion ended; 200; sek motion detected; 238; sek motion ended;