Будильник Arduino с датчиком неисправности - PullRequest
0 голосов
/ 05 декабря 2018

В основном я делаю будильник Arduino, который отключается только при активации датчика pir.Я просто хочу, чтобы прозвучал пьезо-зуммер, когда время между 12:01 и 12:05 для быстрой демонстрации, и если в это время будет активирован датчик pir, пьезо-зуммер отключится, и эта функция будет аннулирована.Проблема, с которой я столкнулся, заключается в том, что, когда время 12:01 и 12:05 и датчик движения активирован, пьезо-зуммер не отключается, а последовательный монитор не печатает «Нет движения!»когда должно быть напечатано «Обнаружено движение!»

вот мой код

//Digital Arduino Clock Code


#include <LiquidCrystal.h>
LiquidCrystal lcd(3, 4, 8, 9, 10, 11);

int h=12;
int m;
int s;
int flag;
int TIME;
int ledPin = 13;
int inputPin = 2;
int pirState = LOW;
int val = 0;
int buzzer = 7; 


const int hs=8;
const int ms=9;

int state1;
int state2;

void setup()
{
  pinMode(ledPin, OUTPUT);   // declare LED as output
  pinMode(inputPin, INPUT); // declare Sensor as input
  lcd.begin(16,2);

  Serial.begin(9600);
}
void loop()
{


 lcd.setCursor(0,0);
 s=s+1;
 lcd.print("TIME:");
 lcd.print(h);
 lcd.print(":");
 lcd.print(m);
 lcd.print(":");
 lcd.print(s);

 if(flag<12)lcd.print("AM");
 if(flag==12)lcd.print("PM");
 if(flag>12)lcd.print("PM");
 if(flag==24)flag=0;

 delay(1000);
 lcd.clear();
 if(s==60){
  s=0;
  m=m+1;
 }
 if(m==60)
 {
  m=0;
  h=h+1;
  flag=flag+1;
 }
 if(h==13)
 {
  h=1;
 }
 lcd.setCursor(0,1);

 lcd.print("HAVE A NICE DAY");


 //alarm clock function w/ PIR sensor and Buzzer
 if(h==12 && (m>=1 && m<=5) && (pirState == LOW)) 
{
  Serial.println("No Motion!!");


  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("WAKEUP");
  tone(buzzer, 50, 100);
  pirState = HIGH;
  /
 }
 else if(h==12 && (m>=1 && m<=5) && (pirState == HIGH)) 
 {
  Serial.println("Motion DETECTED!");

  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Alarm Deactivated");
  noTone(buzzer);
  pirState == LOW;
 }
 else 
 {
  noTone(buzzer);
 }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...