Автополив теплицы

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Представляю на Ваш суд свое твоерение.

автополив для теплицы.

Работает в нескольких режимах:

Полив - по датчику, влажности, по недельному таймеру, по кнопке (принудительных);

Проветривание - по датчику температуры, принудительно.

Состав:

1.Arduino Uno 

Блок реле на 4 каналов - управляют нагрузкам (пока использованы 3)
Датчики Температур DHT и DS1820
LCD I2C 2004А (не русифицированный) :-(((

Часы реального времени DS3231

мосфет IRFZ44n для управления питанием датчика влажности.

Кнопки нормально разомкнутые для ручного управления ардуиной
Датчик влажности почвы (переделанный из заводского, сделал щупы из шампура). такой http://www.aliexpress.com/snapshot/6613616082.html?orderId=66828459605327
Электро магнитные клапана 12в для автополива такой http://www.aliexpress.com/snapshot/6613616072.html?orderId=66828459635327
Актуаторы для спутниковых антенн - ими открываются и закрываться форточки для проветривания и поддержания температуры внутри теплицы.
2000 л еврокубы дляводы.

 


/* Автополив v2.1 Рус
Sergey Samokish Sergey_nevinka@mail.ru
Полив: - по таймеру недельному
       - вручную с кнопки
       - по датчику влажности земли
Проветривание: - по датчику температуры в теплице
               - вручную с кнопки
Адреса в EEPROM
EEPROM 0 Минимальное значение температуры актуатора
EEPROM 1 Максимальное значение темп актуатора
 1 линия полива
EEPROM 2 Минимальное значение влажности земли
EEPROM 3 Максимальное значение влажности земли

EEPROM 4 1/0 включение отключение полива (0=off / 1=on)
EEPROM 5 стоп час полива
EEPROM 6 стоп мин полива
EEPROM 7 старт час полива
EEPROM 8 старт минута полива

///дни недели для таймера вкл и или выкл в конкретный день
EEPROM 10  Пн
EEPROM 11  Вт
EEPROM 12  Ср
EEPROM 13  Чт
EEPROM 14  Пт
EEPROM 15  Сб
EEPROM 16  Вс
EEPROM 20 Сстояние полива вкл/выкл для востонавления после сбоя питания
EEPROM 21 Сстояние Актуатора вкл/выкл для востонавления после сбоя питания !!!!ЕСЛИ не работает датчик температуры!!! если работает то он и так откроет вентиляцию

*/
#define HumTerraPower 9                 //пин для питания датчика влажности (2) в скобках контакты разьема реле MP701 от Dessy :-)
#define open_actuator 10                  //пин открытия актуатора (1)
#define close_actuator 13                 //пин закрытия актуатора (4)
#define irrigator_relay 12                //пин включения полива   (3)
#include <EEPROM2.h>
//Создаем переменные для работы с термометром
int TINMin=0;                             //переменная Min температуры актуатора
int TINMax=0;                             // переменная Max температуры актуатора
int TIn=0;                              //переменная температуры воздуха в теплице
//Создаем переменные для работы с Гигрометром
int HumTerraINMin=0;                     //переменная Min влажность земли
int HumTerraINMax=0;                     // переменная Max влажность земли
int HumTerraTmp=0;                           // переменная промежуточной влажности земли 
int HumTerra=0;                          // переменная текущей влажности земли  
int HumIn=0;                            //переменная влажности воздуха в теплице

//Объявим переменную для хранения состояния реле
boolean relayStatusIrr=LOW; //реле полива
boolean relayStatusActuator=LOW; //реле актуатора

//============================ подключение датчиков DHT11
#include <DHT.h>
#define DHTIN 8 //определяем пин
#define DHTTYPE DHT11     // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTIN, DHTTYPE);

//==================== ========LCD 200x4 I2C
#include <LiquidCrystal_I2C.h>           //используем LCD i2c
// Глифы русских букв 
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 ce[8] = {  //Ц
        0b10010,
        0b10010,
        0b10010,
        0b10010,
        0b10010,
        0b10010,
        0b11111,
        0b00001
};
*/
byte be[8] = { //Б
        0b11111,
        0b10000,
        0b10000,
        0b11110,
        0b10001,
        0b10001,
        0b11110,
        0b00000
};       




LiquidCrystal_I2C lcd(0x27,20,4); // Задаем адрес и размерность дисплея.

//=============================задаем работу клавиатуры - цифровая
// задаем константы кнопок и присваиваем им пины
const int button_MENU = 3;
const int button_UP = 4; 
const int button_DOWN = 5;
const int button_LEFT = 6; 
const int button_RIGHT = 7;
// переменные для отработки реакции на кнопки
int MENUBtn = 1;        
int UPBtn = 1;
int DOWNBtn = 1;
int LEFTBtn = 1;
int RIGHTBtn = 1;
int Tday=0; //день недели
int regim=0; //для меню
int posic=0;
int flag=0; //флаг былали нажата кнопка
int tHumTerra=0; //флаг интервала включения измерения влажности почвы
int flagActManual=0;//флаг ручного управления Актуатором
int flagIrrManual=0;//флаг ручного управления поливом
int Timer=0; //переменная таймера
byte TstartHour=0; //часы таймера
byte TstartMinute=0; //минуты таймера
byte TstopHour=0; //часы интервала таймера
byte TstopMinute=0; //минуты интервала таймера

//ds3231 модуль часов реального времени
#include <Wire.h>
#include "DS3231.h" //модифицированная отсюда: http://arduino.ru/forum/programmirovanie/chasy-i-arduino#comment-112470
DS3231  rtc(SDA, SCL);
// Init a Time-data structure
Time  t; 

void setup() 
   {
         lcd.init();                          // Инициализация lcd
         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("  ABTO\4O\5\7B v.2.1 P\6"); //почемуто выводятся левые знаки в начале строки ((
         Wire.begin(); // Shield I2C pins connect to alt I2C bus on Arduino
         rtc.begin();//новое  
//задаем часам первоначальное время
   
  /* The following lines can be uncommented to set the date and time
     rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
     rtc.setTime(22,59, 0);     // Set the time to 12:00:00 (24hr format)
     rtc.setDate(18, 6, 2015);   // Set the date to January 1st, 2014  */
        lcd.setCursor(0, 2);
        t = rtc.getTime();
        // Send date
        if (t.date<10) lcd.print("0");
        lcd.print(t.date);
        lcd.print(" ");
        lcd.print(rtc.getMonthStr());
        lcd.print(" ");
        lcd.print(t.year);
        lcd.setCursor(0,3);
          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);}
          if (t.dow==7) lcd.print("BC");                                        
        lcd.print(" ");
        // Send time
        lcd.println(rtc.getTimeStr());
        lcd.print("    ");
        lcd.setCursor(0,1);
        delay(5000);
        lcd.clear();
        
        dht.begin(); //инициализация датчика влажности и температуры
  
//Настроим пин для управления реле
  pinMode(open_actuator,OUTPUT);
  digitalWrite(open_actuator,LOW);
  pinMode(close_actuator,OUTPUT);
  digitalWrite(close_actuator,LOW);
  pinMode(irrigator_relay,OUTPUT);
  digitalWrite(irrigator_relay,LOW);
  pinMode (HumTerraPower,OUTPUT);
  digitalWrite (HumTerraPower,LOW);
//Инициализируем клавиатуру
 pinMode(button_MENU, INPUT);
 digitalWrite(button_MENU, HIGH);
 pinMode(button_UP, INPUT);
 digitalWrite(button_UP, HIGH);
 pinMode(button_DOWN, INPUT);
 digitalWrite(button_DOWN, HIGH);
 pinMode(button_LEFT,INPUT);
 digitalWrite(button_LEFT, HIGH);
 pinMode(button_RIGHT, INPUT);
 digitalWrite(button_RIGHT, HIGH);
}

void timeDS3231() //=========== Обработка часов
{
  //читаем время из часов DS3231
  t = rtc.getTime(); 
}
//========== Обработка нажатия кнопки
void Button_read()
  {
    MENUBtn =  int (1-digitalRead(button_MENU)); //запоминаем значение кнопки
    UPBtn =    int (1-digitalRead(button_UP)); //запоминаем значение кнопки
    DOWNBtn  = int (1-digitalRead(button_DOWN)); //запоминаем значение кнопки
    LEFTBtn =  int (1-digitalRead(button_LEFT)); //запоминаем значение кнопки
    RIGHTBtn = int (1-digitalRead(button_RIGHT)); //запоминаем значение кнопки
   if ((MENUBtn==LOW or UPBtn==LOW or DOWNBtn==LOW or LEFTBtn==LOW or RIGHTBtn==LOW) && flag==0) flag=1; //Устанавливаем флаг нажатия кнопки, для 100% антидребезга
   if ((MENUBtn==HIGH && UPBtn==HIGH && DOWNBtn==HIGH && LEFTBtn==HIGH && RIGHTBtn==HIGH) && flag==1) flag=0;// Сбрасываем флаг, если кнопки не нажимались
}

//========== считываем температуру воздуха в теплице
void TInGet()
{
  TIn = int(dht.readTemperature()); 
}
//========== считываем Влажность воздуха в теплице
void HumInGet()
{
  HumIn = int (dht.readHumidity());
}
//========== Считывание Влажности почвы
void HumTerraGet()
   {
    if (EEPROM_read_byte(4)==0)                 //Если не установен флаг таймера в меню то измеряем влажность)
             {
              if ((t.sec==0) or (t.sec==10) or (t.sec==20) or (t.sec==30)or (t.sec==40) or (t.sec==50))
                    {
                      digitalWrite(HumTerraPower,HIGH);
                     delay(1000);  //задержка а то датчик не успевает отработать - кидает показания на 100 % сразу ((
                     HumTerraTmp=analogRead(1);                 //Считываем показатели влажности почвы
                     HumTerra=map(HumTerraTmp,0,1023,99.9,0);  //Преобразуя в процентное соотношение :)
                 // HumTerra=int((1023-analogRead(1))*0.1);  
                  }                
              else 
               if ((t.sec==2) or (t.sec==12) or (t.sec==22) or (t.sec==32) or (t.sec==42) or (t.sec==52)){ digitalWrite(HumTerraPower,LOW);}
             }
       
   }    
//=========== Отработка актуатора
void Actuator()
{
   //EEPROM_write_byte(21,0); //заносим первоначальное значение 1 раз при первой загрузке скетча
    TINMin=EEPROM_read_byte(0);//Считаем из постоянной памяти МИН температуру 
    TINMax=EEPROM_read_byte(1);//Считаем из постоянной памяти МАКС температуру
    if (TIn==0) {lcd.setCursor(9,0);lcd.print("[?]");} //если датчик не работает то выводим информацию о неисправности
    if (EEPROM_read_byte(21)==1&&relayStatusActuator==LOW) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;}//если до сбоя был открыт то открываем
    if (EEPROM_read_byte(21)==0&&relayStatusActuator==HIGH) {close_windows();lcd.setCursor(9, 3);lcd.print("B\2K ");relayStatusActuator=LOW;}//если до сбоя был закрыт то закрываем
   if (flagActManual==1); //проверка на ручной режим управления
      else
    if (flagActManual==0)  
      { if ((TIn>TINMax)&&relayStatusActuator==LOW&&flagActManual==0) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;EEPROM_write_byte(21,1);}
          else
        if ((TIn<TINMin)&&relayStatusActuator==HIGH&&flagActManual==0) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;EEPROM_write_byte(21,0);}
           else
        if ((TIn==0) or (TIn<TINMin) or (TIn==TINMin))  flagActManual=1; //Если значения не заданном диапазоне для открытия позволяем вручную управлять
      }
}
//=========== Отработка автополива
void  Irrigation() 
{
   HumTerraINMin=EEPROM_read_byte(2); //Считаем из постоянной памяти МИН влажность
   HumTerraINMax=EEPROM_read_byte(3); //Считаем из постоянной памяти МАКС влажность
//Считаем из постоянной памяти режим таймера
   Timer=EEPROM_read_byte(4); //включен или нет
   TstopHour=EEPROM_read_byte(5);
   TstopMinute=EEPROM_read_byte(6);
   TstartHour=EEPROM_read_byte(7);
   TstartMinute=EEPROM_read_byte(8);  
   //EEPROM_write_byte(20,0); //заносим первоначальное значение 1 раз при первой загрузке скетча
    if (Timer==0&&flagIrrManual==0)
     { if (HumTerra<5) {lcd.setCursor(17,0);lcd.print("[?]");digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K ");relayStatusIrr=LOW;flagIrrManual=1;}
       if (HumTerra>HumTerraINMin&&HumTerra<HumTerraINMax) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");relayStatusIrr=HIGH;lcd.setCursor(17,0);lcd.print("   ");flagIrrManual=0;}
       if (HumTerra>HumTerraINMax) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("OFF ");relayStatusIrr=LOW;lcd.setCursor(17,0);lcd.print("   ");flagIrrManual=0;}
     }
   if (Timer==1)  
     {  
         if  (EEPROM_read_byte(20)==1) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");relayStatusIrr=HIGH;lcd.setCursor(17,0);lcd.print("   ");flagIrrManual=0;}
         if  (EEPROM_read_byte(20)==0) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K ");relayStatusIrr=LOW;lcd.setCursor(17,0);lcd.print("   ");flagIrrManual=1;}
         if (t.dow==1&&EEPROM_read_byte(10)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1); lcd.print("\4H");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
         else
         if (t.dow==2&&EEPROM_read_byte(11)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1);lcd.print("BT");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
         else
         if (t.dow==3&&EEPROM_read_byte(12)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1);lcd.print("CP");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
          else
          if (t.dow==4&&EEPROM_read_byte(13)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1);lcd.print("\3T");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
          else
          if (t.dow==5&&EEPROM_read_byte(14)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1);lcd.print("\4T");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
          else
          if (t.dow==6&&EEPROM_read_byte(15)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
              lcd.setCursor(11,1);lcd.print("C");lcd.write(0);
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }
          else
          if (t.dow==7&&EEPROM_read_byte(16)==1)
            {
            lcd.setCursor(4, 1);
            lcd.print("[");
            if (TstartHour<10) lcd.print('0');lcd.print(TstartHour);lcd.print(":");if (TstartMinute<10) lcd.print('0');lcd.print(TstartMinute);lcd.print("]");lcd.print("--[");if (TstopHour<10) lcd.print('0');lcd.print(TstopHour);lcd.print(":");if (TstopMinute<10) lcd.print('0');lcd.print(TstopMinute);lcd.print("]");flagIrrManual=1;
            lcd.setCursor(11,1);lcd.print("BC");
            if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);lcd.setCursor(17,3);lcd.print("BK ");EEPROM_write_byte(20,1);}
               else 
            if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);lcd.setCursor(17,3);lcd.print("B\2K");EEPROM_write_byte(20,0);}
            }  
           else
            {lcd.setCursor(4,1);lcd.print("[TA\7MEP + P\6\3]   ");}
      }
    if (((Timer==0) or (Timer==1))&&flagIrrManual==1)  
      {
      if (HumTerra>1) {flagIrrManual=0;}
      }
}

//отработка ручного управления орошением и вентиляцией КОМУ какой вариант ниже нравится :-) 
void StaticButton()
{
  Button_read();
//включаем/отключаем принудительно полив при ошибке (НЕИСПРАВНОСТИ)
 //  if ((RIGHTBtn)&&relayStatusIrr==LOW&&flag==1&&flagIrrManual==1) {digitalWrite(irrigator_relay,HIGH); lcd.setCursor(17, 3);lcd.print("BK ");relayStatusIrr=HIGH;flag=0;flagIrrManual=1;} 
 //  if ((RIGHTBtn)&&relayStatusIrr==HIGH&&flag==1&&flagIrrManual==1) {digitalWrite(irrigator_relay,LOW); lcd.setCursor(17, 3);lcd.print("B\2K");relayStatusIrr=LOW;flagIrrManual=0;} 
//включаем/отключаем полив ПРИНУДИТЕЛЬНО
   if ((RIGHTBtn)&&relayStatusIrr==LOW&&flag==1) {digitalWrite(irrigator_relay,HIGH); lcd.setCursor(17, 3);lcd.print("BK ");relayStatusIrr=HIGH;flag=0;flagIrrManual=1;EEPROM_write_byte(20,1);} 
   if ((RIGHTBtn)&&relayStatusIrr==HIGH&&flag==1) {digitalWrite(irrigator_relay,LOW); lcd.setCursor(17, 3);lcd.print("B\2K");relayStatusIrr=LOW;flagIrrManual=0;EEPROM_write_byte(20,0);} 
//открываем/закрываем форточку при ошибке (НЕИСПРАВНОСТИ)
  // if ((LEFTBtn)&&relayStatusActuator==LOW&&flag==1&&flagActManual==1) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;} 
   //if ((LEFTBtn)&&relayStatusActuator==HIGH&&flag==1&&flagActManual==1) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flagActManual=0;} 
//открываем/закрываем форточку ПРИНУДИТЕЛЬЛНО
   if ((LEFTBtn)&&relayStatusActuator==LOW&&flag==1) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;EEPROM_write_byte(21,1);} 
   if ((LEFTBtn)&&relayStatusActuator==HIGH&&flag==1) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flagActManual=0;EEPROM_write_byte(21,0);} 
   if ((MENUBtn)&&flag==1){MenuSET();}
}

