Таймер 4 канала
- Войдите на сайт для отправки комментариев
Ср, 07/02/2018 - 20:11
Госпада помогите! Не могу реализовать, при бездействии переход на начальный экран и уменьшение подсветки на 50%
#define KEYBOARD A0 #define irrigator_relay 9 #define irrigator_relay2 10 #define irrigator_relay3 11 #define irrigator_relay4 12 #include <EEPROM2.h> //Создаем переменные для работы с термометром byte TIn = 0; //переменная температуры воздуха //Создаем переменные для работы с Гигрометром int HumIn = 0; //переменная влажности воздуха //Объявим переменную для хранения состояния реле boolean relayStatusIrr1 = EEPROM_read_byte(53); //реле boolean relayStatusIrr2 = EEPROM_read_byte(54); //реле boolean relayStatusIrr3 = EEPROM_read_byte(55); //реле boolean relayStatusIrr4 = EEPROM_read_byte(56); //реле // подключение датчиков DHT11 #include <DHT.h> #define DHTIN 8 //определяем пин #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTIN, DHTTYPE); //LCD 20x4 I2C #include <LiquidCrystal_I2C.h> // Глифы русских букв byte yu[8] = { //Ю B10010, B10101, B10101, B11101, B10101, B10101, B10010, B00000 }; byte ii[8] = { //Ы B10001, B10001, B10001, B11101, B10101, B10101, B11101, B00000 }; byte che[8] = { //Ч B10001, B10001, B10001, B01111, B00001, B00001, B00001, B00000 }; byte pe[8] = { //П 0b11111, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b10001, 0b00000 }; byte ll[8] = { //Л 0b00111, 0b01001, 0b01001, 0b01001, 0b01001, 0b01001, 0b10001, 0b00000 }; byte u[8] = { //У B10001, B10001, B10001, B01010, B00100, B01000, B10000, B00000 }; byte i[8] = { //И B10001, B10011, B10101, B11001, B10001, B10001, B10001, B00000 }; byte be[8] = { //Б 0b11111, 0b10000, 0b10000, 0b11110, 0b10001, 0b10001, 0b11110, 0b00000 }; LiquidCrystal_I2C lcd(0x3F, 20, 4); //клавиатуры - аналоговая int button; const int BUTTON_NONE = 0; const int BUTTON_RIGHT = 5; const int BUTTON_DOWN = 4; const int BUTTON_UP = 3; const int BUTTON_LEFT = 2; const int BUTTON_SELECT = 1; byte flag = 0; //флаг былали нажата кнопка //функция считывания клавиатуры byte getPressedButton() { int buttonValue = analogRead(KEYBOARD); delay(100); //задержка для устранения дребезга if (buttonValue < 45) { return BUTTON_RIGHT; } else if (buttonValue < 200) { return BUTTON_DOWN; } else if (buttonValue < 380) { return BUTTON_UP; } else if (buttonValue < 550) { return BUTTON_LEFT; } else if (buttonValue < 760) { return BUTTON_SELECT; } return BUTTON_NONE; } byte Tday = 0; //день недели byte regim = 0; //для меню byte posic = 0; byte flagIrrManual = 0; //флаг зона 1 byte flagIrrManual2 = 0; //флаг зона 2 byte flagIrrManual3 = 0; //флаг зона 3 byte flagIrrManual4 = 0; //флаг зона 4 byte Timer = 0; //таймера 1 byte Timer2 = 0; //таймера 2 byte Timer3 = 0; //таймера 3 byte Timer4 = 0; //таймера 4 byte TstartHour = 0; //часы таймера byte TstartMinute = 0; //минуты таймера byte TstopHour = 0; //часы интервала таймера byte TstopMinute = 0; //минуты интервала таймера byte TstartHour2, TstartMinute2, TstopHour2, TstopMinute2; byte TstartHour3, TstartMinute3, TstopHour3, TstopMinute3; byte TstartHour4, TstartMinute4, TstopHour4, TstopMinute4; //ds3231 модуль часов реального времени #include <Wire.h> #include "DS3231.h" Time t; void setup() { lcd.init(); lcd.backlight(); lcd.createChar(1, yu); lcd.createChar(2, ii); lcd.createChar(3, che); lcd.createChar(4, pe); lcd.createChar(5, ll); lcd.createChar(6, u); lcd.createChar(7, i); lcd.createChar(0, be); lcd.clear(); lcd.print(" "); Wire.begin(); rtc.begin(); delay(5000); lcd.clear(); dht.begin(); //Настроим пин для управления реле pinMode(irrigator_relay, OUTPUT); digitalWrite(irrigator_relay, HIGH); pinMode(irrigator_relay2, OUTPUT); digitalWrite(irrigator_relay2, HIGH); pinMode(irrigator_relay3, OUTPUT); digitalWrite(irrigator_relay3, HIGH); pinMode(irrigator_relay4, OUTPUT); digitalWrite(irrigator_relay4, HIGH); pinMode (A0, INPUT_PULLUP);// подтягиваем питание на вход } void timeDS3231() //Обработка часов { t = rtc.getTime(); } //Обработка нажатия кнопки аналоговой void Button_read() { button = getPressedButton(); if (button > 0) flag = 1; } //счит темп воздуха в теплице void TInGet() { TIn = int(dht.readTemperature()); } //счит Влажн воздуха в теплице void HumInGet() { HumIn = int (dht.readHumidity()); } //=========== Отработка канала void Irrigation() { //1-й кнал Timer = EEPROM_read_byte(4); //включен или нет TstartHour = EEPROM_read_byte(5); TstartMinute = EEPROM_read_byte(6); TstopHour = EEPROM_read_byte(7); TstopMinute = EEPROM_read_byte(8); if (Timer == 0 && relayStatusIrr1 == HIGH) { lcd.setCursor(5, 3); lcd.print("x"); } if (relayStatusIrr1 == LOW) { lcd.setCursor(5, 3); lcd.print("P"); } if (Timer == 1 && relayStatusIrr1 == HIGH) { lcd.setCursor(5, 3); lcd.print("T"); } if (EEPROM_read_byte(53) == 1) { digitalWrite(irrigator_relay, LOW); relayStatusIrr1 = LOW; flagIrrManual = 0; } if (EEPROM_read_byte(53) == 0) { digitalWrite(irrigator_relay, HIGH); relayStatusIrr1 = HIGH; flagIrrManual = 1; } if (Timer == 1) { byte i; for (i = 0; i < 7; i++) { if ((t.dow == i + 1) && EEPROM_read_byte(24 + i) == 1) { if (t.hour == TstartHour && t.min == TstartMinute) { digitalWrite(irrigator_relay, LOW); EEPROM_write_byte(53, 1); } else if (t.hour == TstopHour && t.min == TstopMinute) { digitalWrite(irrigator_relay, HIGH); EEPROM_write_byte(53, 0); } } } } if (Timer == 0) { digitalWrite(irrigator_relay, HIGH); EEPROM_write_byte(53, 0); } //2-й канал Timer2 = EEPROM_read_byte(9); //включен или нет TstartHour2 = EEPROM_read_byte(10); TstartMinute2 = EEPROM_read_byte(11); TstopHour2 = EEPROM_read_byte(12); TstopMinute2 = EEPROM_read_byte(13); if (Timer2 == 0 && relayStatusIrr2 == HIGH) { lcd.setCursor(9, 3); lcd.print("x"); } if (relayStatusIrr2 == LOW) { lcd.setCursor(9, 3); lcd.print("P"); } if (Timer2 == 1 && relayStatusIrr2 == HIGH) { lcd.setCursor(9, 3); lcd.print("T"); } if (EEPROM_read_byte(54) == 1) { digitalWrite(irrigator_relay2, LOW); relayStatusIrr2 = LOW; flagIrrManual2 = 0; } if (EEPROM_read_byte(54) == 0) { digitalWrite(irrigator_relay2, HIGH); relayStatusIrr2 = HIGH; flagIrrManual2 = 1; } if (Timer2 == 1) { byte i; for (i = 0; i < 7; i++) { if ((t.dow == i + 1) && EEPROM_read_byte(31 + i) == 1) { if (t.hour == TstartHour2 && t.min == TstartMinute2) { digitalWrite(irrigator_relay2, LOW); EEPROM_write_byte(54, 1); } else if (t.hour == TstopHour2 && t.min == TstopMinute2) { digitalWrite(irrigator_relay2, HIGH); EEPROM_write_byte(54, 0); } } } } if (Timer2 == 0) { digitalWrite(irrigator_relay2, HIGH); EEPROM_write_byte(54, 0); } //3-й канал Timer3 = EEPROM_read_byte(14); //включен или нет TstartHour3 = EEPROM_read_byte(15); TstartMinute3 = EEPROM_read_byte(16); TstopHour3 = EEPROM_read_byte(17); TstopMinute3 = EEPROM_read_byte(18); if (Timer3 == 0 && relayStatusIrr3 == HIGH) { lcd.setCursor(13, 3); lcd.print("x"); } if (relayStatusIrr3 == LOW) { lcd.setCursor(13, 3); lcd.print("P"); } if (Timer3 == 1 && relayStatusIrr3 == HIGH) { lcd.setCursor(13, 3); lcd.print("T"); } if (EEPROM_read_byte(55) == 1) { digitalWrite(irrigator_relay3, LOW); relayStatusIrr3 = LOW; flagIrrManual3 = 0; } if (EEPROM_read_byte(55) == 0) { digitalWrite(irrigator_relay3, HIGH); relayStatusIrr3 = HIGH; flagIrrManual3 = 1; } if (Timer3 == 1) { byte i; for (i = 0; i < 7; i++) { if ((t.dow == i + 1) && EEPROM_read_byte(38 + i) == 1) { if (t.hour == TstartHour3 && t.min == TstartMinute3) { digitalWrite(irrigator_relay3, LOW); EEPROM_write_byte(55, 1); } else if (t.hour == TstopHour3 && t.min == TstopMinute3) { digitalWrite(irrigator_relay3, HIGH); EEPROM_write_byte(55, 0); } } } } if (Timer3 == 0) { digitalWrite(irrigator_relay3, HIGH); EEPROM_write_byte(55, 0); } //4-й канал Timer4 = EEPROM_read_byte(19); //включен или нет TstartHour4 = EEPROM_read_byte(20); TstartMinute4 = EEPROM_read_byte(21); TstopHour4 = EEPROM_read_byte(22); TstopMinute4 = EEPROM_read_byte(23); if (Timer4 == 0 && relayStatusIrr4 == HIGH) { lcd.setCursor(17, 3); lcd.print("x"); } if (relayStatusIrr4 == LOW) { lcd.setCursor(17, 3); lcd.print("P"); } if (Timer4 == 1 && relayStatusIrr4 == HIGH) { lcd.setCursor(17, 3); lcd.print("T"); } if (EEPROM_read_byte(56) == 1) { digitalWrite(irrigator_relay4, LOW); relayStatusIrr4 = LOW; flagIrrManual4 = 0; } if (EEPROM_read_byte(56) == 0) { digitalWrite(irrigator_relay4, HIGH); relayStatusIrr4 = HIGH; flagIrrManual4 = 1; } if (Timer4 == 1) { byte i; for (i = 0; i < 7; i++) { if ((t.dow == i + 1) && EEPROM_read_byte(45 + i) == 1) { if (t.hour == TstartHour4 && t.min == TstartMinute4) { digitalWrite(irrigator_relay4, LOW); EEPROM_write_byte(56, 1); } else if (t.hour == TstopHour4 && t.min == TstopMinute4) { digitalWrite(irrigator_relay4, HIGH); EEPROM_write_byte(56, 0); } } } } if (Timer4 == 0) { digitalWrite(irrigator_relay4, HIGH); EEPROM_write_byte(56, 0); } } void StaticButton() { Button_read(); if (button == 1 && flag == 1) { MenuSET(); } if (button == 5 && flag == 1) { TimerViewer(); } } //=========Вывод состояние таймеров (информативное окно) void TimerViewer () { lcd.setCursor(0, 3); //чистим нижнюю строчку экрана, от левой инфы lcd.print(" "); byte myArray[7] = {1, 4, 7, 10, 13, 16, 19}; // для выделения дней в которых уст. таймер byte i; do { Button_read(); delay(100); if (button == 5 && flag == 1) { regim++; flag = 0; } if (regim == 1) // { lcd.setCursor(0, 0); lcd.print("[TA\7MEP 1] - "); if (Timer == 0) lcd.print("B\2K\5 "); if (Timer == 1) lcd.print("BK\5 "); TstartHour = EEPROM_read_byte(5); TstartMinute = EEPROM_read_byte(6); TstopHour = EEPROM_read_byte(7); TstopMinute = EEPROM_read_byte(8); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour < 10) { lcd.print("0"); } lcd.print(TstartHour); lcd.print(":"); if (TstartMinute < 10) { lcd.print("0"); } lcd.print(TstartMinute); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour < 10) { lcd.print("0"); } lcd.print(TstopHour); lcd.print(":"); if (TstopMinute < 10) { lcd.print("0"); } lcd.print(TstopMinute); lcd.setCursor(0, 2); lcd.print("\4H BT CP \3T \4T C"); lcd.write(0); lcd.print(" BC"); for (i = 0; i < 7; i++) { if (EEPROM_read_byte(24 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(24 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } } if (regim == 2) // { lcd.setCursor(0, 0); lcd.print("[TA\7MEP 2] - "); if (Timer2 == 0) lcd.print("B\2K\5 "); if (Timer2 == 1) lcd.print("BK\5 "); TstartHour2 = EEPROM_read_byte(10); TstartMinute2 = EEPROM_read_byte(11); TstopHour2 = EEPROM_read_byte(12); TstopMinute2 = EEPROM_read_byte(13); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour2 < 10) { lcd.print("0"); } lcd.print(TstartHour2); lcd.print(":"); if (TstartMinute2 < 10) { lcd.print("0"); } lcd.print(TstartMinute2); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour2 < 10) { lcd.print("0"); } lcd.print(TstopHour2); lcd.print(":"); if (TstopMinute2 < 10) { lcd.print("0"); } lcd.print(TstopMinute2); lcd.setCursor(0, 2); lcd.print("\4H BT CP \3T \4T C"); lcd.write(0); lcd.print(" BC"); for (i = 0; i < 7; i++) { if (EEPROM_read_byte(31 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(31 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } } if (regim == 3) // { lcd.setCursor(0, 0); lcd.print("[TA\7MEP 3] - "); if (Timer3 == 0) lcd.print("B\2K\5 "); if (Timer3 == 1) lcd.print("BK\5 "); TstartHour3 = EEPROM_read_byte(15); TstartMinute3 = EEPROM_read_byte(16); TstopHour3 = EEPROM_read_byte(17); TstopMinute3 = EEPROM_read_byte(18); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour3 < 10) { lcd.print("0"); } lcd.print(TstartHour3); lcd.print(":"); if (TstartMinute3 < 10) { lcd.print("0"); } lcd.print(TstartMinute3); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour3 < 10) { lcd.print("0"); } lcd.print(TstopHour3); lcd.print(":"); if (TstopMinute3 < 10) { lcd.print("0"); } lcd.print(TstopMinute3); lcd.setCursor(0, 2); lcd.print("\4H BT CP \3T \4T C"); lcd.write(0); lcd.print(" BC"); for (i = 0; i < 7; i++) { if (EEPROM_read_byte(38 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(38 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } } if (regim == 4) { lcd.setCursor(0, 0); lcd.print("[TA\7MEP 4] - "); if (Timer4 == 0) { lcd.print("B\2K\5 "); } if (Timer4 == 1) { lcd.print("BK\5 "); } TstartHour4 = EEPROM_read_byte(20); TstartMinute4 = EEPROM_read_byte(21); TstopHour4 = EEPROM_read_byte(22); TstopMinute4 = EEPROM_read_byte(23); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour4 < 10) { lcd.print("0"); } lcd.print(TstartHour4); lcd.print(":"); if (TstartMinute4 < 10) { lcd.print("0"); } lcd.print(TstartMinute4); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour4 < 10) { lcd.print("0"); } lcd.print(TstopHour4); lcd.print(":"); if (TstopMinute4 < 10) { lcd.print("0"); } lcd.print(TstopMinute4); lcd.setCursor(0, 2); lcd.print("\4H BT CP \3T \4T C"); lcd.write(0); lcd.print(" BC"); for (i = 0; i < 7; i++) { if (EEPROM_read_byte(45 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(45 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } } } while (regim < 5); regim = 0; } //============Вход в Меню настроек и установок void MenuSET() { lcd.setCursor(0, 3); //чистим нижнюю строчку экрана, от левой инфы lcd.print(" "); do { Button_read(); delay(100); if (button == 1 && flag == 1) { regim++; flag = 0; } if (regim == 1) // режим Установка Времени Таймера 1 { Timer = EEPROM_read_byte(4); lcd.setCursor(0, 0); lcd.print("[1]\6CT TA\7MEP 1- "); if (Timer == 0) lcd.print("B\2K"); if (Timer == 1) lcd.print("BK "); TstartHour = EEPROM_read_byte(5); TstartMinute = EEPROM_read_byte(6); TstopHour = EEPROM_read_byte(7); TstopMinute = EEPROM_read_byte(8); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour < 10) { lcd.print("0"); } lcd.print(TstartHour); lcd.print(":"); if (TstartMinute < 10) { lcd.print("0"); } lcd.print(TstartMinute); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour < 10) { lcd.print("0"); } lcd.print(TstopHour); lcd.print(":"); if (TstopMinute < 10) { lcd.print("0"); } lcd.print(TstopMinute); lcd.setCursor(0, 2); lcd.print("\4 B C \3 \4 C B Bce +"); byte myArray[7] = {0, 2, 4, 6, 8, 10, 12}; byte i; for (i = 0; i < 7; i++) { if (EEPROM_read_byte(24 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(24 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } { lcd.setCursor(1, 3); lcd.print(" "); } { lcd.setCursor(3, 3); lcd.print(" "); } if (EEPROM_read_byte(24) == 0 or EEPROM_read_byte(25) == 0 or EEPROM_read_byte(26) == 0 or EEPROM_read_byte(27) == 0 or EEPROM_read_byte(28) == 0 or EEPROM_read_byte(29) == 0 or EEPROM_read_byte(30) == 0) { lcd.setCursor(15, 3); lcd.print(" "); } if (EEPROM_read_byte(24) == 1 && EEPROM_read_byte(25) == 1 && EEPROM_read_byte(26) == 1 && EEPROM_read_byte(27) == 1 && EEPROM_read_byte(28) == 1 && EEPROM_read_byte(29) == 1 && EEPROM_read_byte(30) == 1) { lcd.setCursor(15, 3); lcd.print(char(94)); } lcd.setCursor(17, 3); lcd.print("<->"); lcd.blink(); if (button == 5 && flag == 1) posic++; if (button == 2 && flag == 1) posic--; if (posic == 0) { lcd.setCursor(19, 0); if (button == 3 && flag == 1) { if (Timer < 1) Timer++; else Timer = 0; EEPROM_write_byte(4, Timer); } if (button == 4 && flag == 1) { if (Timer > 0) Timer--; else Timer = 1; EEPROM_write_byte(4, Timer); } } if (posic == 1) { lcd.setCursor(5, 1); if (button == 3 && flag == 1) { if (TstartHour < 23) TstartHour++; else TstartHour = 0; EEPROM_write_byte(5, TstartHour); } if (button == 4 && flag == 1) { if (TstartHour > 0) TstartHour--; else TstartHour = 23; EEPROM_write_byte(5, TstartHour); } } if (posic == 2) { lcd.setCursor(8, 1); if (button == 3 && flag == 1) { if (TstartMinute < 59) TstartMinute++; else TstartMinute = 0; EEPROM_write_byte(6, TstartMinute); } if (button == 4 && flag == 1) { if (TstartMinute > 0) TstartMinute--; else TstartMinute = 59; EEPROM_write_byte(6, TstartMinute); } } if (posic == 3) { lcd.setCursor(16, 1); if (button == 3 && flag == 1) { if (TstopHour < 23) TstopHour++; else TstopHour = 0; EEPROM_write_byte(7, TstopHour); } if (button == 4 && flag == 1) { if (TstopHour > 0) TstopHour--; else TstopHour = 23; EEPROM_write_byte(7, TstopHour); } } if (posic == 4) { lcd.setCursor(19, 1); if (button == 3 && flag == 1) { if (TstopMinute < 59) TstopMinute++; else TstopMinute = 0; EEPROM_write_byte(8, TstopMinute); } if (button == 4 && flag == 1) { if (TstopMinute > 0) TstopMinute--; else TstopMinute = 59; EEPROM_write_byte(8, TstopMinute); } } if (posic == 5) //устанавливаем дни недели для будильника "Все сразу" { lcd.setCursor(15, 2); if (button == 3 && flag == 1) { if (Tday < 1) Tday++; else Tday = 0; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(24 + i, Tday); } if (button == 4 && flag == 1) { if (Tday > 0) Tday--; else Tday = 1; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(24 + i, Tday); } } if (posic == 6) //устанавливаем будильника ПH { lcd.setCursor(0, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(24) < 1) Tday++; else Tday = 0; EEPROM_write_byte(24, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(24) > 0) Tday--; else Tday = 1; EEPROM_write_byte(24, Tday); } } if (posic == 7) //устанавливаем для будильника BT { lcd.setCursor(2, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(25) < 1) Tday++; else Tday = 0; EEPROM_write_byte(25, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(25) > 0) Tday--; else Tday = 1; EEPROM_write_byte(25, Tday); } } if (posic == 8) //устанавливаем для будильника СР { lcd.setCursor(4, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(26) < 1) Tday++; else Tday = 0; EEPROM_write_byte(26, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(26) > 0) Tday--; else Tday = 1; EEPROM_write_byte(26, Tday); } } if (posic == 9) //устанавливаем для будильника ЧТ { lcd.setCursor(6, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(27) < 1) Tday++; else Tday = 0; EEPROM_write_byte(27, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(27) > 0) Tday--; else Tday = 1; EEPROM_write_byte(27, Tday); } } if (posic == 10) //устанавливаем для будильника ПТ { lcd.setCursor(8, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(28) < 1) Tday++; else Tday = 0; EEPROM_write_byte(28, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(28) > 0) Tday--; else Tday = 1; EEPROM_write_byte(28, Tday); } } if (posic == 11) //устанавливаем для будильника СБ { lcd.setCursor(10, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(29) < 1) Tday++; else Tday = 0; EEPROM_write_byte(29, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(29) > 0) Tday--; else Tday = 1; EEPROM_write_byte(29, Tday); } } if (posic == 12) //устанавливаем для будильника ВС { lcd.setCursor(12, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(30) < 1) Tday++; else Tday = 0; EEPROM_write_byte(30, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(30) > 0) Tday--; else Tday = 1; EEPROM_write_byte(30, Tday); } } if (posic == 13) posic = 0; //возврат в начало } if (regim == 2) // режим Установка Времени Таймера 2 { Timer2 = EEPROM_read_byte(9); lcd.setCursor(0, 0); lcd.print("[2]\6CT TA\7MEP 2- "); if (Timer2 == 0) lcd.print("B\2K"); if (Timer2 == 1) lcd.print("BK "); TstartHour2 = EEPROM_read_byte(10); TstartMinute2 = EEPROM_read_byte(11); TstopHour2 = EEPROM_read_byte(12); TstopMinute2 = EEPROM_read_byte(13); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour2 < 10) { lcd.print("0"); } lcd.print(TstartHour2); lcd.print(":"); if (TstartMinute2 < 10) { lcd.print("0"); } lcd.print(TstartMinute2); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour2 < 10) { lcd.print("0"); } lcd.print(TstopHour2); lcd.print(":"); if (TstopMinute2 < 10) { lcd.print("0"); } lcd.print(TstopMinute2); lcd.setCursor(0, 2); lcd.print("\4 B C \3 \4 C B Bce +"); byte myArray[7] = {0, 2, 4, 6, 8, 10, 12}; byte i; for (i = 0; i < 7; i++) { if (EEPROM_read_byte(31 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(31 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } { lcd.setCursor(1, 3); lcd.print(" "); } { lcd.setCursor(3, 3); lcd.print(" "); } if (EEPROM_read_byte(31) == 0 or EEPROM_read_byte(32) == 0 or EEPROM_read_byte(33) == 0 or EEPROM_read_byte(34) == 0 or EEPROM_read_byte(35) == 0 or EEPROM_read_byte(36) == 0 or EEPROM_read_byte(37) == 0) { lcd.setCursor(15, 3); lcd.print(" "); } if (EEPROM_read_byte(31) == 1 && EEPROM_read_byte(32) == 1 && EEPROM_read_byte(33) == 1 && EEPROM_read_byte(34) == 1 && EEPROM_read_byte(35) == 1 && EEPROM_read_byte(36) == 1 && EEPROM_read_byte(37) == 1) { lcd.setCursor(15, 3); lcd.print(char(94)); } lcd.setCursor(17, 3); lcd.print("<->"); lcd.blink(); if (button == 5 && flag == 1) posic++; if (button == 2 && flag == 1) posic--; if (posic == 0) { lcd.setCursor(19, 0); if (button == 3 && flag == 1) { if (Timer2 < 1) Timer2++; else Timer2 = 0; EEPROM_write_byte(9, Timer2); } if (button == 4 && flag == 1) { if (Timer2 > 0) Timer2--; else Timer2 = 1; EEPROM_write_byte(9, Timer2); } } if (posic == 1) { lcd.setCursor(5, 1); if (button == 3 && flag == 1) { if (TstartHour2 < 23) TstartHour2++; else TstartHour2 = 0; EEPROM_write_byte(10, TstartHour2); } if (button == 4 && flag == 1) { if (TstartHour2 > 0) TstartHour2--; else TstartHour2 = 23; EEPROM_write_byte(10, TstartHour2); } } if (posic == 2) { lcd.setCursor(8, 1); if (button == 3 && flag == 1) { if (TstartMinute2 < 59) TstartMinute2++; else TstartMinute2 = 0; EEPROM_write_byte(11, TstartMinute2); } if (button == 4 && flag == 1) { if (TstartMinute2 > 0) TstartMinute2--; else TstartMinute2 = 59; EEPROM_write_byte(11, TstartMinute2); } } if (posic == 3) { lcd.setCursor(16, 1); if (button == 3 && flag == 1) { if (TstopHour2 < 23) TstopHour2++; else TstopHour2 = 0; EEPROM_write_byte(12, TstopHour2); } if (button == 4 && flag == 1) { if (TstopHour2 > 0) TstopHour2--; else TstopHour2 = 23; EEPROM_write_byte(12, TstopHour2); } } if (posic == 4) { lcd.setCursor(19, 1); if (button == 3 && flag == 1) { if (TstopMinute2 < 59) TstopMinute2++; else TstopMinute2 = 0; EEPROM_write_byte(13, TstopMinute2); } if (button == 4 && flag == 1) { if (TstopMinute2 > 0) TstopMinute2--; else TstopMinute2 = 59; EEPROM_write_byte(13, TstopMinute2); } } if (posic == 5) //устанавливаем дни недели для будильника "Все сразу" { lcd.setCursor(15, 2); if (button == 3 && flag == 1) { if (Tday < 1) Tday++; else Tday = 0; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(31 + i, Tday); } if (button == 4 && flag == 1) { if (Tday > 0) Tday--; else Tday = 1; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(31 + i, Tday); } } if (posic == 6) //устанавливаем будильника ПH { lcd.setCursor(0, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(31) < 1) Tday++; else Tday = 0; EEPROM_write_byte(31, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(31) > 0) Tday--; else Tday = 1; EEPROM_write_byte(31, Tday); } } if (posic == 7) //устанавливаем для будильника BT { lcd.setCursor(2, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(32) < 1) Tday++; else Tday = 0; EEPROM_write_byte(32, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(32) > 0) Tday--; else Tday = 1; EEPROM_write_byte(32, Tday); } } if (posic == 8) //устанавливаем для будильника СР { lcd.setCursor(4, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(33) < 1) Tday++; else Tday = 0; EEPROM_write_byte(33, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(33) > 0) Tday--; else Tday = 1; EEPROM_write_byte(33, Tday); } } if (posic == 9) //устанавливаем для будильника ЧТ { lcd.setCursor(6, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(34) < 1) Tday++; else Tday = 0; EEPROM_write_byte(34, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(34) > 0) Tday--; else Tday = 1; EEPROM_write_byte(34, Tday); } } if (posic == 10) //устанавливаем для будильника ПТ { lcd.setCursor(8, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(35) < 1) Tday++; else Tday = 0; EEPROM_write_byte(35, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(35) > 0) Tday--; else Tday = 1; EEPROM_write_byte(35, Tday); } } if (posic == 11) //устанавливаем для будильника СБ { lcd.setCursor(10, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(36) < 1) Tday++; else Tday = 0; EEPROM_write_byte(36, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(36) > 0) Tday--; else Tday = 1; EEPROM_write_byte(36, Tday); } } if (posic == 12) //устанавливаем для будильника ВС { lcd.setCursor(12, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(37) < 1) Tday++; else Tday = 0; EEPROM_write_byte(37, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(37) > 0) Tday--; else Tday = 1; EEPROM_write_byte(37, Tday); } } if (posic == 13) posic = 0; //возврат в начало } if (regim == 3) // режим Установка Времени Таймера 3 { Timer3 = EEPROM_read_byte(14); lcd.setCursor(0, 0); lcd.print("[3]\6CT TA\7MEP 3- "); if (Timer3 == 0) lcd.print("B\2K"); if (Timer3 == 1) lcd.print("BK "); TstartHour3 = EEPROM_read_byte(15); TstartMinute3 = EEPROM_read_byte(16); TstopHour3 = EEPROM_read_byte(17); TstopMinute3 = EEPROM_read_byte(18); lcd.setCursor(0, 1); lcd.print("BK\5="); if (TstartHour3 < 10) { lcd.print("0"); } lcd.print(TstartHour3); lcd.print(":"); if (TstartMinute3 < 10) { lcd.print("0"); } lcd.print(TstartMinute3); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour3 < 10) { lcd.print("0"); } lcd.print(TstopHour3); lcd.print(":"); if (TstopMinute3 < 10) { lcd.print("0"); } lcd.print(TstopMinute3); lcd.setCursor(0, 2); lcd.print("\4 B C \3 \4 C B Bce +"); byte myArray[7] = {0, 2, 4, 6, 8, 10, 12}; byte i; for (i = 0; i < 7; i++) { if (EEPROM_read_byte(38 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(38 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } { lcd.setCursor(1, 3); lcd.print(" "); } { lcd.setCursor(3, 3); lcd.print(" "); } if (EEPROM_read_byte(38) == 0 or EEPROM_read_byte(39) == 0 or EEPROM_read_byte(40) == 0 or EEPROM_read_byte(41) == 0 or EEPROM_read_byte(42) == 0 or EEPROM_read_byte(43) == 0 or EEPROM_read_byte(44) == 0) { lcd.setCursor(15, 3); lcd.print(" "); } if (EEPROM_read_byte(38) == 1 && EEPROM_read_byte(39) == 1 && EEPROM_read_byte(40) == 1 && EEPROM_read_byte(41) == 1 && EEPROM_read_byte(42) == 1 && EEPROM_read_byte(43) == 1 && EEPROM_read_byte(44) == 1) { lcd.setCursor(15, 3); lcd.print(char(94)); } lcd.setCursor(17, 3); lcd.print("<->"); lcd.blink(); if (button == 5 && flag == 1) posic++; if (button == 2 && flag == 1) posic--; if (posic == 0) { lcd.setCursor(19, 0); if (button == 3 && flag == 1) { if (Timer3 < 1) Timer3++; else Timer3 = 0; EEPROM_write_byte(14, Timer2); } if (button == 4 && flag == 1) { if (Timer3 > 0) Timer3--; else Timer3 = 1; EEPROM_write_byte(14, Timer3); } } if (posic == 1) { lcd.setCursor(5, 1); if (button == 3 && flag == 1) { if (TstartHour3 < 23) TstartHour3++; else TstartHour3 = 0; EEPROM_write_byte(15, TstartHour3); } if (button == 4 && flag == 1) { if (TstartHour3 > 0) TstartHour3--; else TstartHour3 = 23; EEPROM_write_byte(15, TstartHour3); } } if (posic == 2) { lcd.setCursor(8, 1); if (button == 3 && flag == 1) { if (TstartMinute3 < 59) TstartMinute3++; else TstartMinute3 = 0; EEPROM_write_byte(16, TstartMinute3); } if (button == 4 && flag == 1) { if (TstartMinute3 > 0) TstartMinute3--; else TstartMinute3 = 59; EEPROM_write_byte(16, TstartMinute3); } } if (posic == 3) { lcd.setCursor(16, 1); if (button == 3 && flag == 1) { if (TstopHour3 < 23) TstopHour3++; else TstopHour3 = 0; EEPROM_write_byte(17, TstopHour3); } if (button == 4 && flag == 1) { if (TstopHour3 > 0) TstopHour3--; else TstopHour3 = 23; EEPROM_write_byte(17, TstopHour3); } } if (posic == 4) { lcd.setCursor(19, 1); if (button == 3 && flag == 1) { if (TstopMinute3 < 59) TstopMinute3++; else TstopMinute3 = 0; EEPROM_write_byte(18, TstopMinute3); } if (button == 4 && flag == 1) { if (TstopMinute3 > 0) TstopMinute3--; else TstopMinute3 = 59; EEPROM_write_byte(18, TstopMinute3); } } if (posic == 5) //устанавливаем дни недели для будильника "Все сразу" { lcd.setCursor(15, 2); if (button == 3 && flag == 1) { if (Tday < 1) Tday++; else Tday = 0; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(38 + i, Tday); } if (button == 4 && flag == 1) { if (Tday > 0) Tday--; else Tday = 1; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(38 + i, Tday); } } if (posic == 6) //устанавливаем будильника ПH { lcd.setCursor(0, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(38) < 1) Tday++; else Tday = 0; EEPROM_write_byte(38, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(38) > 0) Tday--; else Tday = 1; EEPROM_write_byte(38, Tday); } } if (posic == 7) //устанавливаем для будильника BT { lcd.setCursor(2, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(39) < 1) Tday++; else Tday = 0; EEPROM_write_byte(39, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(39) > 0) Tday--; else Tday = 1; EEPROM_write_byte(39, Tday); } } if (posic == 8) //устанавливаем для будильника СР { lcd.setCursor(4, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(40) < 1) Tday++; else Tday = 0; EEPROM_write_byte(40, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(40) > 0) Tday--; else Tday = 1; EEPROM_write_byte(40, Tday); } } if (posic == 9) //устанавливаем для будильника ЧТ { lcd.setCursor(6, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(41) < 1) Tday++; else Tday = 0; EEPROM_write_byte(41, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(41) > 0) Tday--; else Tday = 1; EEPROM_write_byte(41, Tday); } } if (posic == 10) //устанавливаем для будильника ПТ { lcd.setCursor(8, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(42) < 1) Tday++; else Tday = 0; EEPROM_write_byte(42, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(42) > 0) Tday--; else Tday = 1; EEPROM_write_byte(42, Tday); } } if (posic == 11) //устанавливаем для будильника СБ { lcd.setCursor(10, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(43) < 1) Tday++; else Tday = 0; EEPROM_write_byte(43, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(43) > 0) Tday--; else Tday = 1; EEPROM_write_byte(43, Tday); } } if (posic == 12) //устанавливаем для будильника ВС { lcd.setCursor(12, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(44) < 1) Tday++; else Tday = 0; EEPROM_write_byte(44, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(44) > 0) Tday--; else Tday = 1; EEPROM_write_byte(44, Tday); } } if (posic == 13) posic = 0; //возврат в начало } if (regim == 4) // режим Установка Времени Таймера 4 { Timer4 = EEPROM_read_byte(19); lcd.setCursor(0, 0); lcd.print("[4]\6CT TA\7MEP 4- "); if (Timer4 == 0) lcd.print("B\2K"); if (Timer4 == 1) lcd.print("BK "); TstartHour4 = EEPROM_read_byte(20); TstartMinute4 = EEPROM_read_byte(21); TstopHour4 = EEPROM_read_byte(22); TstopMinute4 = EEPROM_read_byte(23); // Button_read(); //читаем кнопки // проверяем нажата ли кнопка lcd.setCursor(0, 1); lcd.print("BK\5="); //lcd.setCursor(4,1); if (TstartHour4 < 10) { lcd.print("0"); } lcd.print(TstartHour4); lcd.print(":"); if (TstartMinute4 < 10) { lcd.print("0"); } lcd.print(TstartMinute4); lcd.print(" "); lcd.setCursor(10, 1); lcd.print("B\2K\5="); lcd.setCursor(15, 1); if (TstopHour4 < 10) { lcd.print("0"); } lcd.print(TstopHour4); lcd.print(":"); if (TstopMinute4 < 10) { lcd.print("0"); } lcd.print(TstopMinute4); lcd.setCursor(0, 2); lcd.print("\4 B C \3 \4 C B Bce +"); byte myArray[7] = {0, 2, 4, 6, 8, 10, 12}; byte i; for (i = 0; i < 7; i++) { if (EEPROM_read_byte(45 + i) == 1) { lcd.setCursor(myArray[i], 3); lcd.print(char(94)); } if (EEPROM_read_byte(45 + i) == 0) { lcd.setCursor(myArray[i], 3); lcd.print(" "); } } { lcd.setCursor(1, 3); lcd.print(" "); } { lcd.setCursor(3, 3); lcd.print(" "); } if (EEPROM_read_byte(45) == 0 or EEPROM_read_byte(46) == 0 or EEPROM_read_byte(47) == 0 or EEPROM_read_byte(48) == 0 or EEPROM_read_byte(49) == 0 or EEPROM_read_byte(50) == 0 or EEPROM_read_byte(51) == 0) { lcd.setCursor(15, 3); lcd.print(" "); } if (EEPROM_read_byte(45) == 1 && EEPROM_read_byte(46) == 1 && EEPROM_read_byte(47) == 1 && EEPROM_read_byte(48) == 1 && EEPROM_read_byte(49) == 1 && EEPROM_read_byte(50) == 1 && EEPROM_read_byte(51) == 1) { lcd.setCursor(15, 3); lcd.print(char(94)); } lcd.setCursor(17, 3); lcd.print("<->"); lcd.blink(); if (button == 5 && flag == 1) posic++; if (button == 2 && flag == 1) posic--; if (posic == 0) { lcd.setCursor(19, 0); if (button == 3 && flag == 1) { if (Timer4 < 1) Timer4++; else Timer4 = 0; EEPROM_write_byte(19, Timer4); } if (button == 4 && flag == 1) { if (Timer4 > 0) Timer4--; else Timer4 = 1; EEPROM_write_byte(19, Timer4); } } if (posic == 1) { lcd.setCursor(5, 1); if (button == 3 && flag == 1) { if (TstartHour4 < 23) TstartHour4++; else TstartHour4 = 0; EEPROM_write_byte(20, TstartHour4); } if (button == 4 && flag == 1) { if (TstartHour4 > 0) TstartHour4--; else TstartHour4 = 23; EEPROM_write_byte(20, TstartHour); } } if (posic == 2) { lcd.setCursor(8, 1); if (button == 3 && flag == 1) { if (TstartMinute4 < 59) TstartMinute4++; else TstartMinute4 = 0; EEPROM_write_byte(21, TstartMinute4); } if (button == 4 && flag == 1) { if (TstartMinute4 > 0) TstartMinute4--; else TstartMinute4 = 59; EEPROM_write_byte(21, TstartMinute4); } } if (posic == 3) { lcd.setCursor(16, 1); if (button == 3 && flag == 1) { if (TstopHour4 < 23) TstopHour4++; else TstopHour4 = 0; EEPROM_write_byte(22, TstopHour4); } if (button == 4 && flag == 1) { if (TstopHour4 > 0) TstopHour4--; else TstopHour4 = 23; EEPROM_write_byte(22, TstopHour4); } } if (posic == 4) { lcd.setCursor(19, 1); if (button == 3 && flag == 1) { if (TstopMinute4 < 59) TstopMinute4++; else TstopMinute4 = 0; EEPROM_write_byte(23, TstopMinute4); } if (button == 4 && flag == 1) { if (TstopMinute4 > 0) TstopMinute4--; else TstopMinute4 = 59; EEPROM_write_byte(23, TstopMinute4); } } if (posic == 5) //устанавливаем дни недели для будильника "Все сразу" { lcd.setCursor(15, 2); if (button == 3 && flag == 1) { if (Tday < 1) Tday++; else Tday = 0; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(45 + i, Tday); } if (button == 4 && flag == 1) { if (Tday > 0) Tday--; else Tday = 1; byte i; for (i = 0; i < 7; i++) EEPROM_write_byte(45 + i, Tday); } } if (posic == 6) //устанавливаем будильника ПH { lcd.setCursor(0, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(45) < 1) Tday++; else Tday = 0; EEPROM_write_byte(45, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(45) > 0) Tday--; else Tday = 1; EEPROM_write_byte(45, Tday); } } if (posic == 7) //устанавливаем для будильника BT { lcd.setCursor(2, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(46) < 1) Tday++; else Tday = 0; EEPROM_write_byte(46, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(46) > 0) Tday--; else Tday = 1; EEPROM_write_byte(46, Tday); } } if (posic == 8) //устанавливаем для будильника СР { lcd.setCursor(4, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(47) < 1) Tday++; else Tday = 0; EEPROM_write_byte(47, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(47) > 0) Tday--; else Tday = 1; EEPROM_write_byte(47, Tday); } } if (posic == 9) //устанавливаем для будильника ЧТ { lcd.setCursor(6, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(48) < 1) Tday++; else Tday = 0; EEPROM_write_byte(48, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(48) > 0) Tday--; else Tday = 1; EEPROM_write_byte(48, Tday); } } if (posic == 10) //устанавливаем для будильника ПТ { lcd.setCursor(8, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(49) < 1) Tday++; else Tday = 0; EEPROM_write_byte(49, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(49) > 0) Tday--; else Tday = 1; EEPROM_write_byte(49, Tday); } } if (posic == 11) //устанавливаем для будильника СБ { lcd.setCursor(10, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(50) < 1) Tday++; else Tday = 0; EEPROM_write_byte(50, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(50) > 0) Tday--; else Tday = 1; EEPROM_write_byte(50, Tday); } } if (posic == 12) //устанавливаем для будильника ВС { lcd.setCursor(12, 2); if (button == 3 && flag == 1) { if (EEPROM_read_byte(51) < 1) Tday++; else Tday = 0; EEPROM_write_byte(51, Tday); } if (button == 4 && flag == 1) { if (EEPROM_read_byte(51) > 0) Tday--; else Tday = 1; EEPROM_write_byte(51, Tday); } } if (posic == 13) posic = 0; //возврат в начало } if (regim == 5) //Режим установки часов { lcd.setCursor(0, 0); lcd.print("[5]\6CT \3ACOB "); lcd.setCursor(0, 1); if (t.date < 10) { lcd.print("0"); } lcd.print(t.date); lcd.print("/"); if (t.mon < 10) { lcd.print("0"); } lcd.print(t.mon); lcd.print("/"); lcd.print(t.year); lcd.print(" "); if (t.dow == 1) lcd.print("\4H "); if (t.dow == 2) lcd.print("BT "); if (t.dow == 3) lcd.print("CP "); if (t.dow == 4) lcd.print("\3T "); if (t.dow == 5) lcd.print("\4T "); if (t.dow == 6) { lcd.print("C"); lcd.write(0); lcd.print(" "); } if (t.dow == 7) lcd.print("BC "); lcd.setCursor(0, 2); if (t.hour < 10) { lcd.print("0"); } lcd.print(t.hour); lcd.print(":"); if (t.min < 10) { lcd.print("0"); } lcd.print(t.min); lcd.print(":"); if (t.sec < 10) { lcd.print("0"); } lcd.print(t.sec); lcd.setCursor(8, 2); lcd.print(" + "); lcd.setCursor(0, 3); lcd.print("MEH\1 <->"); lcd.blink(); if (button == 5 && flag == 1) posic++; if (button == 2 && flag == 1) posic--; if (posic == 0) { lcd.setCursor(1, 1); if (button == 3 && flag == 1) { if (t.date < 31) t.date++; else t.date = 0; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } if (button == 4 && flag == 1) { if (t.date > 1) t.date--; else t.date = 31; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } } if (posic == 1) { lcd.setCursor(4, 1); if (button == 3 && flag == 1) { if (t.mon < 12) t.mon++; else t.mon = 1; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } if (button == 4 && flag == 1) { if (t.mon > 1) t.mon--; else t.mon = 12; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } } if (posic == 2) { lcd.setCursor(9, 1); if (button == 3 && flag == 1) { if (t.year < 2100) t.year++; else t.year = 2000; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } if (button == 4 && flag == 1) { if (t.year > 2000) t.year--; else t.year = 2100; rtc.setDate(t.date, t.mon, t.year); timeDS3231(); } } if (posic == 3) { lcd.setCursor(13, 1); if (button == 3 && flag == 1) { if (t.dow < 7) t.dow++; else t.dow = 1; rtc.setDOW(t.dow); timeDS3231(); } if (button == 4 && flag == 1) { if (t.dow > 1) t.dow--; else t.dow = 7; rtc.setDOW(t.dow); timeDS3231(); } } if (posic == 4) { lcd.setCursor(1, 2); if (button == 3 && flag == 1) { if (t.hour < 23) t.hour++; else t.hour = 0; rtc.setTime(t.hour, t.min, t.sec); timeDS3231(); } if (button == 4 && flag == 1) { if (t.hour > 0) t.hour--; else t.hour = 23; rtc.setTime(t.hour, t.min, t.sec); timeDS3231(); } } if (posic == 5) { lcd.setCursor(4, 2); if (button == 3 && flag == 1) { if (t.min < 59) t.min++; else t.min = 0; rtc.setTime(t.hour, t.min, t.sec); timeDS3231(); } if (button == 4 && flag == 1) { if (t.min > 0) t.min--; else t.min = 59; rtc.setTime(t.hour, t.min, t.sec); timeDS3231(); } } if (posic == 6) posic = 0; } } while (regim < 6); ////////////////////// lcd.clear(); lcd.noBlink(); regim = 0; posic = 0; } void TimePrint() { lcd.setCursor(0, 0); if (t.dow == 1) lcd.print("\4H "); if (t.dow == 2) lcd.print("BT "); if (t.dow == 3) lcd.print("CP "); if (t.dow == 4) lcd.print("\3T "); if (t.dow == 5) lcd.print("\4T "); if (t.dow == 6) { lcd.print("C"); lcd.write(0); lcd.print(" "); } if (t.dow == 7) lcd.print(" BC "); if (t.hour < 10) lcd.print('0'); lcd.print(t.hour, DEC); lcd.print(':'); if (t.min < 10) lcd.print('0'); lcd.print(t.min, DEC); // lcd.print(":"); // if (t.sec < 10) lcd.print('0'); // lcd.print(t.sec, DEC); lcd.print(" "); if (t.date < 10) lcd.print('0'); lcd.print(t.date, DEC); lcd.print("."); if (t.mon < 10) lcd.print('0'); lcd.print(t.mon, DEC); lcd.print("."); // if (t.year < 10) lcd.print('0'); lcd.print(t.year, DEC); lcd.print(" "); } //=========== Обработки печати и вывода на дисплейчик (Влажности воздуха, температуры воздуха) void printDin() { lcd.setCursor(7, 1); lcd.print("H%="); if (HumIn < 10) lcd.print('0'); lcd.print(int(HumIn)); lcd.print(" "); lcd.setCursor(0, 1); lcd.print(" t"); lcd.print((char)223); lcd.print("="); if (TIn < 10) lcd.print('0'); lcd.print(int(TIn)); lcd.print(" "); } //=========== Обработки печати и вывода на дисплейчик СТАТИКИ void printStat () { lcd.setCursor(13, 1); lcd.print("T.\4O\5>>"); lcd.setCursor(0, 2); lcd.print("\4O\5 1 2 3 4 "); lcd.setCursor(0, 3); lcd.print(" ["); lcd.setCursor(6, 3); lcd.print("] "); lcd.setCursor(8, 3); lcd.print("["); lcd.setCursor(10, 3); lcd.print("] "); lcd.setCursor(12, 3); lcd.print("["); lcd.setCursor(14, 3); lcd.print("] "); lcd.setCursor(16, 3); lcd.print("["); lcd.setCursor(18, 3); lcd.print("] "); } void loop() { timeDS3231(); TInGet(); HumInGet(); Irrigation(); StaticButton(); TimePrint(); printDin(); printStat(); }
напишите простой пример для дисплея и одной кнопки и на нём отрабатывайте вашу проблему.
тогда и совет могут дать.
простыню чужого кода более 2000 строк никто смотреть не будет.