2017-10-25 4 views
0

Das Hauptziel dieser Frage besteht darin, zu wissen, wie die Summeraktion gestoppt wird, sobald der Türsensor geöffnet wird (LOW). (Ermitteln der ersten Öffnung der Türsensor nach dem Alarm zu summen)So stoppen Sie den Summer, sobald der Türsensor geöffnet wird

Aber mit dem Code, den ich schrieb, wenn der Summer klingelt und ich den Türsensor öffnen, wird es aufhören, aber sobald ich es zurückstellen, wird es läute weiter.

void alarm1() //E.g. This is the first alarm 
{ 
    state = digitalRead(sensor); 

    if(Hor == 18 && (Min == 13 || Min == 14) && state == LOW) //Comparing the current time with the Alarm time 
    { 
    Buzzer(); 

    lcd.clear(); 

    lcd.print("1st Alarm ON"); 

    lcd.setCursor(0,1); 

    lcd.print("Morning Medicine"); 

    } 
    else 
    {   //Once user open the door sensor, the alarm will stop buzzing 
    noTone(buz); 
    } 
    delay(200); 
} 

Antwort

0

Es wird ziemlich einfach, wenn Sie mehr als eine Alarmzeit haben. Dann können Sie einfach eine Warteschlange erstellen und auf den nächsten Alarm warten.

Solange Sie nur einen Alarm haben, müssen Sie sicherstellen, dass Sie ihn nur einmal pro 24 Stunden auslösen. Zum Beispiel, indem Sie die Zeit bis auf Millisekunden überprüfen, sodass es nicht möglich ist, die Tür innerhalb der Alarmzeit zu schließen.

Es gibt viele Möglichkeiten. Denk nur darüber nach. Sobald Sie entschieden haben, was zu tun ist, versuchen Sie es zu implementieren, und wenn Sie scheitern, kommen Sie hier zurück und präsentieren Sie Ihren gescheiterten Versuch

Verwandte Themen