//============Вход в Меню настроек и установок
void MenuSET()
{
    do
     {
         Button_read();
         delay(500);
         if (MENUBtn && flag==1) {regim++;flag=0;}
                   if (regim==1)// реж Установка TINMin и TINMax
                             {
                                TINMin=EEPROM_read_byte(0);
                                TINMax=EEPROM_read_byte(1);
                                 lcd.setCursor(0, 0);
                                lcd.print("[1]\6CT TEM\4 BH\6TP\7  ");
                                lcd.setCursor(0, 1);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[min]=");
                                 if (TINMin < 10) {lcd.print("0");}
                                lcd.print(TINMin);
                                lcd.print("          ");
                                lcd.setCursor(0, 2);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[max]=");
                                 if (TINMax < 10) lcd.print("0");
                                lcd.print(TINMax);
                                lcd.print("        + ");
                                lcd.setCursor(0,3);
                                lcd.print("MEH\1             <->");
                                
                                lcd.blink();
                                        if (RIGHTBtn && flag==1) posic++;
                                        if (LEFTBtn && flag==1) posic--;
                                              if (posic==0)
                                                      {lcd.setCursor(9,1);
                                                       if (UPBtn && flag==1)
                                                           { if (TINMin < 99)  TINMin++;
                                                           else
                                                            TINMin = 0;
                                                            EEPROM_write_byte(0,TINMin);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TINMin > 0)  TINMin--;
                                                           else
                                                            TstartHour = 99;
                                                            EEPROM_write_byte(0,TINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {lcd.setCursor(9,2);
                                                         if (UPBtn && flag==1)
                                                           { if (TINMax <99)  TINMax++;
                                                           else
                                                            TINMax = 0;
                                                            EEPROM_write_byte(1,TINMax);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TINMax > 0)  TINMax--;
                                                           else
                                                            TINMax = 99;
                                                            EEPROM_write_byte(1,TINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                   }
  
                     if(regim==2)//режим Установка HumeTerraMin и HumeTerraMax
                                { 
                                HumTerraINMin=EEPROM_read_byte(2);
                                HumTerraINMax=EEPROM_read_byte(3);
                                 lcd.setCursor(0, 0);
                                lcd.print("[2]\6CT B\5A]i[H 3EM\5\7");
                                lcd.setCursor(0, 1);
                                lcd.print("HT%");
                                lcd.print("[min]=");
                                if (HumTerraINMin < 10) lcd.print("0");
                                lcd.print(HumTerraINMin);
                                lcd.print("         ");
                                lcd.setCursor(0, 2);
                                lcd.print("HT%");
                                lcd.print("[max]=");
                                if (HumTerraINMax < 10) lcd.print("0");
                                lcd.print(HumTerraINMax);
                                lcd.print("       + ");
                                lcd.setCursor(0,3);
                                lcd.print("MEH\1             <->");
                                
                                lcd.blink();
                                        if (RIGHTBtn && flag==1) posic++;
                                        if (LEFTBtn && flag==1) posic--;
                                              if (posic==0)
                                                      {lcd.setCursor(9,1);
                                                       if (UPBtn && flag==1)
                                                           { if (HumTerraINMin < 99)  HumTerraINMin++;
                                                           else
                                                            HumTerraINMin = 0;
                                                            EEPROM_write_byte(2,HumTerraINMin);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (HumTerraINMin > 0)  HumTerraINMin--;
                                                           else
                                                            HumTerraINMin = 99;
                                                            EEPROM_write_byte(2,HumTerraINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {lcd.setCursor(9,2);
                                                         if (UPBtn && flag==1)
                                                           { if (HumTerraINMax <99)  HumTerraINMax++;
                                                           else
                                                            HumTerraINMax = 0;
                                                            EEPROM_write_byte(3,HumTerraINMax);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (HumTerraINMax > 0)  HumTerraINMax--;
                                                           else
                                                            HumTerraINMax = 99;
                                                            EEPROM_write_byte(3,HumTerraINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                }
                  
                      if(regim==3)// режим Установка Вроемени Таймера полива
                                { 
                                   Timer=EEPROM_read_byte(4);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[3]\6CT TA\7MEPA - ");
                                      if (Timer==0) lcd.print("B\2K");
                                      if (Timer==1) lcd.print("BK ");
                                   TstopHour=EEPROM_read_byte(5);
                                   TstopMinute=EEPROM_read_byte(6);
                                   TstartHour=EEPROM_read_byte(7);
                                   TstartMinute=EEPROM_read_byte(8);  
                                //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                 //задаем первоначальные значения для будильника по дням недели
                              /*  EEPROM_write_byte(10,1);
                                 EEPROM_write_byte(11,1);
                                 EEPROM_write_byte(12,1);
                                 EEPROM_write_byte(13,1);
                                 EEPROM_write_byte(14,1);
                                 EEPROM_write_byte(15,1);
                                 EEPROM_write_byte(16,1);
                                */                  
                                 if (EEPROM_read_byte(10)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(11)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(12)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(13)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(14)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(15)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(16)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(10)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(11)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(12)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(13)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(14)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(15)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(16)==0) {lcd.setCursor(12,3);lcd.print(" ");}                                 
                                 {lcd.setCursor(1,3);lcd.print(" ");}
                                 {lcd.setCursor(3,3);lcd.print(" ");}
                                  if (EEPROM_read_byte(10)==0 or EEPROM_read_byte(11)==0 or EEPROM_read_byte(12)==0 or EEPROM_read_byte(13)==0 or EEPROM_read_byte(14)==0 or EEPROM_read_byte(15)==0 or EEPROM_read_byte(16)==0) {lcd.setCursor(15,3);lcd.print(" ");}                                 
                                  if (EEPROM_read_byte(10)==1&&EEPROM_read_byte(11)==1&&EEPROM_read_byte(12)==1&&EEPROM_read_byte(13)==1&&EEPROM_read_byte(14)==1&&EEPROM_read_byte(15)==1&&EEPROM_read_byte(16)==1) {lcd.setCursor(15,3);lcd.print(char(94));}                                 
                                  lcd.setCursor(17,3);
                                  lcd.print("<->");
                                         
                                        lcd.blink();
                                        if (RIGHTBtn && flag==1) posic++;
                                        if (LEFTBtn && flag==1) posic--;
                                              if (posic==0)
                                                      {
                                                        lcd.setCursor(19,0);
                                                       if (UPBtn && flag==1)
                                                           { if (Timer < 1)  Timer++;
                                                           else
                                                            TstartHour = 0;
                                                            EEPROM_write_byte(4,Timer);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (Timer > 0)  Timer--;
                                                           else
                                                            Timer = 1;
                                                            EEPROM_write_byte(4,Timer);} 
                                                       } 
                                              if (posic==1)
                                                       {
                                                        lcd.setCursor(5,1);
                                                       if (UPBtn && flag==1)
                                                           { if (TstartHour < 23)  TstartHour++;
                                                           else
                                                            TstartHour = 0;
                                                            EEPROM_write_byte(7,TstartHour);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TstartHour > 0)  TstartHour--;
                                                           else
                                                            TstartHour = 23;
                                                            EEPROM_write_byte(7,TstartHour);} 
                                                      }       
                                               if (posic==2)
                                                       {
                                                         lcd.setCursor(8,1);
                                                         if (UPBtn && flag==1)
                                                           { if (TstartMinute < 59)  TstartMinute++;
                                                           else
                                                            TstartMinute = 0;
                                                            EEPROM_write_byte(8,TstartMinute);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TstartMinute > 0)  TstartMinute--;
                                                           else
                                                            TstartMinute = 59;
                                                            EEPROM_write_byte(8,TstartMinute);}
                                                       }       
                                               if (posic==3)
                                                      {
                                                        lcd.setCursor(16,1);
                                                         if (UPBtn && flag==1)
                                                           { if (TstopHour < 23)  TstopHour++;
                                                           else
                                                            TstopHour = 0;
                                                            EEPROM_write_byte(5,TstopHour);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TstopHour > 0)  TstopHour--;
                                                           else
                                                            TstopHour = 23;
                                                            EEPROM_write_byte(5,TstopHour);}
                                                      }       
                                               if (posic==4)
                                                      {
                                                       lcd.setCursor(19,1);
                                                       if (UPBtn && flag==1)
                                                           { if (TstopMinute < 59)  TstopMinute++;
                                                           else
                                                            TstopMinute = 0;
                                                            EEPROM_write_byte(6,TstopMinute);}
                                                         if (DOWNBtn && flag==1) 
                                                           { if (TstopMinute > 0)  TstopMinute--;
                                                           else
                                                            TstopMinute = 59;
                                                            EEPROM_write_byte(6,TstopMinute);}
                                                       }
                                               if (posic==5)  //устанавливаем дни недели для будильника "Все сразу"
                                                       {
                                                         lcd.setCursor(15,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (Tday < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(10,Tday);
                                                            EEPROM_write_byte(11,Tday);
                                                            EEPROM_write_byte(12,Tday);
                                                            EEPROM_write_byte(13,Tday);
                                                            EEPROM_write_byte(14,Tday);
                                                            EEPROM_write_byte(15,Tday);
                                                            EEPROM_write_byte(16,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(10,Tday);
                                                            EEPROM_write_byte(11,Tday);
                                                            EEPROM_write_byte(12,Tday);
                                                            EEPROM_write_byte(13,Tday);
                                                            EEPROM_write_byte(14,Tday);
                                                            EEPROM_write_byte(15,Tday);
                                                            EEPROM_write_byte(16,Tday);
                                                           } 
                                                      }
                                                if (posic==6)  //устанавливаем будильника ПH
                                                       {
                                                         lcd.setCursor(0,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(10) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(10,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(10) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(10,Tday);
                                                           } 
                                                      }
                                                if (posic==7)  //устанавливаем для будильника BT
                                                       {
                                                         lcd.setCursor(2,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(11) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(11,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(11) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(11,Tday);
                                                           } 
                                                      }
                                                  if (posic==8)  //устанавливаем для будильника СР
                                                       {
                                                         lcd.setCursor(4,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(12) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(12,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(12) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(12,Tday);
                                                           } 
                                                      }
                                                 if (posic==9)  //устанавливаем для будильника ЧТ
                                                       {
                                                         lcd.setCursor(6,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(13) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(13,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(13) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(13,Tday);
                                                           } 
                                                      }
                                                 if (posic==10)  //устанавливаем для будильника ПТ
                                                       {
                                                         lcd.setCursor(8,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(14) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(14,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(14) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(14,Tday);
                                                           } 
                                                      }
                                                 if (posic==11)  //устанавливаем для будильника СБ
                                                       {
                                                         lcd.setCursor(10,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(15) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(15,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(15) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(15,Tday);
                                                           } 
                                                      }
                                                 if (posic==12)  //устанавливаем для будильника ВС
                                                       {
                                                         lcd.setCursor(12,2);
                                                         if (UPBtn && flag==1)
                                                           { 
                                                           if (EEPROM_read_byte(16) < 1)  Tday++;
                                                           else
                                                           Tday=0;
                                                            EEPROM_write_byte(16,Tday);
                                                            }
                                                         if (DOWNBtn && flag==1) 
                                                           {
                                                            if (EEPROM_read_byte(16) > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            EEPROM_write_byte(16,Tday);
                                                           } 
                                                      }
                                               
                                               
                                               
                                               if (posic==13) posic=0;//возврат в начало
                                         }
                              if (regim==4) //Режим установки часов
                                         { 
                                           lcd.setCursor(0, 0);
                                           lcd.print("[4]\6CT \3ACOB        ");
                                        //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                           lcd.setCursor(0, 1);
                                              if (t.date<10){lcd.print("0");}
                                           lcd.print(t.date);
                                           lcd.print("/");
                                           //lcd.setCursor(3,1);
                                           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 (RIGHTBtn && flag==1) posic++;
                                                if (LEFTBtn && flag==1) posic--;
                                                      if (posic==0)
                                                              {
                                                                lcd.setCursor(1,1);
                                                               if (UPBtn && flag==1)
                                                                   { if (t.date < 31)  t.date++;
                                                                   else
                                                                    t.date = 0;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                                if (DOWNBtn && flag==1)
                                                                  { if (t.date > 1)  t.date--;
                                                                   else
                                                                    t.date = 31;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              } 
                                                              
                                                      if (posic==1)
                                                              {
                                                                lcd.setCursor(4,1);
                                                               if (UPBtn && flag==1)
                                                                   { if (t.mon < 12)  t.mon++;
                                                                   else
                                                                    t.mon = 1;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                                 if (DOWNBtn && flag==1)
                                                                  { if (t.mon > 1)  t.mon--;
                                                                   else
                                                                    t.mon = 12;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              }       
                                        
                                                       if (posic==2)
                                                              {
                                                                lcd.setCursor(9,1);
                                                               if (UPBtn && flag==1)
                                                                 { if (t.year < 2100)  t.year++;
                                                                   else
                                                                    t.year = 2000;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                               if (DOWNBtn && flag==1)
                                                                 { if (t.year > 2000)  t.year--;
                                                                   else
                                                                    t.year = 2100;
                                                                   rtc.setDate(t.date,t.mon,t.year);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              }       
                                                              
                                                       if (posic==3)
                                                              {
                                                                lcd.setCursor(13,1);
                                                               if (UPBtn && flag==1)
                                                                 { if (t.dow < 7)  t.dow++;
                                                                   else
                                                                    t.dow = 1;
                                                                   rtc.setDOW(t.dow);
                                                                   timeDS3231();}
                                                               if (DOWNBtn && flag==1)
                                                                 { if (t.dow > 1)  t.dow--;
                                                                   else
                                                                    t.dow = 7;
                                                                   rtc.setDOW(t.dow);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              }              
                                                       if (posic==4)
                                                              {
                                                               lcd.setCursor(1,2);
                                                               if (UPBtn && flag==1)
                                                                 { if (t.hour < 23)  t.hour++;
                                                                   else
                                                                    t.hour = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (DOWNBtn && flag==1)
                                                                 { if (t.hour > 0)  t.hour--;
                                                                   else
                                                                    t.hour = 23;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              }       
                                                        if (posic==5)
                                                              {
                                                               lcd.setCursor(4,2);
                                                               if (UPBtn && flag==1)
                                                                 { if (t.min < 59)  t.min++;
                                                                   else
                                                                    t.min = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (DOWNBtn && flag==1)
                                                                 { if (t.min > 0)  t.min--;
                                                                   else
                                                                    t.min = 59;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                                   timeDS3231();
                                                              }              
                                                         if (posic==6)
                                                              {
                                                               lcd.setCursor(7,2);
                                                               if (UPBtn && flag==1)
                                                                 { if (t.sec < 59)  t.sec++;
                                                                   else
                                                                    t.sec = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (DOWNBtn && flag==1)
                                                                 { if (t.sec > 0)  t.sec--;
                                                                   else
                                                                    t.sec = 23;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                              }             
                                                               
                                                 if (posic==7) posic=0;
    
                                               }

     }
     while (regim<5);
     lcd.clear();
     lcd.noBlink();
     regim=0;
     posic=0; 
}    

void TimePrint() 
 {
   lcd.setCursor(11, 2);
      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(" ");
  }
 
 //=========== Обработки печати и вывода на дисплейчик (Влажности воздуха, температуры воздуха , влажности земли)
void printDin()
{
      lcd.setCursor(0, 0);
      lcd.print("H%=");
        if (HumIn<10) lcd.print('0'); 
      lcd.print(int(HumIn));
      lcd.setCursor(6, 0);
      lcd.print("t"); 
      lcd.print((char)223);
      lcd.print("=");
        if (TIn<10) lcd.print('0');
      lcd.print(int(TIn));
      lcd.setCursor(12,0);
      lcd.print("HT=");  
      lcd.print(HumTerra);
      lcd.print("%");
    }  
//=========== Обработки печати и вывода на дисплейчик СТАТИКИ
void printStat ()
   {
      lcd.setCursor(0,3);
      lcd.print("MEH BEHT>");
      lcd.setCursor(13,3);
      lcd.print("\4O\5>");
      lcd.setCursor(0,1); 
      lcd.print("\4O\5");  
        if (flagIrrManual==0&&Timer==0) {lcd.setCursor(4,1);lcd.print("[ABTO] ");}
        if (flagIrrManual==1&&Timer==0) {lcd.setCursor(4,1);lcd.print("[P\6\3H] "   );}
      lcd.setCursor(0,2);
      lcd.print("BEHT");  
        if (flagActManual==0) {lcd.setCursor(4,2);lcd.print("[ABTO] ");}
        if (flagActManual==1) {lcd.setCursor(4,2);lcd.print("[P\6\3H] ");}
   }

void open_windows() //открываем форточку
{
    digitalWrite(open_actuator, HIGH);
    delay(1000);
    digitalWrite(open_actuator, LOW);
}
void close_windows() //зарываем форточку
{
    digitalWrite(close_actuator, HIGH);
    delay(1000);
    digitalWrite(close_actuator, LOW);
}

void loop()
{
 timeDS3231();
 TInGet();
 HumInGet();
 HumTerraGet();
 Actuator();
 Irrigation();
 StaticButton();
 TimePrint();
 printDin();
 printStat();
}

vvadim
Offline
Зарегистрирован: 23.05.2012

перед публикацией неплохо бы код фрагментировать в IDE - нажимаем Ctrl + T и код становится читабельным...

stsintorio
Offline
Зарегистрирован: 17.09.2015

Не плохой труд. Респект. Желательно выложить фото рабочего изделия с пояснениями.

Andrey12
Andrey12 аватар
Offline
Зарегистрирован: 26.12.2014

Давно работает? 

Еще бы фотки реализации выложил, было бы вообще хорошо. 

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

Ссылка на клапан ведет на датчик влажности. Поправьте. 

Респект за труд.

YRA
Offline
Зарегистрирован: 10.01.2015

Отлично! Если  можно схему бы и библиотеки на us154@yandeх.ru Я работаю то же, но знаний катастрофически не хватате, читаю и у всех учусь. Спасибо за ответ.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

фото приложи. интересно посмотреть

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

В таких проектах самое интересное - система полива, при которой не будет образовываться водорослей в трубах.

stsintorio
Offline
Зарегистрирован: 17.09.2015

Автора на сцену.

Umka
Umka аватар
Offline
Зарегистрирован: 19.10.2012

jeka_tm пишет:

фото приложи. интересно посмотреть

А еще лучше - видео. Интересно увидеть меню с русско-английскими символами.

mrGoReC
Offline
Зарегистрирован: 16.06.2015

схема стандартная, полно внете, подключение по умолчанию, как в примерах.

датчик влажности подключен чере полевич, актуатор и клапан через реле 4-х канальное 5 вольтовое.

библиотеки стандарт, тока та что в коде записана дополнительная на I2C.

mrGoReC
Offline
Зарегистрирован: 16.06.2015

ссылка на клапан правильная.

система работала 3 месяца, полет нормальный, только косяк в кнопках, кривая оказалась коротит (((

фото сделаю, как будет возможность.

система полива капельная, 4 нитки полива, клапан конечно маловат, но тут спешить некогда, поливает в 2раза дольше чем краном ДУ20.

 

 

YRA
Offline
Зарегистрирован: 10.01.2015

Да, вчера библиотечки доскачивал чего не было и скомпилировал,залил в UNO все вроде заработало. Из оборудования: UNO,DHT11,DS3231, LCD204 I2C, Реле ,на подходе DS1820, ну а дальше все в кучу будем собирать. Спасибо огромное за работу.

YRA
Offline
Зарегистрирован: 10.01.2015

Но если будет возможность, конечно, на принципиалку хотелось бы взглянуть, а так по сктчу прдется восстанавливать, если не затруднит, буду крайне благодарен. Поклон еще раз низкий за работу.

P.S. А Вы, как я понял, из Невинномысска????

P.S. А DS1820 не вижу куда подключен вроде там 11 пин свободен, пока я так вижу. хотя и ошибатьс могу, да и библиотеку  DallasTemperature  не вижу или OneWire 

по примеру и подобию 

 

http://arduino.ru/forum/programmirovanie/lcd-i-datchik-temperatury-ds1820

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Да я из Невинномысска.

датчик влажности и температуры DHT21 а не DS1820/

по пинам вроде все вначале кода расписал.

YRA
Offline
Зарегистрирован: 10.01.2015

А я из Ставрополя, , ну да там я вижу DHT11. Если не затруднит , я почту свою написал в одном из постов. Ответьте пож-ста, что бы не засорять тему.

 

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Добрался до фотоаппарата и выкладываю свое творение, лето отработал, полет нормальный!!

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

кнопочек много, мне удалось обойтись одним энкодером с кликом.
Как перенесли повышенную влажность?

mrGoReC
Offline
Зарегистрирован: 16.06.2015

кнопок как раз, удобно работать )) энкодера нет ((

Влажность прекрасно, индикатор залит с пистолета, а крпус закрывается на прокладку резиновую, так, что

полная герметизация, только одна кнопка замкнула, вот и весь косяк, в кнопке))

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

вряд ли кнопки вставлены герметично. Думаю, стоит нарыть в коробках из-под обуви пакетик силикагеля и закинуть внутрь. Хуже не будет.

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Все герметично, кнопки круглые и захродят в притык, затягиваются гайкой. 

В иных случаях и селикагель не поможет ))

Лёвчег
Offline
Зарегистрирован: 07.02.2016

Народ, помогите переделать под дисплей 1602 и под часы ds1302

Лёвчег
Offline
Зарегистрирован: 07.02.2016

С дисплеем разобрался, а вот с чисами всё-же помощ нужна...

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Ты библиотеку поменяй на DS1307RTC, она со всеми модулями робит, и будет тебе счастье )))

Лёвчег
Offline
Зарегистрирован: 07.02.2016

И всё так просто? Спасибо!!!

IGOR5
Offline
Зарегистрирован: 12.12.2015

Народ !!! Помогите . Нахожусь на стадии подключения библиотек, скетч не компилируется а почему не знаю.  Выглядит это так. Заранее спасибо.

 C:\Documents and Settings\Admin\Рабочий стол\sketch_mar05a\sketch_mar05a.ino: In function 'void Actuator()':

 
sketch_mar05a:315: error: 'EEPROM_read_byte' was not declared in this scope
 
sketch_mar05a:323: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:325: error: 'EEPROM_write_byte' was not declared in this scope
 
C:\Documents and Settings\Admin\Рабочий стол\sketch_mar05a\sketch_mar05a.ino: In function 'void Irrigation()':
 
sketch_mar05a:333: error: 'EEPROM_read_byte' was not declared in this scope
 
sketch_mar05a:357: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:359: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:368: error: 'EEPROM_write_byte' was not declared in this scope
 

 

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Добавь либу EEPROM2 или #include <EEPROM2.h> в скетч )))

IGOR5
Offline
Зарегистрирован: 12.12.2015

Спасибо за ответ, но стоит эта библиотека. Может еще какие варианты есть.

sketch_mar05a:824: error: 'EEPROM_write_byte' was not declared in this scope

 
sketch_mar05a:835: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:842: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:853: error: 'EEPROM_write_byte' was not declared in this scope
 
sketch_mar05a:860: error: 'EEPROM_write_byte' was not declared in this scope
 
Используем библиотеку EEPROM2 в папке: C:\Program Files\Arduino\libraries\libraries\EEPROM2 (legacy)
Используем библиотеку DHT в папке: C:\Program Files\Arduino\libraries\libraries\DHT (legacy)
Используем библиотеку LiquidCrystal_I2C в папке: C:\Program Files\Arduino\libraries\libraries\LiquidCrystal_I2C (legacy)
Используем библиотеку Wire версии 1.0 из папки: C:\Program Files\Arduino\hardware\arduino\avr\libraries\Wire 
Используем библиотеку ds3231 в папке: C:\Program Files\Arduino\libraries\libraries\ds3231 (legacy)
exit status 1
'EEPROM_read_byte' was not declared in this scope
mrGoReC
Offline
Зарегистрирован: 16.06.2015

ты вначале приведи фрагмент скетча, а потом спрашивай, по ошибкам не все можно определит )))

IGOR5
Offline
Зарегистрирован: 12.12.2015

Это же Ваш скетч!

Arduino: 1.6.3  

Выделил шрифтом 296,315,323,325 строки.

(Windows XP), Плата"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)

 
Используем библиотеку EEPROM2 в папке: C:\Program Files\Arduino\libraries\libraries\libraries\EEPROM2 (legacy)
Используем библиотеку DHT в папке: c:\Program Files\Flprog\ide\libraries\DHT (legacy)
Используем библиотеку LiquidCrystal_I2C в папке: c:\Program Files\Flprog\ide\libraries\LiquidCrystal_I2C (legacy)
Используем библиотеку Wire в папке: c:\Program Files\Flprog\ide\hardware\arduino\avr\libraries\Wire 
Используем библиотеку ds3231 в папке: C:\Program Files\Arduino\libraries\libraries\libraries\ds3231 (legacy)
 
C:\Windows\Temp\build3339991757782886211.tmp\sketch_mar05a.cpp.o 
sketch_mar05a.ino: In function 'void HumTerraGet()':
sketch_mar05a.ino:296:27: error: 'EEPROM_read_byte' was not declared in this scope
sketch_mar05a.ino: In function 'void Actuator()':
sketch_mar05a.ino:315:30: error: 'EEPROM_read_byte' was not declared in this scope
sketch_mar05a.ino:323:171: error: 'EEPROM_write_byte' was not declared in this scope
sketch_mar05a.ino:325:174: error: 'EEPROM_write_byte' was not declared in this scope
 
[code]
//========== Считывание Влажности почвы
void HumTerraGet()
   {
    if (EEPROM_read_byte(4)==0)                 //Если не установен флаг таймера в меню то измеряем влажность)
             {
              if ((t.sec==0) or (t.sec==10) or (t.sec==20) or (t.sec==30)or (t.sec==40) or (t.sec==50))
                    {
                      digitalWrite(HumTerraPower,HIGH);
                     delay(1000);  //задержка а то датчик не успевает отработать - кидает показания на 100 % сразу ((
                     HumTerraTmp=analogRead(1);                 //Считываем показатели влажности почвы
                     HumTerra=map(HumTerraTmp,0,1023,99.9,0);  //Преобразуя в процентное соотношение :)
                 // HumTerra=int((1023-analogRead(1))*0.1);  
                  }                
              else 
               if ((t.sec==2) or (t.sec==12) or (t.sec==22) or (t.sec==32) or (t.sec==42) or (t.sec==52)){ digitalWrite(HumTerraPower,LOW);}
             }
       
   }    
//=========== Отработка актуатора
void Actuator()
{
   //EEPROM_write_byte(21,0); //заносим первоначальное значение 1 раз при первой загрузке скетча
    TINMin=EEPROM_read_byte(0);//Считаем из постоянной памяти МИН температуру 
    TINMax=EEPROM_read_byte(1);//Считаем из постоянной памяти МАКС температуру
    if (TIn==0) {lcd.setCursor(9,0);lcd.print("[?]");} //если датчик не работает то выводим информацию о неисправности
    if (EEPROM_read_byte(21)==1&&relayStatusActuator==LOW) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;}//если до сбоя был открыт то открываем
    if (EEPROM_read_byte(21)==0&&relayStatusActuator==HIGH) {close_windows();lcd.setCursor(9, 3);lcd.print("B\2K ");relayStatusActuator=LOW;}//если до сбоя был закрыт то закрываем
   if (flagActManual==1); //проверка на ручной режим управления
      else
    if (flagActManual==0)  
      { if ((TIn>TINMax)&&relayStatusActuator==LOW&&flagActManual==0) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;EEPROM_write_byte(21,1);}
          else
        if ((TIn<TINMin)&&relayStatusActuator==HIGH&&flagActManual==0) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;EEPROM_write_byte(21,0);}
           else
        if ((TIn==0) or (TIn<TINMin) or (TIn==TINMin))  flagActManual=1; //Если значения не заданном диапазоне для открытия позволяем вручную управлять
      
mrGoReC
Offline
Зарегистрирован: 16.06.2015

попробуй вот эту библу EEPROM2.h - EEPROM library v2   Copyright (c) A.Nesterovsky, http://freeduino.ru.  All right reserved. 

у тебя просто заморочки с библой. EEPROM_read_byte - это внутренняя команда.

 

IGOR5
Offline
Зарегистрирован: 12.12.2015

Большое спасибо. А ведь заработало.   Я думал, если название одинаковое, то и содержимое тоже. Буду знать, еще раз спасибо!

Лёвчег
Offline
Зарегистрирован: 07.02.2016

Ничего с чисами не выходит... Я так понимаю, просто заменой библиотеки хрен отделаешься. 

Понять бы куда лезть. Может кто как дураку пальцем ткнет?

mrGoReC
Offline
Зарегистрирован: 16.06.2015

С часами разбирайся, так же как и пост выше, смотри методы работы библы и все, все в описании библы )))

Лёвчег
Offline
Зарегистрирован: 07.02.2016

mrGoReC пишет:

С часами разбирайся, так же как и пост выше, смотри методы работы библы и все, все в описании библы )))

Хай с этими часами. Заказал с китаю чтоб не париться. Как быть с кнопками? На кнопки 0 реакции!!! Вы не могли бы схемку кинуть на почту bigtg@bk.ru . А то мне кажется что я делаю что-то не так.

mrGoReC
Offline
Зарегистрирован: 16.06.2015

отправил картинку!

Лёвчег
Offline
Зарегистрирован: 07.02.2016

Спасибо большое!!! Я думал, что кнопки с плюсом замыкаются.  

mrGoReC
Offline
Зарегистрирован: 16.06.2015

первоначально и были на плюс, но там много помех было, пришлось на минус идти.

шас вообще все переделываю, вернулся к аналоговой клавиатуре ))

 

Лёвчег
Offline
Зарегистрирован: 07.02.2016

Подключил все кнопки как указоно на схеме, но всёровно на них никакой риакции. На дисплее только надпись начальная (Автополив) и всё. Может такое быть из-за дисплея 1602?

И ещё такой вопрос. Датчик влажности почвы к А0 подключается? 

mrGoReC
Offline
Зарегистрирован: 16.06.2015

не должно, если вы все переписали под 1602 

HumTerraTmp=analogRead(1);                 //Считываем показатели влажности почвы - это для кого подписано?????

YRA
Offline
Зарегистрирован: 10.01.2015

Добрый день, Сергей! Как навояете новое поделитесь????

mrGoReC
Offline
Зарегистрирован: 16.06.2015


Вот новое творение!

Сделал 4 канала полива, 2 блокируется при дожде. Недельный таймеры по 1-му на канал.


/* Автополив v3.0 Рус 4-х канальный полив, 3-4 канал блокировка при дожде!!!
Sergey Samokish Sergey_nevinka@mail.ru
Полив: - по таймеру недельному
       
Проветривание: - по датчику температурцы в теплице
               - вручную с кнопки
Адреса в EEPROM
EEPROM 0 Минимальное значение температуры актуатора
EEPROM 1 Максимальное значение темп актуатора
 1 линия полива
EEPROM 2 Минимальное значение влажности земли
EEPROM 3 Максимальное значение влажности земли

EEPROM 4 1/0 включение отключение полива (0=off / 1=on) 1 канал
EEPROM 5 стоп час полива
EEPROM 6 стоп мин полива
EEPROM 7 старт час полива
EEPROM 8 старт минута полива

EEPROM 9 1/0 включение отключение полива (0=off / 1=on) 2 канал
EEPROM 10 стоп час полива
EEPROM 11 стоп мин полива
EEPROM 12 старт час полива
EEPROM 13 старт минута полива

EEPROM 14 1/0 включение отключение полива (0=off / 1=on) 3 канал
EEPROM 15 стоп час полива
EEPROM 16 стоп мин полива
EEPROM 17 старт час полива
EEPROM 18 старт минута полива

EEPROM 19 1/0 включение отключение полива (0=off / 1=on) 4 кана
EEPROM 20 стоп час полива
EEPROM 21 стоп мин полива
EEPROM 22 старт час полива
EEPROM 23 старт минута полива

///дни недели для таймера вкл и или выкл в конкретный день
EEPROM 24  Пн
EEPROM 25  Вт
EEPROM 26  Ср
EEPROM 27  Чт
EEPROM 28  Пт
EEPROM 29  Сб
EEPROM 30  Вс

EEPROM 31  Пн
EEPROM 32  Вт
EEPROM 33  Ср
EEPROM 34  Чт
EEPROM 35  Пт
EEPROM 36  Сб
EEPROM 37  Вс

EEPROM 38  Пн
EEPROM 39  Вт
EEPROM 40  Ср
EEPROM 41  Чт
EEPROM 42  Пт
EEPROM 43  Сб
EEPROM 44  Вс

EEPROM 45  Пн
EEPROM 46  Вт
EEPROM 47  Ср
EEPROM 48  Чт
EEPROM 49  Пт
EEPROM 50  Сб
EEPROM 51  Вс

EEPROM 53 Состояние полива вкл/выкл для востонавления после сбоя питания канал 1
EEPROM 54 Состояние полива вкл/выкл для востонавления после сбоя питания канал 2
EEPROM 55 Состояние полива вкл/выкл для востонавления после сбоя питания канал 3
EEPROM 56 Состояние полива вкл/выкл для востонавления после сбоя питания канал 4
EEPROM 57 Состояние Актуатора вкл/выкл для востонавления после сбоя питания !!!!ЕСЛИ не работает датчик температуры!!! если работает то он и так откроет вентиляцию

*/
#define HumTerraPower 9                   //пин для питания датчика влажности 
#define HumTerraIn A1                     //пин снятия влажности 
#define irrigator_relay 10                //пин включения полива   (1) MP701 модуль реле от DESSY.ru
#define irrigator_relay2 11               //пин включения полива   (2)
#define irrigator_relay3 12               //пин включения полива   (3)
#define irrigator_relay4 13               //пин включения полива   (4) 
#include <EEPROM2.h>
//задаем пины управления двигателями форточки L298N
#define D1 4          // Направление вращение двигателя 1
#define M1 5          // ШИМ вывод для управления двигателем 1
#define D2 7          // Направление вращение двигателя 2
#define M2 6          // ШИМ вывод для управления двигателем 2

bool direction = 0;    // Текущее направление вращения       
int value1;            // Текущее значение ШИМ1
int value2;            // Текущее значение ШИМ2

//Создаем переменные для работы с термометром
int TINMin=0;                             //переменная Min температуры актуатора
int TINMax=0;                             // переменная Max температуры актуатора
int TIn=0;                              //переменная температуры воздуха в теплице
//Создаем переменные для работы с Гигрометром
int HumTerraINMin=0;                     //переменная Min влажность земли
int HumTerraINMax=0;                     // переменная Max влажность земли
int HumTerraTmp=0;                           // переменная промежуточной влажности земли 
int HumTerra=0;                          // переменная текущей влажности земли  
int HumIn=0;                            //переменная влажности воздуха в теплице

//Объявим переменную для хранения состояния реле
boolean relayStatusIrr=EEPROM_read_byte(53); //реле полива
boolean relayStatusIrr2=EEPROM_read_byte(54); //реле полива
boolean relayStatusIrr3=EEPROM_read_byte(55); //реле полива
boolean relayStatusIrr4=EEPROM_read_byte(56); //реле полива
boolean relayStatusActuator=EEPROM_read_byte(57); //реле актуатора

// подключение датчиков DHT11
#include <DHT.h>
#define DHTIN 8 //определяем пин
#define DHTTYPE DHT11     // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTIN, DHTTYPE);

//LCD 200x4 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(0x27,20,4); 
//клавиатуры - аналоговая
#define BUTTON A0      //порт клавиатуры
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;
int flag=0; //флаг былали нажата кнопка

//функция считывания клавиатуры
int getPressedButton()
{
  int buttonValue = analogRead(BUTTON);
  if (buttonValue < 100) {
    return BUTTON_RIGHT;  
  }
  else if (buttonValue < 550){
    return BUTTON_DOWN;
    }
  else if (buttonValue < 700) {
    return BUTTON_UP;
  }
  else if (buttonValue < 800){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 900){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

int Tday=0; //день недели
int regim=0; //для меню
int posic=0;
int tHumTerra=0; //флаг вкл измеревлаж почвы
int flagActManual=0;//флаг Актуатором
int flagIrrManual=0;//флаг зона 1
int flagIrrManual2=0;//флаг зона 2
int flagIrrManual3=0;//флаг зона 3
int flagIrrManual4=0;//флаг зона 4
int flagIrrWater=0;//флаг ДОЖДЯ
int Timer=0; //таймера 1
int Timer2=0; //таймера 2
int Timer3=0; //таймера 3
int Timer4=0; //таймера 4

byte TstartHour=0; //часы таймера
byte TstartMinute=0; //минуты таймера
byte TstopHour=0; //часы интервала таймера
byte TstopMinute=0; //минуты интервала таймера

byte TstartHour2=0; 
byte TstartMinute2=0; 
byte TstopHour2=0; 
byte TstopMinute2=0; 

byte TstartHour3=0; 
byte TstartMinute3=0; 
byte TstopHour3=0; 
byte TstopMinute3=0; 

byte TstartHour4=0; 
byte TstartMinute4=0; 
byte TstopHour4=0; 
byte TstopMinute4=0; 

//ds3231 модуль часов реального времени
#include <Wire.h>
#include "DS3231.h" //модифицированная отсюда: http://arduino.ru/forum/programmirovanie/chasy-i-arduino#comment-112470
DS3231  rtc(SDA, SCL);
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("ABTO\4O\5\7B v.3.0 P\6");
         Wire.begin(); 
         rtc.begin();
        lcd.setCursor(0, 2);
        t = rtc.getTime();
        if (t.date<10) lcd.print("0");
        lcd.print(t.date);
        lcd.print(" ");
        lcd.print(rtc.getMonthStr());
        lcd.print(" ");
        lcd.print(t.year);
        lcd.setCursor(0,3);
          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);}
          if (t.dow==7) lcd.print("BC");                                        
        lcd.print(" ");
        // Send time
        lcd.println(rtc.getTimeStr());
        lcd.print("    ");
        lcd.setCursor(0,1);
        delay(5000);
        lcd.clear();
        
        dht.begin(); 
  
//Настроим пин для управления реле
  pinMode(irrigator_relay,OUTPUT);
  digitalWrite(irrigator_relay,LOW);
  pinMode(irrigator_relay2,OUTPUT);
  digitalWrite(irrigator_relay2,LOW);
  pinMode(irrigator_relay3,OUTPUT);
  digitalWrite(irrigator_relay3,LOW);
  pinMode(irrigator_relay4,OUTPUT);
  digitalWrite(irrigator_relay4,LOW);
  pinMode (HumTerraPower,OUTPUT);
  digitalWrite (HumTerraPower,LOW);

//Настройка пинов для управления двигателями форточки
pinMode(D1, OUTPUT);
pinMode(D2, OUTPUT); 
}
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 HumTerraGet()
   {
              if ((t.sec==0) or (t.sec==10) or (t.sec==20) or (t.sec==30)or (t.sec==40) or (t.sec==50))
                    {
                      digitalWrite(HumTerraPower,HIGH);
                     delay(1000);  
                     HumTerraTmp=analogRead(HumTerraIn);              
                     HumTerra=map(HumTerraTmp,0,1023,99.9,0);
                     if (HumTerra>HumTerraINMin) flagIrrWater=1;
                     if (HumTerra<HumTerraINMin) flagIrrWater=0;
                    }                
              else 
              if ((t.sec==2) or (t.sec==12) or (t.sec==22) or (t.sec==32) or (t.sec==42) or (t.sec==52)){ digitalWrite(HumTerraPower,LOW);}
            
              
   }    
//=========== Отработка актуатора
void Actuator()
{
    TINMin=EEPROM_read_byte(0);//Считаем из постоянной памяти МИН температуру 
    TINMax=EEPROM_read_byte(1);//Считаем из постоянной памяти МАКС температуру
    if (TIn==0) {lcd.setCursor(9,0);lcd.print("[?]");} //error
    if (relayStatusActuator==HIGH) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");}
    if (relayStatusActuator==LOW) {close_windows();lcd.setCursor(9, 3);lcd.print("B\2K ");}
   
   if (flagActManual==1); 
      else
    if (flagActManual==0)  
      { if ((TIn>TINMax)&&relayStatusActuator==LOW&&flagActManual==0) {open_windows();lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;EEPROM_write_byte(57,1);}
          else
        if ((TIn<TINMin)&&relayStatusActuator==HIGH&&flagActManual==0) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;EEPROM_write_byte(57,0);}
           else
        if ((TIn==0) or (TIn<TINMin) or (TIn==TINMin))  flagActManual=1; //Если значения не заданном диапазоне для открытия позволяем вручную управлять
      }
}
//=========== Отработка автополива
void  Irrigation() 
{
   HumTerraINMin=EEPROM_read_byte(2);
   HumTerraINMax=EEPROM_read_byte(3);
   
   //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&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("P");}
       if (relayStatusIrr==HIGH) {lcd.setCursor(6,1);lcd.print(char(255));}
       if (Timer==1&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("T");}
       if  (EEPROM_read_byte(53)==1) {digitalWrite(irrigator_relay,HIGH);relayStatusIrr=HIGH;flagIrrManual=0;}
       if  (EEPROM_read_byte(53)==0) {digitalWrite(irrigator_relay,LOW);relayStatusIrr=LOW;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,HIGH);EEPROM_write_byte(53,1);}
                                           else 
                                         if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                         }
                                   }     
                                       
                 /*  if (t.dow==1&&EEPROM_read_byte(24)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==2&&EEPROM_read_byte(25)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==3&&EEPROM_read_byte(26)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==4&&EEPROM_read_byte(27)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==5&&EEPROM_read_byte(28)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==6&&EEPROM_read_byte(29)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                }
                   if (t.dow==7&&EEPROM_read_byte(30)==1)
                                {
                                  if (t.hour==TstartHour&&t.min==TstartMinute) {digitalWrite(irrigator_relay,HIGH);EEPROM_write_byte(53,1);}
                                   else 
                                  if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);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&&flagIrrManual2==0) {lcd.setCursor(10,1);lcd.print("P");}
    if (Timer2==1&&relayStatusIrr2==LOW) {lcd.setCursor(10,1);lcd.print("T");}
    if (relayStatusIrr2==HIGH) {lcd.setCursor(10,1);lcd.print(char(255));}
    if  (EEPROM_read_byte(54)==1) {digitalWrite(irrigator_relay2,HIGH);relayStatusIrr2=HIGH;flagIrrManual2=0;}
    if  (EEPROM_read_byte(54)==0) {digitalWrite(irrigator_relay2,LOW);relayStatusIrr2=LOW;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,HIGH);EEPROM_write_byte(54,1);}
                                           else 
                                         if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                         }
                                   }     
               
              /*    if (t.dow==1&&EEPROM_read_byte(31)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                }
                    if (t.dow==2&&EEPROM_read_byte(32)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                }
                    if (t.dow==3&&EEPROM_read_byte(33)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                }             
                    if (t.dow==4&&EEPROM_read_byte(34)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                } 
                     if (t.dow==5&&EEPROM_read_byte(35)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                }
                     if (t.dow==6&&EEPROM_read_byte(36)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                }
                     if (t.dow==7&&EEPROM_read_byte(37)==1)
                                {
                                  if (t.hour==TstartHour2&&t.min==TstartMinute2) {digitalWrite(irrigator_relay2,HIGH);EEPROM_write_byte(54,1);}
                                   else 
                                  if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);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&&flagIrrWater==0&&flagIrrManual3==0) {lcd.setCursor(14,1);lcd.print("P");}
    if (Timer3==1&&flagIrrWater==0&&relayStatusIrr3==LOW) {lcd.setCursor(14,1);lcd.print("T");}
    if (relayStatusIrr3==HIGH) {lcd.setCursor(14,1);lcd.print(char(255));}
    if (flagIrrWater==1) {lcd.setCursor(14,1);lcd.write(0);digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);} //Б - блокировка по дождю
    if  (EEPROM_read_byte(55)==1) {digitalWrite(irrigator_relay3,HIGH);relayStatusIrr3=HIGH;flagIrrManual3=0;}
    if  (EEPROM_read_byte(55)==0) {digitalWrite(irrigator_relay3,LOW);relayStatusIrr3=LOW;flagIrrManual3=1;}
    if (Timer3==1&&flagIrrWater==0)  
                   {  
                    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,HIGH);EEPROM_write_byte(55,1);}
                                           else 
                                         if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                         }
                                   }     
                  
                    
                    /* if (t.dow==1&&EEPROM_read_byte(38)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                   if (t.dow==2&&EEPROM_read_byte(39)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                    if (t.dow==3&&EEPROM_read_byte(40)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                   if (t.dow==4&&EEPROM_read_byte(41)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                   if (t.dow==5&&EEPROM_read_byte(42)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                   if (t.dow==6&&EEPROM_read_byte(43)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                }
                   if (t.dow==7&&EEPROM_read_byte(44)==1)
                                {
                                  if (t.hour==TstartHour3&&t.min==TstartMinute3) {digitalWrite(irrigator_relay3,HIGH);EEPROM_write_byte(55,1);}
                                   else 
                                  if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);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&&flagIrrWater==0&&flagIrrManual4==0) {lcd.setCursor(18,1);lcd.print("P");}  
    if (Timer4==1&&flagIrrWater==0&&relayStatusIrr4==LOW) {lcd.setCursor(18,1);lcd.print("T");}
    if (relayStatusIrr4==HIGH) {lcd.setCursor(18,1);lcd.print(char(255));}  
    if  (EEPROM_read_byte(56)==1) {digitalWrite(irrigator_relay4,HIGH);relayStatusIrr4=HIGH;flagIrrManual4=0;}
    if  (EEPROM_read_byte(56)==0) {digitalWrite(irrigator_relay4,LOW);relayStatusIrr4=LOW;flagIrrManual4=1;}
    if (flagIrrWater==1) {lcd.setCursor(18,1);lcd.write(0);digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}  //Б - блокировка по дождю 
    if (Timer4==1&&flagIrrWater==0)  
                   {  
                   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,HIGH);EEPROM_write_byte(56,1);}
                                           else 
                                         if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                         }
                                   }     
                 
                   
                   /*  if (t.dow==1&&EEPROM_read_byte(45)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                    if (t.dow==2&&EEPROM_read_byte(46)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                   if (t.dow==3&&EEPROM_read_byte(47)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                   if (t.dow==4&&EEPROM_read_byte(48)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                   if (t.dow==5&&EEPROM_read_byte(49)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                   if (t.dow==6&&EEPROM_read_byte(50)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }
                   if (t.dow==7&&EEPROM_read_byte(51)==1)
                                {
                                  if (t.hour==TstartHour4&&t.min==TstartMinute4) {digitalWrite(irrigator_relay4,HIGH);EEPROM_write_byte(56,1);}
                                   else 
                                  if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                }*/
                  } 
}

//отработка ручного управления орошением и вентиляцией КОМУ какой вариант ниже нравится :-) 
void StaticButton()
{
 Button_read();
//включаем/отключаем принудительно полив при ошибке (НЕИСПРАВНОСТИ)
 //  if ((RIGHTBtn)&&relayStatusIrr==LOW&&flag==1&&flagIrrManual==1) {digitalWrite(irrigator_relay,HIGH); lcd.setCursor(17, 3);lcd.print("BK ");relayStatusIrr=HIGH;flag=0;flagIrrManual=1;} 
 //  if ((RIGHTBtn)&&relayStatusIrr==HIGH&&flag==1&&flagIrrManual==1) {digitalWrite(irrigator_relay,LOW); lcd.setCursor(17, 3);lcd.print("B\2K");relayStatusIrr=LOW;flagIrrManual=0;} 
//включаем/отключаем полив ПРИНУДИТЕЛЬНО
  /// if (button==5&&flag==1&&relayStatusIrr==LOW) {digitalWrite(irrigator_relay,HIGH); lcd.setCursor(17, 3);lcd.print("BK ");relayStatusIrr=HIGH;flag=0;flagIrrManual=1;EEPROM_write_byte(53,1);} 
  /// if (button==5&&flag==1&&relayStatusIrr==HIGH) {digitalWrite(irrigator_relay,LOW); lcd.setCursor(17, 3);lcd.print("B\2K");relayStatusIrr=LOW;flagIrrManual=0;EEPROM_write_byte(53,0);} 
//открываем/закрываем форточку при ошибке (НЕИСПРАВНОСТИ)
  // if ((LEFTBtn)&&relayStatusActuator==LOW&&flag==1&&flagActManual==1) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;} 
   //if ((LEFTBtn)&&relayStatusActuator==HIGH&&flag==1&&flagActManual==1) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flagActManual=0;} 
//открываем/закрываем форточку ПРИНУДИТЕЛЬЛНО
   if (button==2&&flag==1&&relayStatusActuator==LOW) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;EEPROM_write_byte(21,1);} 
   if (button==2&&flag==1&&relayStatusActuator==HIGH) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flagActManual=0;EEPROM_write_byte(21,0);} 
   if (button==1&&flag==1){MenuSET();}
   if (button==5&&flag==1){TimerViewer();} 
}
//=========Вывод состояние таймеров (информативное окно)
void TimerViewer ()
{
      lcd.setCursor(0,3);  //чистим нижнюю строчку икрана, от левой инфы
      lcd.print("                    "); 
       
    do
       {
              
       Button_read();
       delay(500);
       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");
                         int myArray[7]={1,4,7,10,13,16,19};
                         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(" ");}
                             }
                                    
               
            }
         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");
                         int myArray[7]={1,4,7,10,13,16,19};
                         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(" ");}
                             }
                                    
               
            }
         if (regim==3)//
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 3] - ");
                 if (Timer3==0&&flagIrrWater==0) lcd.print("B\2K\5 ");
                 if (Timer3==1&&flagIrrWater==0) lcd.print("BK\5   ");
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                         int myArray[7]={1,4,7,10,13,16,19};
                         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(" ");}
                             }
                                    
               
            }
         if (regim==4)
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 4] - ");
                 if (Timer4==0&&flagIrrWater==0) {lcd.print("B\2K\5 ");}
                 if (Timer4==1&&flagIrrWater==0) {lcd.print("BK\5   ");}
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                         int myArray[7]={1,4,7,10,13,16,19};
                         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(" ");}
                             }
                                    
               
            }
       }       
     while (regim<5);
     regim=0;  
}


