Подскажите пожалуйста, как можно сделать чтобы при окончание таймера возвращалось время которое мы ввели кнопками. Вот программа рабочая, но тут время обнуляется, а нужно чтобы таймер работал циклично, пока не нажата кнопка выхода из цикла Код (Text): #include <LiquidCrystal.h> //Libreria del display LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Инициализировать библиотеку с числом контактов, используемых int buzzer = 13; //Alarma int ahoras = 0; //Переменная будет отображаться на ЖК-дисплее horas int aminutos = 0; //Переменная будет отображаться на ЖК-дисплее minutos int asegundos = 0; //Переменная будет отображаться на ЖК-дисплее segundos int segundostotal = 0; //полное время int msg= 0; //Баррера для приветствия int offhoras = 0; //Переменная будет отображаться на ЖК-дисплее horas int offminutos = 0; //Переменная будет отображаться на ЖК-дисплее minutos int offsegundos = 0; int offsegundostotal = 0; int start = A0; //кнопка arranque int empieza = 1024; // Переменная кнопка хранения Старт int buth = A5; //кнопка Horas int butm = A4; //кнопка Minutos int mode = A3; //кнопка on/off int varbuth = 0; //Переменная для хранения значения кнопки buth int varbutm = 0; //Переменная для хранения значения кнопки minutos int varbuts = 0; //Переменная для хранения значения кнопки segundos int offbuth=0; //Переменная для хранения значения кнопки offbuth int offbutm=0; //Переменная для хранения значения кнопки offbutm int offbust=0; //Переменная для хранения значения кнопки offbust int a=1024; void setup() { lcd.begin(16, 2); // Мы задать количество строк и столбцов ЖК-дисплее. lcd.print("Loading"); delay(500); lcd.print("."); delay(500); lcd.print("."); delay(1000); lcd.clear(); pinMode(buzzer, OUTPUT); pinMode(buth, INPUT); pinMode(butm, INPUT); pinMode(mode, INPUT); pinMode(start, INPUT); msg = 0; empieza = 1024; varbuth = 1; varbutm = 1; varbuts = 1; offbuth=1; offbutm=1; offbust=1; a=1024; } void loop() { do { varbuth = analogRead(buth); // horas varbutm = analogRead(butm); // minutos if(varbuth == 0) { ahoras = ahoras + 1 ; delay(250); } if(varbutm == 0) { aminutos = aminutos + 1; delay(250); } lcd.setCursor(0,0); lcd.print("Setting the time"); lcd.setCursor(5,1); if (ahoras < 10) lcd.print("0"); lcd.print(ahoras); lcd.print(":"); if (aminutos < 10) lcd.print("0"); lcd.print(aminutos); lcd.setCursor(11,1); /////// lcd.print("hh:mm"); /////// lcd.setCursor(0,1); /////// lcd.print("on"); arranque. a=analogRead(mode); } while(a != 0); //////////////////////////////////////////////////////// do { offbuth = analogRead(buth); // horas offbutm = analogRead(butm); // minutos if(offbuth == 0) { offhoras = offhoras + 1 ; delay(250); } if(offbutm == 0) { offminutos = offminutos + 1; delay(250); } lcd.setCursor(0,0); lcd.print("Setting the time"); lcd.setCursor(5,1); if (offhoras < 10) lcd.print("0"); lcd.print(offhoras); lcd.print(":"); if (offminutos < 10) lcd.print("0"); lcd.print(offminutos); lcd.setCursor(0,1); lcd.print("off"); empieza =analogRead(start); if (empieza == 0) { segundostotal = asegundos + (aminutos * 60) + (ahoras * 60 * 60); } } while(empieza != 0); while(1) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// while (segundostotal > 0) { delay (1000); segundostotal--; ahoras = ((segundostotal / 60)/ 60); aminutos = (segundostotal / 60) % 60; asegundos = segundostotal % 60; lcd.setCursor(0,0); lcd.print("Track of time"); lcd.setCursor(5,1); if (ahoras < 10) lcd.print("0"); lcd.print(ahoras); lcd.print(":"); if (aminutos < 10) lcd.print("0"); lcd.print(aminutos); lcd.setCursor(0,1); /////// lcd.print("on"); // lcd.print(":"); // if (asegundos < 10) lcd.print("0"); // lcd.print(asegundos); if (segundostotal==0) { offsegundostotal = offsegundos + (offminutos * 60) + (offhoras * 60 * 60); while (offsegundostotal > 0) { delay (1000); offsegundostotal--; offhoras = ((offsegundostotal / 60)/ 60); offminutos = (offsegundostotal / 60) % 60; offsegundos = offsegundostotal % 60; lcd.setCursor(0,0); lcd.print("Track of time"); lcd.setCursor(5,1); if (offhoras < 10) lcd.print("0"); lcd.print(offhoras); lcd.print(":"); if (offminutos < 10) lcd.print("0"); lcd.print(offminutos); lcd.setCursor(0,1); lcd.print("off"); } } } } }
Код (Text): #include <LiquidCrystal.h> //Libreria del display LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Инициализировать библиотеку с числом контактов, используемых int buzzer = 13; //Alarma int ahoras = 0; //Переменная будет отображаться на ЖК-дисплее horas int aminutos = 0; //Переменная будет отображаться на ЖК-дисплее minutos int asegundos = 0; //Переменная будет отображаться на ЖК-дисплее segundos int segundostotal = 0; //полное время int msg= 0; //Баррера для приветствия int offhoras = 0; //Переменная будет отображаться на ЖК-дисплее horas int offminutos = 0; //Переменная будет отображаться на ЖК-дисплее minutos int offsegundos = 0; int offsegundostotal = 0; int start = A0; //кнопка arranque int empieza = 1024; // Переменная кнопка хранения Старт int buth = A5; //кнопка Horas int butm = A4; //кнопка Minutos int mode = A3; //кнопка on/off int varbuth = 0; //Переменная для хранения значения кнопки buth int varbutm = 0; //Переменная для хранения значения кнопки minutos int varbuts = 0; //Переменная для хранения значения кнопки segundos int offbuth=0; //Переменная для хранения значения кнопки offbuth int offbutm=0; //Переменная для хранения значения кнопки offbutm int offbust=0; //Переменная для хранения значения кнопки offbust int a=1024; void setup() { lcd.begin(16, 2); // Мы задать количество строк и столбцов ЖК-дисплее. lcd.print("Loading"); delay(500); lcd.print("."); delay(500); lcd.print("."); delay(1000); lcd.clear(); pinMode(buzzer, OUTPUT); pinMode(buth, INPUT); pinMode(butm, INPUT); pinMode(mode, INPUT); pinMode(start, INPUT); msg = 0; empieza = 1024; varbuth = 1; varbutm = 1; varbuts = 1; offbuth=1; offbutm=1; offbust=1; a=1024; } void loop() { do { varbuth = analogRead(buth); // horas varbutm = analogRead(butm); // minutos if(varbuth == 0) { ahoras = ahoras + 1 ; delay(250); } if(varbutm == 0) { aminutos = aminutos + 1; delay(250); } lcd.setCursor(0,0); lcd.print("Setting the time"); lcd.setCursor(5,1); if (ahoras < 10) lcd.print("0"); lcd.print(ahoras); lcd.print(":"); if (aminutos < 10) lcd.print("0"); lcd.print(aminutos); lcd.setCursor(11,1); /////// lcd.print("hh:mm"); /////// lcd.setCursor(0,1); /////// lcd.print("on"); arranque. a=analogRead(mode); } while(a != 0); //////////////////////////////////////////////////////// do { offbuth = analogRead(buth); // horas offbutm = analogRead(butm); // minutos if(offbuth == 0) { offhoras = offhoras + 1 ; delay(250); } if(offbutm == 0) { offminutos = offminutos + 1; delay(250); } lcd.setCursor(0,0); lcd.print("Setting the time"); lcd.setCursor(5,1); if (offhoras < 10) lcd.print("0"); lcd.print(offhoras); lcd.print(":"); if (offminutos < 10) lcd.print("0"); lcd.print(offminutos); lcd.setCursor(0,1); lcd.print("off"); empieza =analogRead(start); if (empieza == 0) { segundostotal = asegundos + (aminutos * 60) + (ahoras * 60 * 60); } } while(empieza != 0); while(1) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// while (segundostotal > 0) { delay (1000); segundostotal--; ahoras = ((segundostotal / 60)/ 60); aminutos = (segundostotal / 60) % 60; asegundos = segundostotal % 60; lcd.setCursor(0,0); lcd.print("Track of time"); lcd.setCursor(5,1); if (ahoras < 10) lcd.print("0"); lcd.print(ahoras); lcd.print(":"); if (aminutos < 10) lcd.print("0"); lcd.print(aminutos); lcd.setCursor(0,1); /////// lcd.print("on"); // lcd.print(":"); // if (asegundos < 10) lcd.print("0"); // lcd.print(asegundos); if (segundostotal==0) { offsegundostotal = offsegundos + (offminutos * 60) + (offhoras * 60 * 60); while (offsegundostotal > 0) { delay (1000); offsegundostotal--; offhoras = ((offsegundostotal / 60)/ 60); offminutos = (offsegundostotal / 60) % 60; offsegundos = offsegundostotal % 60; lcd.setCursor(0,0); lcd.print("Track of time"); lcd.setCursor(5,1); if (offhoras < 10) lcd.print("0"); lcd.print(offhoras); lcd.print(":"); if (offminutos < 10) lcd.print("0"); lcd.print(offminutos); lcd.setCursor(0,1); lcd.print("off"); } } } } } что-то похожее между началом и оконцовкой кода ,ну так вверху редактора есть инструмент как "код" 6 с права!это не си!
Подсказка: для хранения данных используются переменные Заведи переменную, перед while(1) скинь в нее значение, после восстанавливай