Нужно сделать кнопку, чтобы выключить будильник на часах

ну я вам задание сделать школьный проект будильник с помощью Arduino, xD как вы можете видеть, я не очень хорош в этом смысле я кое-что знаю, но не все, поэтому, пожалуйста, может кто-нибудь помочь мне, я скопировал этот код откуда-то из сети, и я делаю небольшие изменения, но есть единственное, чего я не могу сделать правильно, я просто хочу добавить, когда я нажимаю кнопку, это остановить будильник с звуковой сигнал, сейчас он пищит, пока, например, я поставил будильник на 08:05 он будет звонить до 08:06, мой вопрос: как я могу сделать это, когда я нажимаю кнопку тревоги уходит , кто-то может дать мне несколько советов, я был бы очень благодарен

я скопировал исходный код отсюда: http://roboticadiy.com/how-to-make-arduino-alarm-clock/

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Установите жидкокристаллический адрес на 0x27 для отображения 16 символов и 2 строк
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <DS1302.h>
int Hour;
int Min;
int pset = 8; // кнопка для установки будильника
int phour = 9; // кнопка для часа
int pmin = 10; // кнопка для минут
int pexit = 11; // кнопка для выхода из установленного будильника
int buzzer = 6;
int h;
int m;
int buttonforset = 0; // состояние кнопки для установки будильника
int buttonforhour = 0; // состояние кнопки для часа
int buttonformin = 0;// состояние кнопки для минут
int buttonforexit = 0;// состояние кнопки для выхода из установки будильника
int activate=0;
 Time t;

// Init the DS1302
DS1302 rtc(2, 3, 4);

void setup()
{
 pinMode(pset, INPUT);
 pinMode(phour, INPUT);
 pinMode(pmin, INPUT);
 pinMode(pexit, INPUT);
 // Установите часы в режим запуска и отключите защиту от записи
 rtc.halt(false);
 rtc.writeProtect(false);

 // Setup LCD to 16x2 characters
 lcd.begin();

// Следующие строки можно закомментировать, чтобы использовать значения, уже сохраненные в DS1302
 //rtc.setDOW(СУББОТА); // Set Day-of-Week to FRIDAY
 //rtc.setTime(10, 0, 0); // Установите время 12:00:00 (формат 24 часа)
 //rtc.setDate(11, 11, 2017); // Установите дату на 6 августа 2010 года
}

void loop()
{
 if (activate == 0) {

// Время на правой верхней строке
 lcd.setCursor(0, 0);
 lcd.print("Time: ");
 lcd.setCursor(6, 0);
 lcd.print(rtc.getTimeStr());
 
 // Отображение сокращенного Дня недели в левом нижнем углу
 //lcd.setCursor(0, 1);
 //lcd.print(rtc.getDOWStr(FORMAT_SHORT));
 
 // Отображение даты в правом нижнем углу
 lcd.setCursor(0, 1);
 lcd.print("Date: ");
 lcd.setCursor(6, 1);
 lcd.print(rtc.getDateStr());
 t = rtc.getTime();
 Hour = t.hour;
 Min = t.min;
 buttonforset = digitalRead(pset);
 } // setting button pressed
 if (buttonforset == HIGH) {
 activate =1;
 lcd.clear(); }
 while(activate== 1){
 lcd.setCursor(0,0);
 lcd.print("Set Alarm");
 lcd.setCursor(0,1);
 lcd.print("Hour= ");
 lcd.setCursor(9,1);
 lcd.print("Min= ");
 buttonforhour = digitalRead(phour); // установить час для будильника
 if (buttonforhour == HIGH){
 h++;
 lcd.setCursor(5,1);
 lcd.print(h);
 if (h>23){ 
 h=0;
 lcd.clear(); }
 delay(100); 
 }
 buttonformin = digitalRead(pmin); // установить минуты для будильника
 if (buttonformin == HIGH){
 m++;
 lcd.setCursor(13,1);
 lcd.print(m);
 if (m>59){
 m=0; 
 lcd.clear();}
 delay(100); 
 }

lcd.setCursor(5,1);
 lcd.print(h);
 lcd.setCursor(13,1);
 lcd.print(m);
 buttonforexit = digitalRead(pexit); // выход из установленного режима тревоги
 if (buttonforexit == HIGH){
 activate = 0;
 lcd.clear();
 lcd.print("Postavljanje"); 
 lcd.setCursor(0,1);
 lcd.print("alarma..."); 
 delay(2000);
 lcd.clear();
   }
 }
 
 if (Hour== h && Min== m) {
 lcd.clear();
 lcd.print("Budenje...");
 tone(6,5000);
 delay(1000);
 noTone(6);}
 
}

, 👍0

Обсуждение

ну, на самом деле это не проблема, все работает хорошо, но я просто хочу добавить, когда я нажимаю кнопку, он останавливает сигнал тревоги от звукового сигнала, теперь он подает звуковой сигнал, пока, например, я не установлю сигнал тревоги на 08:05 он будет звонить до 08:06 мой вопрос в том, как я могу сделать это, когда я нажимаю кнопку, сигнал тревоги выключается, @cukoloda1234

xd да, я знаю, что я noob на этом сайте я пытался разместить его здесь, но это просто испортить он не пишет в строках, как я Arduino Ide, @cukoloda1234

вот оригинальный код https://roboticadiy.com/how-to-make-arduino-alarm-clock/, @cukoloda1234

используйте флаг, чтобы включить звуковой сигнал тревоги ... очистить флаг с таймером ... также снимите флажок при нажатии кнопки ... вот пример того, как использовать переменную флага ... https://arduinoprosto.ru/q/81738/how-can-i-break-the-loop-if-it-hasnt-finished-in-10-seconds/81739#81739, @jsotola