//============Вход в Меню настроек и установок
void MenuSET()
{
    do
     {
       Button_read();
       delay(500);
       if (button==1 && flag==1) {regim++;flag=0;}
                 if (regim==1)// реж Установка TINMin и TINMax
                             {
                                TINMin=EEPROM_read_byte(0);
                                TINMax=EEPROM_read_byte(1);
                                 lcd.setCursor(0, 0);
                                lcd.print("[1]\6CT TEM\4 BH\6TP\7  ");
                                lcd.setCursor(0, 1);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[min]=");
                                 if (TINMin < 10) {lcd.print("0");}
                                lcd.print(TINMin);
                                lcd.print("          ");
                                lcd.setCursor(0, 2);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[max]=");
                                 if (TINMax < 10) lcd.print("0");
                                lcd.print(TINMax);
                                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(9,1);
                                                       if (button==3 && flag==1)
                                                           { if (TINMin < 99)  TINMin++;
                                                           else
                                                            TINMin = 0;
                                                            EEPROM_write_byte(0,TINMin);}
                                                           if (button==4 && flag==1) 
                                                           { if (TINMin > 0)  TINMin--;
                                                           else
                                                            TstartHour = 99;
                                                            EEPROM_write_byte(0,TINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {lcd.setCursor(9,2);
                                                         if (button==3 && flag==1)
                                                           { if (TINMax <99)  TINMax++;
                                                           else
                                                            TINMax = 0;
                                                            EEPROM_write_byte(1,TINMax);}
                                                         if (button==4 && flag==1) 
                                                           { if (TINMax > 0)  TINMax--;
                                                           else
                                                            TINMax = 99;
                                                            EEPROM_write_byte(1,TINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                   }
                              
                     if(regim==2)//режим Установка HumeTerraMin и HumeTerraMax
                                {
                                HumTerraINMin=EEPROM_read_byte(2);
                                HumTerraINMax=EEPROM_read_byte(3);
                                 lcd.setCursor(0, 0);
                                lcd.print("[2]\6CT B\5A]i[H 3EM\5\7");
                                lcd.setCursor(0, 1);
                                lcd.print("HT%");
                                lcd.print("[min]=");
                                if (HumTerraINMin < 10) lcd.print("0");
                                lcd.print(HumTerraINMin);
                                lcd.print("         ");
                                lcd.setCursor(0, 2);
                                lcd.print("HT%");
                                lcd.print("[max]=");
                                if (HumTerraINMax < 10) lcd.print("0");
                                lcd.print(HumTerraINMax);
                                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(9,1);
                                                       if (button==3 && flag==1)
                                                           { if (HumTerraINMin < 99)  HumTerraINMin++;
                                                           else
                                                            HumTerraINMin = 0;
                                                            EEPROM_write_byte(2,HumTerraINMin);}
                                                           if (button==4 && flag==1) 
                                                           { if (HumTerraINMin > 0)  HumTerraINMin--;
                                                           else
                                                            HumTerraINMin = 99;
                                                            EEPROM_write_byte(2,HumTerraINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {lcd.setCursor(9,2);
                                                         if (button==3 && flag==1)
                                                           { if (HumTerraINMax <99)  HumTerraINMax++;
                                                           else
                                                            HumTerraINMax = 0;
                                                            EEPROM_write_byte(3,HumTerraINMax);}
                                                         if (button==4 && flag==1) 
                                                           { if (HumTerraINMax > 0)  HumTerraINMax--;
                                                           else
                                                            HumTerraINMax = 99;
                                                            EEPROM_write_byte(3,HumTerraINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                }
                                
                      if(regim==3)// режим Установка Вроемени Таймера 1 полива
                                {
                                   Timer=EEPROM_read_byte(4);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[3]\6CT TA\7MEPA1- ");
                                      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);
                                   // Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                             int 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(" ");}
                             }
                             
                             
                             
                           /*      if (EEPROM_read_byte(24)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(25)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(26)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(27)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(28)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(29)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(30)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(24)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(25)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(26)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(27)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(28)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(29)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(30)==0) {lcd.setCursor(12,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<8;i++)  EEPROM_write_byte(24+i,Tday);
                                                            /*
                                                            EEPROM_write_byte(25,Tday);
                                                            EEPROM_write_byte(26,Tday);
                                                            EEPROM_write_byte(27,Tday);
                                                            EEPROM_write_byte(28,Tday);
                                                            EEPROM_write_byte(29,Tday);
                                                            EEPROM_write_byte(30,Tday);*/
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                                 byte i;
                                                                 for (i=0;i<8;i++)  EEPROM_write_byte(24+i,Tday);
                                                            /*     
                                                            EEPROM_write_byte(24,Tday);
                                                            EEPROM_write_byte(25,Tday);
                                                            EEPROM_write_byte(26,Tday);
                                                            EEPROM_write_byte(27,Tday);
                                                            EEPROM_write_byte(28,Tday);
                                                            EEPROM_write_byte(29,Tday);
                                                            EEPROM_write_byte(30,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==4)// режим Установка Вроемени Таймера 2 полива
                                { 
                                   Timer2=EEPROM_read_byte(9);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[4]\6CT TA\7MEPA2- ");
                                      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);
                                   //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                 
                                   int myArray[7]={0,2,4,6,8,10,12};
                                   byte i;
                                       for (i=0;i<7;i++)
                                       {
                                         if (EEPROM_read_byte(32+i)==1) {lcd.setCursor(myArray[i],3);lcd.print(char(94));}
                                         if (EEPROM_read_byte(32+i)==0) {lcd.setCursor(myArray[i],3);lcd.print(" ");}
                                       }                                               
                           
                         
                        /*     if (EEPROM_read_byte(31)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(32)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(33)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(34)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(35)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(36)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(37)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(31)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(32)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(33)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(34)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(35)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(36)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(37)==0) {lcd.setCursor(12,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<8;i++)  EEPROM_write_byte(31+i,Tday);
                                                            /*EEPROM_write_byte(31,Tday);
                                                            EEPROM_write_byte(32,Tday);
                                                            EEPROM_write_byte(33,Tday);
                                                            EEPROM_write_byte(34,Tday);
                                                            EEPROM_write_byte(35,Tday);
                                                            EEPROM_write_byte(36,Tday);
                                                            EEPROM_write_byte(37,Tday);*/
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                             byte i;
                                                                  for (i=0;i<8;i++)  EEPROM_write_byte(31+i,Tday);
                                                            
                                                          /* EEPROM_write_byte(31,Tday);
                                                            EEPROM_write_byte(32,Tday);
                                                            EEPROM_write_byte(33,Tday);
                                                            EEPROM_write_byte(34,Tday);
                                                            EEPROM_write_byte(35,Tday);
                                                            EEPROM_write_byte(36,Tday);
                                                            EEPROM_write_byte(37,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==5)// режим Установка Вроемени Таймера 3 полива
                                {  
                                   Timer3=EEPROM_read_byte(14);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[5]\6CT TA\7MEPA3- ");
                                      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);
                                     
                                //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                     int 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(" ");}
                                     }
                           
                               /*  if (EEPROM_read_byte(38)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(39)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(40)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(41)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(42)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(43)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(44)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(38)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(39)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(40)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(41)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(42)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(43)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(44)==0) {lcd.setCursor(12,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<8;i++)  EEPROM_write_byte(38+i,Tday);
                                                           
                                                            /*EEPROM_write_byte(38,Tday);
                                                            EEPROM_write_byte(39,Tday);
                                                            EEPROM_write_byte(40,Tday);
                                                            EEPROM_write_byte(41,Tday);
                                                            EEPROM_write_byte(42,Tday);
                                                            EEPROM_write_byte(43,Tday);
                                                            EEPROM_write_byte(44,Tday);*/
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                            
                                                             byte i;
                                                                  for (i=0;i<8;i++)  EEPROM_write_byte(38+i,Tday);
                                                            /*EEPROM_write_byte(38,Tday);
                                                            EEPROM_write_byte(39,Tday);
                                                            EEPROM_write_byte(40,Tday);
                                                            EEPROM_write_byte(41,Tday);
                                                            EEPROM_write_byte(42,Tday);
                                                            EEPROM_write_byte(43,Tday);
                                                            EEPROM_write_byte(44,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==6)// режим Установка Вроемени Таймера 4 полива
                                {               
                                   Timer4=EEPROM_read_byte(19);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[6]\6CT TA\7MEPA4- ");
                                      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 +");
                                     int 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(" ");}
                                       }
                                                
                              /*   if (EEPROM_read_byte(45)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(46)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(47)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(48)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(49)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(50)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(51)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(45)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(46)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(47)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(48)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(49)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(50)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(51)==0) {lcd.setCursor(12,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<8;i++)  EEPROM_write_byte(45+i,Tday);
                                                           
                                                            /*EEPROM_write_byte(45,Tday);
                                                            EEPROM_write_byte(46,Tday);
                                                            EEPROM_write_byte(47,Tday);
                                                            EEPROM_write_byte(48,Tday);
                                                            EEPROM_write_byte(49,Tday);
                                                            EEPROM_write_byte(50,Tday);
                                                            EEPROM_write_byte(51,Tday);*/
                                                            }
                                                         if (button==4 && flag==1) 
                                                           {
                                                            if (Tday > 0)  Tday--;
                                                           else
                                                            Tday=1;
                                                             byte i;
                                                                  for (i=0;i<8;i++)  EEPROM_write_byte(45+i,Tday);
                                                            
                                                            /*EEPROM_write_byte(45,Tday);
                                                            EEPROM_write_byte(46,Tday);
                                                            EEPROM_write_byte(47,Tday);
                                                            EEPROM_write_byte(48,Tday);
                                                            EEPROM_write_byte(49,Tday);
                                                            EEPROM_write_byte(50,Tday);
                                                            EEPROM_write_byte(51,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==7) //Режим установки часов
                                         { 
                                           lcd.setCursor(0, 0);
                                           lcd.print("[7]\6CT \3ACOB        ");
                                        //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                           lcd.setCursor(0, 1);
                                              if (t.date<10){lcd.print("0");}
                                           lcd.print(t.date);
                                           lcd.print("/");
                                           //lcd.setCursor(3,1);
                                           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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   timeDS3231();
                                                              }              
                                                      /*   if (posic==6)
                                                              {
                                                               lcd.setCursor(7,2);
                                                               if (button==3 && flag==1)
                                                                 { if (t.sec < 59)  t.sec++;
                                                                   else
                                                                    t.sec = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (button==4 && flag==1)
                                                                 { if (t.sec > 0)  t.sec--;
                                                                   else
                                                                    t.sec = 23;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                              }             
                                                       */        
                                                 if (posic==6) posic=0;
    
                                               }

     }
     while (regim<8);
     lcd.clear();
     lcd.noBlink();
     regim=0;
     posic=0; 
    
}    

void TimePrint() 
 {
   lcd.setCursor(11, 2);
      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(" ");
  }
 
 //=========== Обработки печати и вывода на дисплейчик (Влажности воздуха, температуры воздуха , влажности земли)
void printDin()
{
      lcd.setCursor(0, 0);
      lcd.print("H%=");
        if (HumIn<10) lcd.print('0'); 
      lcd.print(int(HumIn));
      lcd.print(" ");
      lcd.setCursor(6, 0);
      lcd.print("t"); 
      lcd.print((char)223);
      lcd.print("=");
        if (TIn<10) lcd.print('0');
      lcd.print(int(TIn));
      lcd.print(" ");
      lcd.setCursor(12,0);
      lcd.print("HT=");  
      lcd.print(HumTerra);
      lcd.print("%   ");
    }  
//=========== Обработки печати и вывода на дисплейчик СТАТИКИ
void printStat ()
   {
      lcd.setCursor(0,3);
      lcd.print("MEH BEHT>");
      lcd.setCursor(13,3);
      lcd.print("T.\4O\5>");
      lcd.setCursor(0,1); 
      lcd.print("\4O\5-1[");
      lcd.setCursor(7,1);lcd.print("]2[");
      lcd.setCursor(11,1);lcd.print("]3[");
      lcd.setCursor(15,1);lcd.print("]4[");
      lcd.setCursor(19,1);lcd.print("]");  
      //  if (flagIrrManual==0&&Timer==0) {lcd.setCursor(4,1);lcd.print("[ABTO] ");}
      //  if (flagIrrManual==1&&Timer==0) {lcd.setCursor(4,1);lcd.print("[P\6\3H] "   );}
      lcd.setCursor(0,2);
      lcd.print("BEHT");  
        if (flagActManual==0) {lcd.setCursor(4,2);lcd.print("[ABTO] ");}
        if (flagActManual==1) {lcd.setCursor(4,2);lcd.print("[P\6\3H] ");}
   }

void open_windows() //открываем форточку
{
  digitalWrite(D1, 0);  // Задаем направление вращения
  digitalWrite(D2, 0);
  analogWrite(M1, 100);       // Задаем скорость вращения
  analogWrite(M2, 100); 
  delay (1000);
  analogWrite(M1, 0);       // Задаем скорость вращения
  analogWrite(M2, 0); 
  // digitalWrite(open_actuator, HIGH);
    //delay(1000);
    //digitalWrite(open_actuator, LOW);
}
void close_windows() //зарываем форточку
{
  digitalWrite(D1, 1);  // Задаем направление вращения
  digitalWrite(D2, 1);
  analogWrite(M1, 155);       // Задаем скорость вращения
  analogWrite(M2, 155); 
  delay (1000);
  analogWrite(M1, 255);       // Задаем скорость вращения
  analogWrite(M2, 255); 
    //digitalWrite(close_actuator, HIGH);
    //delay(1000);
    //digitalWrite(close_actuator, LOW);
}

void loop()
{
   
 
 timeDS3231();
 TInGet();
 HumInGet();
 HumTerraGet();
 Actuator();
 Irrigation();
 StaticButton();
 TimePrint();
 printDin();
 printStat();
}


jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а видео?

YRA
Offline
Зарегистрирован: 10.01.2015

mrGoReC, а последний скетч под МEGA, в UNO не ложится ругается.

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Вот последний вариант влезает в uno


/* Автополив v3.0 Рус 4-х канальный полив, 3-4 канал блокировка при дожде!!!
Sergey Samokish Sergey_nevinka@mail.ru
Полив: - по таймеру недельному
       
Проветривание: - по датчику температурцы в теплице
               - вручную с кнопки
Адреса в EEPROM
EEPROM 0 Минимальное значение температуры актуатора
EEPROM 1 Максимальное значение темп актуатора
 1 линия полива
EEPROM 2 Минимальное значение влажности земли
EEPROM 3 Максимальное значение влажности земли

EEPROM 4 1/0 включение отключение полива (0=off / 1=on) 1 канал
EEPROM 5 стоп час полива
EEPROM 6 стоп мин полива
EEPROM 7 старт час полива
EEPROM 8 старт минута полива

EEPROM 9 1/0 включение отключение полива (0=off / 1=on) 2 канал
EEPROM 10 стоп час полива
EEPROM 11 стоп мин полива
EEPROM 12 старт час полива
EEPROM 13 старт минута полива

EEPROM 14 1/0 включение отключение полива (0=off / 1=on) 3 канал
EEPROM 15 стоп час полива
EEPROM 16 стоп мин полива
EEPROM 17 старт час полива
EEPROM 18 старт минута полива

EEPROM 19 1/0 включение отключение полива (0=off / 1=on) 4 кана
EEPROM 20 стоп час полива
EEPROM 21 стоп мин полива
EEPROM 22 старт час полива
EEPROM 23 старт минута полива

///дни недели для таймера вкл и или выкл в конкретный день
EEPROM 24  Пн
EEPROM 25  Вт
EEPROM 26  Ср
EEPROM 27  Чт
EEPROM 28  Пт
EEPROM 29  Сб
EEPROM 30  Вс

EEPROM 31  Пн
EEPROM 32  Вт
EEPROM 33  Ср
EEPROM 34  Чт
EEPROM 35  Пт
EEPROM 36  Сб
EEPROM 37  Вс

EEPROM 38  Пн
EEPROM 39  Вт
EEPROM 40  Ср
EEPROM 41  Чт
EEPROM 42  Пт
EEPROM 43  Сб
EEPROM 44  Вс

EEPROM 45  Пн
EEPROM 46  Вт
EEPROM 47  Ср
EEPROM 48  Чт
EEPROM 49  Пт
EEPROM 50  Сб
EEPROM 51  Вс

EEPROM 53 Состояние полива вкл/выкл для востонавления после сбоя питания канал 1
EEPROM 54 Состояние полива вкл/выкл для востонавления после сбоя питания канал 2
EEPROM 55 Состояние полива вкл/выкл для востонавления после сбоя питания канал 3
EEPROM 56 Состояние полива вкл/выкл для востонавления после сбоя питания канал 4
EEPROM 57 Состояние Актуатора вкл/выкл для востонавления после сбоя питания !!!!ЕСЛИ не работает датчик температуры!!! если работает то он и так откроет вентиляцию

*/
#define HumTerraPower 9                   //пин для питания датчика влажности 
#define KEYBOARD A0
#define HumTerraIn A1                     //пин снятия влажности 
#define irrigator_relay 10                //пин включения полива   (1) MP701 модуль реле от DESSY.ru
#define irrigator_relay2 11               //пин включения полива   (2)
#define irrigator_relay3 12               //пин включения полива   (3)
#define irrigator_relay4 13               //пин включения полива   (4) 
#include <EEPROM2.h>
//задаем пины управления двигателями форточки на реле 1-4
#define Actuator_relay  4    //пин включения реле управления форточкой   (1) MP701 модуль реле от DESSY.ru     
#define Actuator_relay2 5    //пин включения реле управления форточкой   (2)
#define Actuator_relay3 6    //пин включения реле управления форточкой   (3)
#define Actuator_relay4 7    //пин включения реле управления форточкой   (4)

//Создаем переменные для работы с термометром
int TINMin=0;                             //переменная Min температуры актуатора
int TINMax=0;                             // переменная Max температуры актуатора
int TIn=0;                              //переменная температуры воздуха в теплице
//Создаем переменные для работы с Гигрометром
int HumTerraINMin=0;                     //переменная Min влажность земли
int HumTerraINMax=0;                     // переменная Max влажность земли
int HumTerraTmp=0;                           // переменная промежуточной влажности земли 
int HumTerra=0;                          // переменная текущей влажности земли  
int HumIn=0;                            //переменная влажности воздуха в теплице

//Объявим переменную для хранения состояния реле

boolean relayStatusIrr=EEPROM_read_byte(53); //реле полива
//boolean relayStatusIrr=LOW;

boolean relayStatusIrr2=EEPROM_read_byte(54); //реле полива
//boolean relayStatusIrr2=LOW;
boolean relayStatusIrr3=EEPROM_read_byte(55); //реле полива
boolean relayStatusIrr4=EEPROM_read_byte(56); //реле полива
boolean relayStatusActuator=EEPROM_read_byte(57); //реле актуатора

// подключение датчиков DHT11
#include <DHT.h>
#define DHTIN 8 //определяем пин
#define DHTTYPE DHT11     // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTIN, DHTTYPE);

//LCD 200x4 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(0x27,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;
int flag=0; //флаг былали нажата кнопка

//функция считывания клавиатуры НАДО калибровать под контретную сборку резисторов!!!!!!!
int getPressedButton()
{
  int buttonValue = analogRead(KEYBOARD);
  delay(50); //задержка для устранения дребезга
  if (buttonValue < 100) {
    return BUTTON_RIGHT;  
  }
  else if (buttonValue < 300){
    return BUTTON_DOWN;
    }
  else if (buttonValue < 700) {
    return BUTTON_UP;
  }
  else if (buttonValue < 800){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 900){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

int Tday=0; //день недели
int regim=0; //для меню
int posic=0;
int tHumTerra=0; //флаг вкл измеревлаж почвы
int flagActManual=0;//флаг Актуатором
int flagIrrManual=0;//флаг зона 1
int flagIrrManual2=0;//флаг зона 2
int flagIrrManual3=0;//флаг зона 3
int flagIrrManual4=0;//флаг зона 4
int flagIrrWater=0;//флаг ДОЖДЯ
int Timer=0; //таймера 1
int Timer2=0; //таймера 2
int Timer3=0; //таймера 3
int 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; 
byte TOpenD1,TCloseD1,TOpenD2,TCloseD2;

//byte TOpenD1=EEPROM_read_byte(58);
//byte TCloseD1=EEPROM_read_byte(59);
//byte TOpenD2=EEPROM_read_byte(60);
//byte TCloseD2=EEPROM_read_byte(61);

//ds3231 модуль часов реального времени
#include <Wire.h>
#include "DS3231.h" //модифицированная отсюда: http://arduino.ru/forum/programmirovanie/chasy-i-arduino#comment-112470
DS3231  rtc(SDA, SCL);
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("ABTO\4O\5\7B v.3.0 P\6");
         Wire.begin(); 
         rtc.begin();
        lcd.setCursor(0, 2);
        t = rtc.getTime();
        if (t.date<10) lcd.print("0");
        lcd.print(t.date);
        lcd.print(" ");
        lcd.print(rtc.getMonthStr());
        lcd.print(" ");
        lcd.print(t.year);
        lcd.setCursor(0,3);
          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);}
          if (t.dow==7) lcd.print("BC");                                        
        lcd.print(" ");
        // Send time
        lcd.println(rtc.getTimeStr());
        lcd.print("    ");
        lcd.setCursor(0,1);
        delay(2000);
        lcd.clear();
        
        dht.begin(); 
      //     The following lines can be uncommented to set the date and time
    // rtc.setDOW(TUESDAY);     // Set Day-of-Week to SUNDAY
     //rtc.setTime(9,0, 0);     // Set the time to 12:00:00 (24hr format)
     //rtc.setDate(31,05, 2016);   // Set the date to January 1st, 2014  
  
//Настроим пин для управления реле
  pinMode(irrigator_relay,OUTPUT);
  digitalWrite(irrigator_relay,LOW);
  pinMode(irrigator_relay2,OUTPUT);
  digitalWrite(irrigator_relay2,LOW);
  pinMode(irrigator_relay3,OUTPUT);
  digitalWrite(irrigator_relay3,LOW);
  pinMode(irrigator_relay4,OUTPUT);
  digitalWrite(irrigator_relay4,LOW);
  pinMode (HumTerraPower,OUTPUT);
  digitalWrite (HumTerraPower,LOW);

//Настройка пинов для управления двигателями форточки
pinMode(Actuator_relay, OUTPUT);
digitalWrite(Actuator_relay,LOW);
pinMode(Actuator_relay2, OUTPUT);
digitalWrite(Actuator_relay2,LOW);
pinMode(Actuator_relay3, OUTPUT);
digitalWrite(Actuator_relay3,LOW);
pinMode(Actuator_relay4, OUTPUT);
digitalWrite(Actuator_relay4,LOW);

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 HumTerraGet()
   {
     HumTerraINMin=EEPROM_read_byte(2);
              if ((t.sec==0) or (t.sec==10) or (t.sec==20) or (t.sec==30)or (t.sec==40) or (t.sec==50))
                    {
                      digitalWrite(HumTerraPower,HIGH);
                     delay(1000);  
                     HumTerraTmp=analogRead(HumTerraIn);              
                     HumTerra=map(HumTerraTmp,0,1023,99.9,0);
                     if (HumTerra>HumTerraINMin) flagIrrWater=1;
                     if (HumTerra<HumTerraINMin) flagIrrWater=0;
                    }                
              else 
              if ((t.sec==2) or (t.sec==12) or (t.sec==22) or (t.sec==32) or (t.sec==42) or (t.sec==52)){ digitalWrite(HumTerraPower,LOW);}
            
              
   }    
//=========== Отработка актуатора
void Actuator()
{
   //EEPROM_write_byte(57,0); //заносим первоначальное значение 1 раз при первой загрузке скетча
    TINMin=EEPROM_read_byte(0);//Считаем из постоянной памяти МИН температуру 
    TINMax=EEPROM_read_byte(1);//Считаем из постоянной памяти МАКС температуру
    if (TIn==0) {lcd.setCursor(9,0);lcd.print("[?]");} //если датчик не работает то выводим информацию о неисправности
    if (EEPROM_read_byte(57)==1) {lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;}
    if (EEPROM_read_byte(57)==0) {lcd.setCursor(9, 3);lcd.print("B\2K ");relayStatusActuator=LOW;}
   
        if ((TIn>TINMax)&&relayStatusActuator==LOW) {lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;EEPROM_write_byte(57,1);flagActManual=0;open_windows();}
          else
        if ((TIn<TINMin)&&relayStatusActuator==HIGH) {lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;EEPROM_write_byte(57,0);flagActManual=1; close_windows();}
          else
        if ((TIn==0) or (TIn<TINMin) or (TIn==TINMin))  flagActManual=1; //Если значения не в заданном диапазоне для открытия позволяем вручную управлять 
}
//=========== Отработка автополива
void  Irrigation() 
{
  // HumTerraINMin=EEPROM_read_byte(2);
   //HumTerraINMax=EEPROM_read_byte(3);
   
   //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&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("P");}
       if (relayStatusIrr==HIGH) {lcd.setCursor(6,1);lcd.print(char(255));}
       if (Timer==1&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("T");}
       if  (EEPROM_read_byte(53)==1) {digitalWrite(irrigator_relay,HIGH);relayStatusIrr=HIGH;flagIrrManual=0;}
       if  (EEPROM_read_byte(53)==0) {digitalWrite(irrigator_relay,LOW);relayStatusIrr=LOW;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,HIGH);EEPROM_write_byte(53,1);}
                                           else 
                                         if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                         }
                                   }     
                   }
                   if (Timer==0)
                  {digitalWrite(irrigator_relay,LOW);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==LOW) {lcd.setCursor(10,1);lcd.print("P");}
    if (Timer2==1&&relayStatusIrr2==LOW) {lcd.setCursor(10,1);lcd.print("T");}
    if (relayStatusIrr2==HIGH) {lcd.setCursor(10,1);lcd.print(char(255));}
    if  (EEPROM_read_byte(54)==1) {digitalWrite(irrigator_relay2,HIGH);relayStatusIrr2=HIGH;flagIrrManual2=0;}
    if  (EEPROM_read_byte(54)==0) {digitalWrite(irrigator_relay2,LOW);relayStatusIrr2=LOW;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,HIGH);EEPROM_write_byte(54,1);}
                                           else 
                                         if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                         }
                                   }     
                  }
                   if (Timer2==0)
                  {digitalWrite(irrigator_relay2,LOW);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&&flagIrrWater==0&&relayStatusIrr3==LOW) {lcd.setCursor(14,1);lcd.print("P");}
    if (Timer3==1&&flagIrrWater==0&&relayStatusIrr3==LOW) {lcd.setCursor(14,1);lcd.print("T");}
    if (relayStatusIrr3==HIGH) {lcd.setCursor(14,1);lcd.print(char(255));}
    if (flagIrrWater==1) {lcd.setCursor(14,1);lcd.write(0);digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);} //Б - блокировка по дождю
    if  (EEPROM_read_byte(55)==1) {digitalWrite(irrigator_relay3,HIGH);relayStatusIrr3=HIGH;flagIrrManual3=0;}
    if  (EEPROM_read_byte(55)==0) {digitalWrite(irrigator_relay3,LOW);relayStatusIrr3=LOW;flagIrrManual3=1;}
    if (Timer3==1&&flagIrrWater==0)  
                   {  
                    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,HIGH);EEPROM_write_byte(55,1);}
                                           else 
                                         if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                         }
                                   }     
                  }            
                   if (Timer3==0)
                  {digitalWrite(irrigator_relay3,LOW);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&&flagIrrWater==0&&relayStatusIrr4==LOW) {lcd.setCursor(18,1);lcd.print("P");}  
    if (Timer4==1&&flagIrrWater==0&&relayStatusIrr4==LOW) {lcd.setCursor(18,1);lcd.print("T");}
    if (relayStatusIrr4==HIGH) {lcd.setCursor(18,1);lcd.print(char(255));}  
    if  (EEPROM_read_byte(56)==1) {digitalWrite(irrigator_relay4,HIGH);relayStatusIrr4=HIGH;flagIrrManual4=0;}
    if  (EEPROM_read_byte(56)==0) {digitalWrite(irrigator_relay4,LOW);relayStatusIrr4=LOW;flagIrrManual4=1;}
    if (flagIrrWater==1) {lcd.setCursor(18,1);lcd.write(0);digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}  //Б - блокировка по дождю 
    if (Timer4==1&&flagIrrWater==0)  
                   {  
                   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,HIGH);EEPROM_write_byte(56,1);}
                                           else 
                                         if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                         }
                                   }     
                 
                  } 
                   if (Timer4==0)
                  {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
}

void StaticButton()
{
 Button_read();
//открываем/закрываем форточку ПРИНУДИТЕЛЬЛНО
   if (button==2&&flag==1)
             {
                if (relayStatusActuator==LOW) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;EEPROM_write_byte(57,1);} 
                   else  
                if (relayStatusActuator==HIGH) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flag=0;EEPROM_write_byte(57,0);}
             } 
   if (button==1&&flag==1){MenuSET();}
   if (button==5&&flag==1){TimerViewer();} 
}
//=========Вывод состояние таймеров (информативное окно)
void TimerViewer ()
{
      lcd.setCursor(0,3);  //чистим нижнюю строчку икрана, от левой инфы
      lcd.print("                    "); 
      int myArray[7]={1,4,7,10,13,16,19}; // для выделения дней в которых уст. таймер
      byte i;
    do
       {
              
       Button_read();
       delay(500);
       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");
                         //int myArray[7]={1,4,7,10,13,16,19};
                        // 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(" ");}
                             }
                                    
               
            }
         if (regim==2)//
           {
               lcd.setCursor(0, 0);
               //lcd.print("2");
               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");
                       //  int myArray[7]={1,4,7,10,13,16,19};
                        // 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(" ");}
                             }
                                    
               
            }
         if (regim==3)//
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 3] - ");
                 if (Timer3==0&&flagIrrWater==0) lcd.print("B\2K\5 ");
                 if (Timer3==1&&flagIrrWater==0) lcd.print("BK\5   ");
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                     //    int myArray[7]={1,4,7,10,13,16,19};
                      //   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(" ");}
                             }
                                    
               
            }
         if (regim==4)
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 4] - ");
                 if (Timer4==0&&flagIrrWater==0) {lcd.print("B\2K\5 ");}
                 if (Timer4==1&&flagIrrWater==0) {lcd.print("BK\5   ");}
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                    //    int myArray[7]={1,4,7,10,13,16,19};
                       //  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(" ");}
                             }
                                    
               
            }
       }       
     while (regim<5);
     regim=0;  
}


//============Вход в Меню настроек и установок
void MenuSET()
{
    do
     {
       Button_read();
       delay(500);
       if (button==1 && flag==1) {regim++;flag=0;}
                 if (regim==1)// реж Установка TINMin и TINMax
                             {
                                TINMin=EEPROM_read_byte(0);
                                TINMax=EEPROM_read_byte(1);
                                lcd.setCursor(0, 0);
                                lcd.print("[1]\6CT TEM\4 BH\6TP\7  ");
                                lcd.setCursor(0, 1);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[min]=");
                                if (TINMin < 10) {lcd.print("0");}
                                lcd.print(TINMin);
                                lcd.print("          ");
                                lcd.setCursor(0, 2);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[max]=");
                                 if (TINMax < 10) lcd.print("0");
                                lcd.print(TINMax);
                                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(9,1);
                                                       if (button==3 && flag==1)
                                                           { if (TINMin < 99)  TINMin++;
                                                           else
                                                            TINMin = 0;
                                                            EEPROM_write_byte(0,TINMin);}
                                                           if (button==4 && flag==1) 
                                                           { if (TINMin > 0)  TINMin--;
                                                           else
                                                            TstartHour = 99;
                                                            EEPROM_write_byte(0,TINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {//lcd.setCursor(19,1);
                                                        lcd.setCursor(9,2);
                                                         if (button==3 && flag==1)
                                                           { if (TINMax <99)  TINMax++;
                                                           else
                                                            TINMax = 0;
                                                            EEPROM_write_byte(1,TINMax);}
                                                         if (button==4 && flag==1) 
                                                           { if (TINMax > 0)  TINMax--;
                                                           else
                                                            TINMax = 99;
                                                            EEPROM_write_byte(1,TINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                   }
                              
                     if(regim==2)//режим Установка HumeTerraMin и HumeTerraMax
                                {
                                HumTerraINMin=EEPROM_read_byte(2);
                            //    HumTerraINMax=EEPROM_read_byte(3);
                                lcd.setCursor(0, 0);
                                lcd.print("[2]\6CT CEHCOP Water");
                                lcd.setCursor(0, 1);
                                lcd.print("HT%");
                                lcd.print("[min]=");
                                if (HumTerraINMin < 10) lcd.print("0");
                                lcd.print(HumTerraINMin);
                                lcd.print("         ");
                                lcd.setCursor(0, 2);
                                lcd.print("HT%");
                                lcd.print("[max]=");
                               // if (HumTerraINMax < 10) lcd.print("0");
                                lcd.print("100");
                                lcd.print("      + ");
                                lcd.setCursor(0,3);
                                lcd.print("MEH\1             <->");
                                
                                lcd.blink();
                                       
                                 lcd.setCursor(10,1);
                                 if (button==3 && flag==1)
                                    { if (HumTerraINMin < 99)  HumTerraINMin++;
                                       else
                                       HumTerraINMin = 0;
                                                          EEPROM_write_byte(2,HumTerraINMin);}
                                       if (button==4 && flag==1) 
                                    { if (HumTerraINMin > 0)  HumTerraINMin--;
                                        else
                                        HumTerraINMin = 99;
                                                          EEPROM_write_byte(2,HumTerraINMin);} 
                                             
                                }
                                
                      if(regim==3)// режим Установка Вроемени Таймера 1 полива
                                {
                                   Timer=EEPROM_read_byte(4);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[3]\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);
                                   // Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                             int 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(" ");}
                             }
                             
                             
                             
                           /*      if (EEPROM_read_byte(24)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(25)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(26)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(27)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(28)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(29)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(30)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(24)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(25)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(26)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(27)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(28)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(29)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(30)==0) {lcd.setCursor(12,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==4)// режим Установка Вроемени Таймера 2 полива
                                { 
                                   Timer2=EEPROM_read_byte(9);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[4]\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);
                                   //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                 
                                   int 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==5)// режим Установка Вроемени Таймера 3 полива
                                {  
                                   Timer3=EEPROM_read_byte(14);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[5]\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);
                                     
                                //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                     int 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==6)// режим Установка Вроемени Таймера 4 полива
                                {               
                                   Timer4=EEPROM_read_byte(19);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[6]\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 +");
                                     int 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==7) //Режим установки часов
                                         { 
                                           lcd.setCursor(0, 0);
                                           lcd.print("[7]\6CT \3ACOB        ");
                                        //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                           lcd.setCursor(0, 1);
                                              if (t.date<10){lcd.print("0");}
                                           lcd.print(t.date);
                                           lcd.print("/");
                                           //lcd.setCursor(3,1);
                                           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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   timeDS3231();
                                                              }              
                                                      /*   if (posic==6)
                                                              {
                                                               lcd.setCursor(7,2);
                                                               if (button==3 && flag==1)
                                                                 { if (t.sec < 59)  t.sec++;
                                                                   else
                                                                    t.sec = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (button==4 && flag==1)
                                                                 { if (t.sec > 0)  t.sec--;
                                                                   else
                                                                    t.sec = 23;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                              }             
                                                       */        
                                                 if (posic==6) posic=0;
    
                                               }
////=============================================================================================
/*if (regim==8) //Режим калибровки форточки и двери
                                         { 
                                           lcd.setCursor(0, 0);
                                           lcd.print("[8]\6CT \7HT. BPEMEH\7 ");
                                           lcd.setCursor(0,1);
                                           lcd.print("OKHO1 ");                 
                                           lcd.setCursor(6,1);
                                           lcd.print("OTK-"); 
                                           if (EEPROM_read_byte(58)<10) {lcd.print("0");}
                                           lcd.print(EEPROM_read_byte(58));
                                           lcd.setCursor(12,1);
                                           lcd.print(" 3AK-");
                                           if (EEPROM_read_byte(59)<10) {lcd.print("0");}
                                           lcd.print(EEPROM_read_byte(59));                                          
                                           lcd.setCursor(0,2);
                                           lcd.print("OKHO2 ");                 
                                           lcd.setCursor(6,2);
                                           lcd.print("OTK-"); 
                                           if (EEPROM_read_byte(60)<10) {lcd.print("0");}
                                           lcd.print(EEPROM_read_byte(60));
                                           lcd.setCursor(12,2);
                                           lcd.print(" 3AK-");
                                           if (EEPROM_read_byte(61)<10) {lcd.print("0");}      
                                           lcd.print(EEPROM_read_byte(61));                          
                                           lcd.setCursor(19,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(10,1);
                                                               if (button==3 && flag==1)
                                                                   { if (EEPROM_read_byte(58) < 59)  TOpenD1++;
                                                                     else 
                                                                     TOpenD1=0;
                                                                     EEPROM_write_byte(58,TOpenD1);
                                                                   }
                                                                   
                                                                if (button==4 && flag==1)
                                                                  { if (EEPROM_read_byte(58) > 0)  TOpenD1--;
                                                                     else 
                                                                     TOpenD1=59;
                                                                     EEPROM_write_byte(58,TOpenD1);
                                                                  }                                                              } 
                                                              }
                                                      if (posic==1)
                                                              {
                                                                lcd.setCursor(19,1);
                                                               if (button==3 && flag==1)
                                                                   { if (EEPROM_read_byte(59) < 59)  TCloseD1++;
                                                                     else 
                                                                     TCloseD1=0;
                                                                     EEPROM_write_byte(59,TCloseD1);
                                                                   }
                                                                if (button==4 && flag==1)
                                                                  {  if (EEPROM_read_byte(59) > 0)  TCloseD1--;
                                                                     else 
                                                                     TCloseD1=59;
                                                                     EEPROM_write_byte(59,TCloseD1);
                                                                  }     
                                                              }
                                                     if (posic==2)
                                                              {
                                                                lcd.setCursor(10,2);
                                                               if (button==3 && flag==1)
                                                                   { if (EEPROM_read_byte(60) < 59)  TOpenD2++;
                                                                     else 
                                                                     TOpenD2=0;
                                                                     EEPROM_write_byte(60,TOpenD2);
                                                                   }
                                                                if (button==4 && flag==1)
                                                                  { if (EEPROM_read_byte(60) > 0)  TOpenD2--;
                                                                     else 
                                                                     TOpenD2=59;
                                                                     EEPROM_write_byte(60,TOpenD2);
                                                                  }
                                                              }
                                                       if (posic==3)
                                                              {
                                                                 lcd.setCursor(18,2);
                                                               if (button==3 && flag==1)
                                                                   { if (EEPROM_read_byte(61) < 59)  TCloseD2++;
                                                                     else 
                                                                     TCloseD2=0;
                                                                     EEPROM_write_byte(61,TCloseD2);
                                                                   }
                                                                if (button==4 && flag==1)
                                                                  { if (EEPROM_read_byte(61) >0 )  TCloseD2--;
                                                                     else 
                                                                     TCloseD2=59;
                                                                     EEPROM_write_byte(61,TCloseD2);
                                                                   } 
                                                              }
                                                 if (posic==4) posic=0;
    
                                                              */
////=============================================================================================
     }
     while (regim<8); //////////////////////
     lcd.clear();
     lcd.noBlink();
     regim=0;
     posic=0; 
    
}    

void TimePrint() 
 {
   lcd.setCursor(11, 2);
      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(" ");
  }
 
 //=========== Обработки печати и вывода на дисплейчик (Влажности воздуха, температуры воздуха , влажности земли)
void printDin()
{
      lcd.setCursor(0, 0);
      lcd.print("H%=");
        if (HumIn<10) lcd.print('0'); 
      lcd.print(int(HumIn));
      lcd.print(" ");
      lcd.setCursor(6, 0);
      lcd.print("t"); 
      lcd.print((char)223);
      lcd.print("=");
        if (TIn<10) lcd.print('0');
      lcd.print(int(TIn));
      lcd.print(" ");
      lcd.setCursor(12,0);
      lcd.print("HT=");  
      lcd.print(HumTerra);
      lcd.print("%   ");
    }  
//=========== Обработки печати и вывода на дисплейчик СТАТИКИ
void printStat ()
   {
      lcd.setCursor(0,3);
      lcd.print("MEH BEHT>");
      lcd.setCursor(13,3);
      lcd.print("T.\4O\5>>");
      lcd.setCursor(0,1); 
      lcd.print("\4O\5-1[");
      lcd.setCursor(7,1);lcd.print("]2[");
      lcd.setCursor(11,1);lcd.print("]3[");
      lcd.setCursor(15,1);lcd.print("]4[");
      lcd.setCursor(19,1);lcd.print("]");  
      lcd.setCursor(0,2);
      lcd.print("BEHT");  
        if (flagActManual==0) {lcd.setCursor(4,2);lcd.print("[ABTO] ");}
        if (flagActManual==1) {lcd.setCursor(4,2);lcd.print("[P\6\3H] ");}
   }

void open_windows() //открываем форточку
{
 digitalWrite(Actuator_relay, HIGH); //открываем 1-ю форточку
  //digitalWrite(Actuator_relay4, LOW);
  delay(5000); //время на открывание
  digitalWrite(Actuator_relay, LOW);
  delay(1000);
  digitalWrite(Actuator_relay2, HIGH); //открываем 2-ю форточку
 // digitalWrite(Actuator_relay3, LOW);
   delay(5000); //время на открывание
  digitalWrite(Actuator_relay2, LOW);

}
void close_windows() //зарываем форточку
{
 // digitalWrite(Actuator_relay, LOW); //Закрываем 1-ю форточку
 digitalWrite(Actuator_relay4, HIGH);
   delay(5000);; //время на закрывание
 digitalWrite(Actuator_relay4, LOW);
 delay(1000);
 // digitalWrite(Actuator_relay2, LOW); //Закрываем 2-ю форточку
  digitalWrite(Actuator_relay3, HIGH);
   delay(5000); //время на закрывание
  digitalWrite(Actuator_relay3, LOW);
}

void loop()
{
 timeDS3231();
 TInGet();
 HumInGet();
 HumTerraGet();
 Actuator();
 Irrigation();
 StaticButton();
 TimePrint();
 printDin();
 printStat();
}

 

YRA
Offline
Зарегистрирован: 10.01.2015

Спасибо Сергей , вечером дома попробую.

YRA
Offline
Зарегистрирован: 10.01.2015

Нашел на работе UNO,залил скетч выдала :

"avrdude:verification error,first mismatch ar bute 0x7800
                  off !=0x62
avrdude:verification error; content mismatc"
где рыть???
При этом написала, что скет использует 99%  и зависает на 
"Выгружаем"
 
mrGoReC
Offline
Зарегистрирован: 16.06.2015

Убрал все лишнее в UNO  влазеет. Управление актуатором с использованием делителя на резисторах для +12 в, он отлавливает просадку и отрубает двигатель, это вместо концевиков )))

если кто знает как еще код оптимизировать пишите исправляйте, буду очень рад )))


/* Автополив v3.0 Рус 4-х канальный полив, 3-4 канал блокировка при дожде!!!
Sergey Samokish Sergey_nevinka@mail.ru
Полив: - по таймеру недельному
       
Проветривание: - по датчику температурцы в теплице
               - вручную с кнопки
Адреса в EEPROM
EEPROM 0 Минимальное значение температуры актуатора
EEPROM 1 Максимальное значение темп актуатора
 1 линия полива
EEPROM 2 Минимальное значение влажности земли
EEPROM 3 Максимальное значение влажности земли

EEPROM 4 1/0 включение отключение полива (0=off / 1=on) 1 канал
EEPROM 5 стоп час полива
EEPROM 6 стоп мин полива
EEPROM 7 старт час полива
EEPROM 8 старт минута полива

EEPROM 9 1/0 включение отключение полива (0=off / 1=on) 2 канал
EEPROM 10 стоп час полива
EEPROM 11 стоп мин полива
EEPROM 12 старт час полива
EEPROM 13 старт минута полива

EEPROM 14 1/0 включение отключение полива (0=off / 1=on) 3 канал
EEPROM 15 стоп час полива
EEPROM 16 стоп мин полива
EEPROM 17 старт час полива
EEPROM 18 старт минута полива

EEPROM 19 1/0 включение отключение полива (0=off / 1=on) 4 кана
EEPROM 20 стоп час полива
EEPROM 21 стоп мин полива
EEPROM 22 старт час полива
EEPROM 23 старт минута полива

///дни недели для таймера вкл и или выкл в конкретный день
EEPROM 24  Пн
EEPROM 25  Вт
EEPROM 26  Ср
EEPROM 27  Чт
EEPROM 28  Пт
EEPROM 29  Сб
EEPROM 30  Вс

EEPROM 31  Пн
EEPROM 32  Вт
EEPROM 33  Ср
EEPROM 34  Чт
EEPROM 35  Пт
EEPROM 36  Сб
EEPROM 37  Вс

EEPROM 38  Пн
EEPROM 39  Вт
EEPROM 40  Ср
EEPROM 41  Чт
EEPROM 42  Пт
EEPROM 43  Сб
EEPROM 44  Вс

EEPROM 45  Пн
EEPROM 46  Вт
EEPROM 47  Ср
EEPROM 48  Чт
EEPROM 49  Пт
EEPROM 50  Сб
EEPROM 51  Вс

EEPROM 53 Состояние полива вкл/выкл для востонавления после сбоя питания канал 1
EEPROM 54 Состояние полива вкл/выкл для востонавления после сбоя питания канал 2
EEPROM 55 Состояние полива вкл/выкл для востонавления после сбоя питания канал 3
EEPROM 56 Состояние полива вкл/выкл для востонавления после сбоя питания канал 4
EEPROM 57 Состояние Актуатора вкл/выкл для востонавления после сбоя питания !!!!ЕСЛИ не работает датчик температуры!!! если работает то он и так откроет вентиляцию


*/
#define HumTerraPower 9                   //пин для питания датчика влажности 
#define KEYBOARD A0
#define HumTerraIn A1   //пин снятия влажности 
#define UVinIN A2  //пин снятия напряжения U VIN на делителе  +Vin -20kOm - отвод на A2 - 9,4 kOm - земля. все это нужно для управления актуаторами.
#define irrigator_relay 10                //пин включения полива   (1) MP701 модуль реле от DESSY.ru
#define irrigator_relay2 11               //пин включения полива   (2)
#define irrigator_relay3 12               //пин включения полива   (3)
#define irrigator_relay4 13               //пин включения полива   (4) 
#include <EEPROM2.h>
//задаем пины управления двигателями форточки на реле 1-4
#define Actuator_relay  4    //пин включения реле управления форточкой   (1) MP701 модуль реле от DESSY.ru     
#define Actuator_relay2 5    //пин включения реле управления форточкой   (2)
#define Actuator_relay3 6    //пин включения реле управления форточкой   (3)
#define Actuator_relay4 7    //пин включения реле управления форточкой   (4)
boolean ActuatorStatus;
//Создаем переменные для работы с термометром
int TINMin=0;                             //переменная Min температуры актуатора
int TINMax=0;                             // переменная Max температуры актуатора
int TIn=0;                              //переменная температуры воздуха в теплице
//Создаем переменные для работы с Гигрометром
int HumTerraINMin=0;                     //переменная Min влажность земли
int HumTerraINMax=0;                     // переменная Max влажность земли
int HumTerraTmp=0;                           // переменная промежуточной влажности земли 
int HumTerra=0;                          // переменная текущей влажности земли  
int HumIn=0;                            //переменная влажности воздуха в теплице
int UVinTMP;  //Для измерения напряжение Vin на резистивном делитележ
//Объявим переменную для хранения состояния реле

boolean relayStatusIrr=EEPROM_read_byte(53); //реле полива
//boolean relayStatusIrr=LOW;

boolean relayStatusIrr2=EEPROM_read_byte(54); //реле полива
//boolean relayStatusIrr2=LOW;
boolean relayStatusIrr3=EEPROM_read_byte(55); //реле полива
boolean relayStatusIrr4=EEPROM_read_byte(56); //реле полива
boolean relayStatusActuator=EEPROM_read_byte(57); //реле актуатора

// подключение датчиков DHT11
#include <DHT.h>
#define DHTIN 8 //определяем пин
#define DHTTYPE DHT11     // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTIN, DHTTYPE);

//LCD 200x4 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(0x27,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;
int flag=0; //флаг былали нажата кнопка

//функция считывания клавиатуры НАДО калибровать под контретную сборку резисторов!!!!!!!
int getPressedButton()
{
  int buttonValue = analogRead(KEYBOARD);
  delay(50); //задержка для устранения дребезга
  if (buttonValue < 100) {
    return BUTTON_RIGHT;  
  }
  else if (buttonValue < 300){
    return BUTTON_DOWN;
    }
  else if (buttonValue < 700) {
    return BUTTON_UP;
  }
  else if (buttonValue < 800){
    return BUTTON_LEFT;
  }
  else if (buttonValue < 900){
    return BUTTON_SELECT;
  }
  return BUTTON_NONE;
}

int Tday=0; //день недели
int regim=0; //для меню
int posic=0;
int tHumTerra=0; //флаг вкл измеревлаж почвы
int flagActManual=0;//флаг Актуатором
int flagIrrManual=0;//флаг зона 1
int flagIrrManual2=0;//флаг зона 2
int flagIrrManual3=0;//флаг зона 3
int flagIrrManual4=0;//флаг зона 4
int flagIrrWater=0;//флаг ДОЖДЯ
int Timer=0; //таймера 1
int Timer2=0; //таймера 2
int Timer3=0; //таймера 3
int 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" //модифицированная отсюда: http://arduino.ru/forum/programmirovanie/chasy-i-arduino#comment-112470
DS3231  rtc(SDA, SCL);
Time  t; 

void setup() 
   {
      Serial.begin(9600);
      Serial.println("Служебка.......");
         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("ABTO\4O\5\7B v.3.0 P\6");
         Wire.begin(); 
         rtc.begin();
        lcd.setCursor(0, 2);
        t = rtc.getTime();
        if (t.date<10) lcd.print("0");
        lcd.print(t.date);
        lcd.print(" ");
        lcd.print(rtc.getMonthStr());
        lcd.print(" ");
        lcd.print(t.year);
        lcd.setCursor(0,3);
          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);}
          if (t.dow==7) lcd.print("BC");                                        
        lcd.print(" ");
        // Send time
        lcd.println(rtc.getTimeStr());
        lcd.print("    ");
        lcd.setCursor(0,1);
        delay(2000);
        lcd.clear();
        
        dht.begin(); 
      //     The following lines can be uncommented to set the date and time
    // rtc.setDOW(TUESDAY);     // Set Day-of-Week to SUNDAY
     //rtc.setTime(9,0, 0);     // Set the time to 12:00:00 (24hr format)
     //rtc.setDate(31,05, 2016);   // Set the date to January 1st, 2014  
  
//Настроим пин для управления реле
  pinMode(irrigator_relay,OUTPUT);
  digitalWrite(irrigator_relay,LOW);
  pinMode(irrigator_relay2,OUTPUT);
  digitalWrite(irrigator_relay2,LOW);
  pinMode(irrigator_relay3,OUTPUT);
  digitalWrite(irrigator_relay3,LOW);
  pinMode(irrigator_relay4,OUTPUT);
  digitalWrite(irrigator_relay4,LOW);
  pinMode (HumTerraPower,OUTPUT);
  digitalWrite (HumTerraPower,LOW);

//Настройка пинов для управления двигателями форточки
pinMode(Actuator_relay, OUTPUT);
digitalWrite(Actuator_relay,LOW);
pinMode(Actuator_relay2, OUTPUT);
digitalWrite(Actuator_relay2,LOW);
pinMode(Actuator_relay3, OUTPUT);
digitalWrite(Actuator_relay3,LOW);
pinMode(Actuator_relay4, OUTPUT);
digitalWrite(Actuator_relay4,LOW);

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 HumTerraGet()
   {
     HumTerraINMin=EEPROM_read_byte(2);
              if ((t.sec==0) or (t.sec==10) or (t.sec==20) or (t.sec==30)or (t.sec==40) or (t.sec==50))
                    {
                      digitalWrite(HumTerraPower,HIGH);
                     delay(1000);  
                     HumTerraTmp=analogRead(HumTerraIn);              
                     HumTerra=map(HumTerraTmp,0,1023,99.9,0);
                     if (HumTerra>HumTerraINMin) flagIrrWater=1;
                     if (HumTerra<HumTerraINMin) flagIrrWater=0;
                    }                
              else 
              if ((t.sec==2) or (t.sec==12) or (t.sec==22) or (t.sec==32) or (t.sec==42) or (t.sec==52)){ digitalWrite(HumTerraPower,LOW);}
            
              
   }    
   
   void UVinGet() //измеряем напряжение на Vin с помощью делителя
   {
           UVinTMP=analogRead(UVinIN);              
           //Serial.println(UVin);
           Serial.println(UVinTMP);
           if (UVinTMP>600) ActuatorStatus=true; //3,85 В
            else 
            if (UVinTMP<600) ActuatorStatus=false; //2,74 В так просаживается БП АТХ
   }    
//=========== Отработка актуатора
void Actuator()
{
   //EEPROM_write_byte(57,0); //заносим первоначальное значение 1 раз при первой загрузке скетча
    TINMin=EEPROM_read_byte(0);//Считаем из постоянной памяти МИН температуру 
    TINMax=EEPROM_read_byte(1);//Считаем из постоянной памяти МАКС температуру
    if (TIn==0) {lcd.setCursor(9,0);lcd.print("[?]");} //если датчик не работает то выводим информацию о неисправности
    if (EEPROM_read_byte(57)==1) {lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;}
    if (EEPROM_read_byte(57)==0) {lcd.setCursor(9, 3);lcd.print("B\2K ");relayStatusActuator=LOW;}
   
        if ((TIn>TINMax)&&relayStatusActuator==LOW) {lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;EEPROM_write_byte(57,1);flagActManual=0;open_windows();}
          else
        if ((TIn<TINMin)&&relayStatusActuator==HIGH) {lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;EEPROM_write_byte(57,0);flagActManual=1; close_windows();}
          else
        if ((TIn==0) or (TIn<TINMin) or (TIn==TINMin))  flagActManual=1; //Если значения не в заданном диапазоне для открытия позволяем вручную управлять 
}
//=========== Отработка автополива
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&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("P");}
       if (relayStatusIrr==HIGH) {lcd.setCursor(6,1);lcd.print(char(255));}
       if (Timer==1&&relayStatusIrr==LOW) {lcd.setCursor(6,1);lcd.print("T");}
       if  (EEPROM_read_byte(53)==1) {digitalWrite(irrigator_relay,HIGH);relayStatusIrr=HIGH;flagIrrManual=0;}
       if  (EEPROM_read_byte(53)==0) {digitalWrite(irrigator_relay,LOW);relayStatusIrr=LOW;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,HIGH);EEPROM_write_byte(53,1);}
                                           else 
                                         if (t.hour==TstopHour&&t.min==TstopMinute) {digitalWrite(irrigator_relay,LOW);EEPROM_write_byte(53,0);}
                                         }
                                   }     
                   }
                   if (Timer==0)
                  {digitalWrite(irrigator_relay,LOW);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==LOW) {lcd.setCursor(10,1);lcd.print("P");}
    if (Timer2==1&&relayStatusIrr2==LOW) {lcd.setCursor(10,1);lcd.print("T");}
    if (relayStatusIrr2==HIGH) {lcd.setCursor(10,1);lcd.print(char(255));}
    if  (EEPROM_read_byte(54)==1) {digitalWrite(irrigator_relay2,HIGH);relayStatusIrr2=HIGH;flagIrrManual2=0;}
    if  (EEPROM_read_byte(54)==0) {digitalWrite(irrigator_relay2,LOW);relayStatusIrr2=LOW;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,HIGH);EEPROM_write_byte(54,1);}
                                           else 
                                         if (t.hour==TstopHour2&&t.min==TstopMinute2) {digitalWrite(irrigator_relay2,LOW);EEPROM_write_byte(54,0);}
                                         }
                                   }     
                  }
                   if (Timer2==0)
                  {digitalWrite(irrigator_relay2,LOW);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&&flagIrrWater==0&&relayStatusIrr3==LOW) {lcd.setCursor(14,1);lcd.print("P");}
    if (Timer3==1&&flagIrrWater==0&&relayStatusIrr3==LOW) {lcd.setCursor(14,1);lcd.print("T");}
    if (relayStatusIrr3==HIGH) {lcd.setCursor(14,1);lcd.print(char(255));}
    if (flagIrrWater==1) {lcd.setCursor(14,1);lcd.write(0);digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);} //Б - блокировка по дождю
    if  (EEPROM_read_byte(55)==1) {digitalWrite(irrigator_relay3,HIGH);relayStatusIrr3=HIGH;flagIrrManual3=0;}
    if  (EEPROM_read_byte(55)==0) {digitalWrite(irrigator_relay3,LOW);relayStatusIrr3=LOW;flagIrrManual3=1;}
    if (Timer3==1&&flagIrrWater==0)  
                   {  
                    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,HIGH);EEPROM_write_byte(55,1);}
                                           else 
                                         if (t.hour==TstopHour3&&t.min==TstopMinute3) {digitalWrite(irrigator_relay3,LOW);EEPROM_write_byte(55,0);}
                                         }
                                   }     
                  }            
                   if (Timer3==0)
                  {digitalWrite(irrigator_relay3,LOW);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&&flagIrrWater==0&&relayStatusIrr4==LOW) {lcd.setCursor(18,1);lcd.print("P");}  
    if (Timer4==1&&flagIrrWater==0&&relayStatusIrr4==LOW) {lcd.setCursor(18,1);lcd.print("T");}
    if (relayStatusIrr4==HIGH) {lcd.setCursor(18,1);lcd.print(char(255));}  
    if  (EEPROM_read_byte(56)==1) {digitalWrite(irrigator_relay4,HIGH);relayStatusIrr4=HIGH;flagIrrManual4=0;}
    if  (EEPROM_read_byte(56)==0) {digitalWrite(irrigator_relay4,LOW);relayStatusIrr4=LOW;flagIrrManual4=1;}
    if (flagIrrWater==1) {lcd.setCursor(18,1);lcd.write(0);digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}  //Б - блокировка по дождю 
    if (Timer4==1&&flagIrrWater==0)  
                   {  
                   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,HIGH);EEPROM_write_byte(56,1);}
                                           else 
                                         if (t.hour==TstopHour4&&t.min==TstopMinute4) {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
                                         }
                                   }     
                 
                  } 
                   if (Timer4==0)
                  {digitalWrite(irrigator_relay4,LOW);EEPROM_write_byte(56,0);}
}

void StaticButton()
{
 Button_read();
//открываем/закрываем форточку ПРИНУДИТЕЛЬЛНО
   if (button==2&&flag==1)
             {
                if (relayStatusActuator==LOW) {open_windows(); lcd.setCursor(9, 3);lcd.print("BK ");relayStatusActuator=HIGH;flag=0;EEPROM_write_byte(57,1);} 
                   else  
                if (relayStatusActuator==HIGH) {close_windows(); lcd.setCursor(9, 3);lcd.print("B\2K");relayStatusActuator=LOW;flag=0;EEPROM_write_byte(57,0);}
             } 
   if (button==1&&flag==1){MenuSET();}
//  if (button==5&&flag==1){TimerViewer();} 
}
//=========Вывод состояние таймеров (информативное окно) !!!!!!!!!!!!если в UNO не влазеет убираем совсем!!!!!!!!!!!!!!!!!!!!!!!!!!!
/*void TimerViewer ()
{
      lcd.setCursor(0,3);  //чистим нижнюю строчку икрана, от левой инфы
      lcd.print("                    "); 
      int myArray[7]={1,4,7,10,13,16,19}; // для выделения дней в которых уст. таймер
      byte i;
    do
       {
              
       Button_read();
       delay(500);
       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");
                         //int myArray[7]={1,4,7,10,13,16,19};
                        // 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(" ");}
                             }
                                    
               
            }
         if (regim==2)//
           {
               lcd.setCursor(0, 0);
               //lcd.print("2");
               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");
                       //  int myArray[7]={1,4,7,10,13,16,19};
                        // 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(" ");}
                             }
                                    
               
            }
         if (regim==3)//
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 3] - ");
                 if (Timer3==0&&flagIrrWater==0) lcd.print("B\2K\5 ");
                 if (Timer3==1&&flagIrrWater==0) lcd.print("BK\5   ");
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                     //    int myArray[7]={1,4,7,10,13,16,19};
                      //   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(" ");}
                             }
                                    
               
            }
         if (regim==4)
            {
               lcd.setCursor(0, 0);
               lcd.print("[TA\7MEP 4] - ");
                 if (Timer4==0&&flagIrrWater==0) {lcd.print("B\2K\5 ");}
                 if (Timer4==1&&flagIrrWater==0) {lcd.print("BK\5   ");}
                 if (flagIrrWater==1) {lcd.write(0); lcd.print("\5OK\7P");}
               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");
                    //    int myArray[7]={1,4,7,10,13,16,19};
                       //  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(" ");}
                             }
                                    
               
            }
       }       
     while (regim<5);
     regim=0;  
}

*/

//============Вход в Меню настроек и установок
void MenuSET()
{
    do
     {
       Button_read();
       delay(500);
       if (button==1 && flag==1) {regim++;flag=0;}
                 if (regim==1)// реж Установка TINMin и TINMax
                             {
                                TINMin=EEPROM_read_byte(0);
                                TINMax=EEPROM_read_byte(1);
                                lcd.setCursor(0, 0);
                                lcd.print("[1]\6CT TEM\4 BH\6TP\7  ");
                                lcd.setCursor(0, 1);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[min]=");
                                if (TINMin < 10) {lcd.print("0");}
                                lcd.print(TINMin);
                                lcd.print("          ");
                                lcd.setCursor(0, 2);
                                lcd.print("t");
                                lcd.print(char(223));
                                lcd.print("[max]=");
                                 if (TINMax < 10) lcd.print("0");
                                lcd.print(TINMax);
                                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(9,1);
                                                       if (button==3 && flag==1)
                                                           { if (TINMin < 99)  TINMin++;
                                                           else
                                                            TINMin = 0;
                                                            EEPROM_write_byte(0,TINMin);}
                                                           if (button==4 && flag==1) 
                                                           { if (TINMin > 0)  TINMin--;
                                                           else
                                                            TstartHour = 99;
                                                            EEPROM_write_byte(0,TINMin);} 
                                                      } 
                                              if (posic==1)
                                                      {//lcd.setCursor(19,1);
                                                        lcd.setCursor(9,2);
                                                         if (button==3 && flag==1)
                                                           { if (TINMax <99)  TINMax++;
                                                           else
                                                            TINMax = 0;
                                                            EEPROM_write_byte(1,TINMax);}
                                                         if (button==4 && flag==1) 
                                                           { if (TINMax > 0)  TINMax--;
                                                           else
                                                            TINMax = 99;
                                                            EEPROM_write_byte(1,TINMax);}
                                                       }       
                                              if (posic==2) posic=0;
                                   }
                              
                     if(regim==2)//режим Установка HumeTerraMin и HumeTerraMax
                                {
                                HumTerraINMin=EEPROM_read_byte(2);
                            //    HumTerraINMax=EEPROM_read_byte(3);
                                lcd.setCursor(0, 0);
                                lcd.print("[2]\6CT CEHCOP Water");
                                lcd.setCursor(0, 1);
                                lcd.print("HT%");
                                lcd.print("[min]=");
                                if (HumTerraINMin < 10) lcd.print("0");
                                lcd.print(HumTerraINMin);
                                lcd.print("         ");
                                lcd.setCursor(0, 2);
                                lcd.print("HT%");
                                lcd.print("[max]=");
                               // if (HumTerraINMax < 10) lcd.print("0");
                                lcd.print("100");
                                lcd.print("      + ");
                                lcd.setCursor(0,3);
                                lcd.print("MEH\1             <->");
                                
                                lcd.blink();
                                       
                                 lcd.setCursor(10,1);
                                 if (button==3 && flag==1)
                                    { if (HumTerraINMin < 99)  HumTerraINMin++;
                                       else
                                       HumTerraINMin = 0;
                                                          EEPROM_write_byte(2,HumTerraINMin);}
                                       if (button==4 && flag==1) 
                                    { if (HumTerraINMin > 0)  HumTerraINMin--;
                                        else
                                        HumTerraINMin = 99;
                                                          EEPROM_write_byte(2,HumTerraINMin);} 
                                             
                                }
                                
                      if(regim==3)// режим Установка Вроемени Таймера 1 полива
                                {
                                   Timer=EEPROM_read_byte(4);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[3]\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);
                                   // Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                             int 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(" ");}
                             }
                             
                             
                             
                           /*      if (EEPROM_read_byte(24)==1) {lcd.setCursor(0,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(25)==1) {lcd.setCursor(2,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(26)==1) {lcd.setCursor(4,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(27)==1) {lcd.setCursor(6,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(28)==1) {lcd.setCursor(8,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(29)==1) {lcd.setCursor(10,3);lcd.print(char(94));}
                                 if (EEPROM_read_byte(30)==1) {lcd.setCursor(12,3);lcd.print(char(94));}                                 
                                 if (EEPROM_read_byte(24)==0) {lcd.setCursor(0,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(25)==0) {lcd.setCursor(2,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(26)==0) {lcd.setCursor(4,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(27)==0) {lcd.setCursor(6,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(28)==0) {lcd.setCursor(8,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(29)==0) {lcd.setCursor(10,3);lcd.print(" ");}
                                 if (EEPROM_read_byte(30)==0) {lcd.setCursor(12,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==4)// режим Установка Вроемени Таймера 2 полива
                                { 
                                   Timer2=EEPROM_read_byte(9);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[4]\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);
                                   //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                 
                                   int 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==5)// режим Установка Вроемени Таймера 3 полива
                                {  
                                   Timer3=EEPROM_read_byte(14);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[5]\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);
                                     
                                //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                   lcd.setCursor(0, 1);
                                   lcd.print("BK\5=");
                                   //lcd.setCursor(4,1);
                                       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 +");
                                     int 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==6)// режим Установка Вроемени Таймера 4 полива
                                {               
                                   Timer4=EEPROM_read_byte(19);
                                   lcd.setCursor(0, 0);
                                   lcd.print("[6]\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 +");
                                     int 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==7) //Режим установки часов
                                         { 
                                           lcd.setCursor(0, 0);
                                           lcd.print("[7]\6CT \3ACOB        ");
                                        //   Button_read(); //читаем кнопки // проверяем нажата ли кнопка
                                           lcd.setCursor(0, 1);
                                              if (t.date<10){lcd.print("0");}
                                           lcd.print(t.date);
                                           lcd.print("/");
                                           //lcd.setCursor(3,1);
                                           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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   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();}
                                                                   timeDS3231();
                                                              }              
                                                      /*   if (posic==6)
                                                              {
                                                               lcd.setCursor(7,2);
                                                               if (button==3 && flag==1)
                                                                 { if (t.sec < 59)  t.sec++;
                                                                   else
                                                                    t.sec = 0;
                                                                   rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                               if (button==4 && flag==1)
                                                                 { if (t.sec > 0)  t.sec--;
                                                                   else
                                                                    t.sec = 23;
                                                                    rtc.setTime(t.hour,t.min,t.sec);
                                                                   timeDS3231();}
                                                              }             
                                                       */        
                                                 if (posic==6) posic=0;
    
                                               }

     }
     while (regim<8); //////////////////////
     lcd.clear();
     lcd.noBlink();
     regim=0;
     posic=0; 
    
}    

void TimePrint() 
 {
   lcd.setCursor(11, 2);
      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(" ");
  }
 
 //=========== Обработки печати и вывода на дисплейчик (Влажности воздуха, температуры воздуха , влажности земли)
void printDin()
{
      lcd.setCursor(0, 0);
      lcd.print("H%=");
        if (HumIn<10) lcd.print('0'); 
      lcd.print(int(HumIn));
      lcd.print(" ");
      lcd.setCursor(6, 0);
      lcd.print("t"); 
      lcd.print((char)223);
      lcd.print("=");
        if (TIn<10) lcd.print('0');
      lcd.print(int(TIn));
      lcd.print(" ");
      lcd.setCursor(12,0);
      lcd.print("HT=");  
      lcd.print(HumTerra);
      lcd.print("%   ");
    }  
//=========== Обработки печати и вывода на дисплейчик СТАТИКИ
void printStat ()
   {
      lcd.setCursor(0,3);
      lcd.print("MEH BEHT>");
      lcd.setCursor(13,3);
      lcd.print("T.\4O\5>>");
      lcd.setCursor(0,1); 
      lcd.print("\4O\5-1[");
      lcd.setCursor(7,1);lcd.print("]2[");
      lcd.setCursor(11,1);lcd.print("]3[");
      lcd.setCursor(15,1);lcd.print("]4[");
      lcd.setCursor(19,1);lcd.print("]");  
      lcd.setCursor(0,2);
      lcd.print("BEHT");  
        if (flagActManual==0) {lcd.setCursor(4,2);lcd.print("[ABTO] ");}
        if (flagActManual==1) {lcd.setCursor(4,2);lcd.print("[P\6\3H] ");}
   }

void open_windows() //открываем форточку
{  
  do
  {
  digitalWrite(Actuator_relay, HIGH); //открываем 1-ю форточку
  UVinGet();
  Serial.println(UVinTMP);
  }
  while (ActuatorStatus);
  digitalWrite(Actuator_relay, LOW);
 delay(2000);
  do
  {
  digitalWrite(Actuator_relay2, HIGH); //открываем 2-ю форточку
    UVinGet();
  Serial.println(UVinTMP);
  }
   while (ActuatorStatus);
  digitalWrite(Actuator_relay2, LOW);
  
 
 /* digitalWrite(Actuator_relay, HIGH); //открываем 1-ю форточку
  //digitalWrite(Actuator_relay4, LOW);
  delay(10000); //время на открывание
  digitalWrite(Actuator_relay, LOW);
  delay(1000);
  digitalWrite(Actuator_relay2, HIGH); //открываем 2-ю форточку
 // digitalWrite(Actuator_relay3, LOW);
   delay(10000); //время на открывание
  digitalWrite(Actuator_relay2, LOW);*/

}
void close_windows() //зарываем форточку
{
  do
  {
  digitalWrite(Actuator_relay4, HIGH); //закрываем 1-ю форточку
    UVinGet();
  Serial.println(UVinTMP);
  }
    while (ActuatorStatus);
  digitalWrite(Actuator_relay4, LOW);
 delay(2000);
  do
  {
  digitalWrite(Actuator_relay3, HIGH); //Закрываем 2-ю форточку
    UVinGet();
  Serial.println(UVinTMP);
  }
    while (ActuatorStatus);
  digitalWrite(Actuator_relay3, LOW);
  
  /*
 // digitalWrite(Actuator_relay, LOW); //Закрываем 1-ю форточку
 digitalWrite(Actuator_relay4, HIGH);
   delay(10000);; //время на закрывание
 digitalWrite(Actuator_relay4, LOW);
 delay(1000);
 // digitalWrite(Actuator_relay2, LOW); //Закрываем 2-ю форточку
  digitalWrite(Actuator_relay3, HIGH);
   delay(10000); //время на закрывание
  digitalWrite(Actuator_relay3, LOW);*/
}

void loop()
{
 timeDS3231();
 TInGet();
 HumInGet();
 HumTerraGet();
 //UVinGet();
 Actuator();
 Irrigation();
 StaticButton();
 TimePrint();
 printDin();
 printStat();
}

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

80% int можно заменить на byte - освободится прилично памяти.
Зачем для пинов, номера дня недели, флагов, режимов и пр. резервировать число размерностью 65535?

mrGoReC
Offline
Зарегистрирован: 16.06.2015

Понял, спасибо. исправлю.

YRA
Offline
Зарегистрирован: 10.01.2015

Сергей не компилируется что-то

Arduino: 1.6.7 (Windows 7), Плата:"Arduino/Genuino Uno"
 
WARNING: Category '' in library Ethernet2 is not valid. Setting to 'Uncategorized'
WARNING: Category 'power' in library Rest is not valid. Setting to 'Uncategorized'
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\Sketch\sketch_V3.0_RUS_16062016\sketch_V3.0_RUS_16062016\sketch_V3.0_RUS_16062016.ino: In function 'void setup()':
 
sketch_V3.0_RUS_16062016:2253: error: redefinition of 'void setup()'
 
 void setup() {
 
      ^
 
sketch_V3.0_RUS_16062016:274: error: 'void setup()' previously defined here
 
 void setup() 
 
      ^
 
F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\Sketch\sketch_V3.0_RUS_16062016\sketch_V3.0_RUS_16062016\sketch_V3.0_RUS_16062016.ino: In function 'void loop()':
 
sketch_V3.0_RUS_16062016:2258: error: redefinition of 'void loop()'
 
 void loop() {
 
      ^
 
sketch_V3.0_RUS_16062016:2238: error: 'void loop()' previously defined here
 
 void loop()
 
      ^
 
Несколько библиотек найдено для "EEPROM2.h"
 Используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\libraries\EEPROM2
Не используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\EEPROM2
Несколько библиотек найдено для "DHT.h"
 Используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\DHT
Не используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\libraries\DHT_sensor_library
Не используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\DHT11
Несколько библиотек найдено для "LiquidCrystal_I2C.h"
 Используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\LiquidCrystal_I2C_1
Не используется: F:\Arduino\TEPLICA_DIY\arduino-1.6.7_Nevinka\libraries\LiquidCrystal_I2C2004V1
exit status 1
redefinition of 'void setup()'
 
  Это сообщение будет содержать больше информации чем
  "Отображать вывод во время компиляции"
  включено в Файл > Настройки