
#include <OneWire.h>
//22,24,26 ds18b20
#include <Wire.h>
 #include <IRremote.h>
 #include <SPI.h>
#include <EEPROM.h>
#include "U8glib.h"
#include "RTClib.h"
 #include <nrf24l01p.h>
  enum
    {
      SPI_SS_PIN = 44,
      NRF_CE_PIN = 46,
     
      NRF_CHANNEL = 100,
      NRF_POWER_UP_DELAY = 2,
      NRF_PAYLOAD_LENGTH = 16
    };
 char payload[NRF_PAYLOAD_LENGTH]; 
 char payload1[NRF_PAYLOAD_LENGTH];  
boolean rad=0; 
char t_data[] = "t1+103c33v299h95s";
char t_data1[] = "t1+103c33v299h95s";
boolean tx=0;
RTC_DS1307 rtc;
//50-miso, 51-mosi, 53-ss,52-sck
//nrf24l  50-miso, 51-mosi,52-sck,ce-46 ,csn-44 ,irq-42

// U8GLIB_ST7920_128X64_4X u8g(51, 52, 53);	// SPI Com: SCK = en = 26, MOSI = rw = 28, CS = miso =RS= 30--program spi
  U8GLIB_ST7920_128X64_4X u8g(47, 48, 49);	// SPI Com: SCK = en = 26, MOSI = rw = 28, CS = miso =RS= 30--program spi
#include "sav_button.h"
SButton button1(55,50,0,2000,200);//( n входа, время антидребезга,2-Время длинного нажатия кнопки, мс. Если 0, то длинное нажатие не фиксируется
SButton button2(56,50,0,2000,200);//(3-Время удержания кнопки, после которого происходит автонажатие кнопки. Если 0, то не происходит
SButton button3(57,50,0,2000,200);//Интервал срабатывания кнопки при автонажатии (По умолчанию 500 мс)
SButton button4(58,50,0,2000,200);
SButton button5(59,50,0,2000,200);
SButton button6(60,50,0,2000,200);
SButton button7(61,50,0,2000,200);
//SButton button7(61,50,2000,4000,500);
//----------------------НАСТРОЙКИ-----------------------
#define NUM_LEDS 30          // число светодиодов в ленте
#define DI_PIN 14            // пин, к которому подключена лента
#define OFF_TIME 10          // время (секунд), через которое лента выключится при пропадаании сигнала
#define start_flashes 1      // проверка цветов при запуске (1 - включить, 0 - выключить)

#define auto_bright 1        // автоматическая подстройка яркости от уровня внешнего освещения (1 - включить, 0 - выключить)
#define max_bright 255       // максимальная яркость (0 - 255)
#define min_bright 1        // минимальная яркость (0 - 255)
#define bright_constant 500  // константа усиления от внешнего света (0 - 1023)
// чем МЕНЬШЕ константа, тем "резче" будет прибавляться яркость
#define coef 0.9             // коэффициент фильтра (0.0 - 1.0), чем больше - тем медленнее меняется яркость
//----------------------НАСТРОЙКИ-----------------------
boolean kn,kn1;
boolean on1;

int new_bright, new_bright_f=max_bright;
unsigned long bright_timer, off_timer;

#define serialRate 115200  // скорость связи с ПК
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;  // кодовое слово Ada для связи
#include <FastLED.h>
CRGB leds[NUM_LEDS];  // создаём ленту
boolean led_state = true;  // флаг состояния ленты
int rgb1; // счетчик перекл вета по кн foto 0xE106678
// ---------------СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ-----------------
int BOTTOM_INDEX = 0;        // светодиод начала отсчёта
int TOP_INDEX = int(NUM_LEDS / 2);
int EVENODD = NUM_LEDS % 2;
int ledsX[NUM_LEDS][3];     //-ARRAY FOR COPYING WHATS IN THE LED STRIP CURRENTLY (FOR CELL-AUTOMATA, MARCH, ETC)

int thisdelay = 100;          //-FX LOOPS DELAY VAR
int thisstep = 10;           //-FX LOOPS DELAY VAR
int thishue = 0;             //-FX LOOPS DELAY VAR
int thissat = 255;           //-FX LOOPS DELAY VAR

int thisindex = 0;
int thisRED = 0;
int thisGRN = 0;
int thisBLU = 0;
int s = 1;
int a = 16;
int idex = 0;                //-LED INDEX (0 to NUM_LEDS-1
int ihue = 0;                //-HUE (0-255)
int ibright = 0;             //-BRIGHTNESS (0-255)
int isat = 0;                //-SATURATION (0-255)
int bouncedirection = 0;     //-SWITCH FOR COLOR BOUNCE (0-1)
float tcount = 0.0;          //-INC VAR FOR SIN LOOPS
int lcount = 0;              //-ANOTHER COUNTING VAR
int mode=0;
int mr6=0;//счетчик времени рассвет
int mr61=0;//счетчик времени рассвет
int mr66=0;//счетчик времени рассвет 2782 max 25 minut
int mr7=0;//счетчик времени закат
int mr71=0; //счетчик времени закат
int mr77=0; //счетчик времени закат  4372 38 minut
bool ir;//флаг индикации пульта дист
int aud; //перекл между лампами 2 и 3
int zoom2;
int zoom3;
int timezoom; //счетчик времени увеличения яркости пр рассвете и закате с пульта
bool o3;// канал подачи кислорода флг вкл нога3
bool o2;// канал лампы дневного света нога2

bool curmres;
bool rasv;
bool zak;
//data**************************************************
int t1;
int osvet;
int t2;
int t3;
char osvet1[4];
char t11[4];
char t22[4];
char t33[4];
char s1[4];
//*******************************************************

// ---------------СЛУЖЕБНЫЕ ПЕРЕМЕННЫЕ-----------------
bool timon1=1;//1- управление выход1  0 -ручное управление таймер1
bool timon2=1;//1- управление выход2  0 -ручное управление таймер1
bool timon3=1;//1- управление выход3  0 -ручное управление таймер1
bool timon4=1;//1- управлениевыход4  0 -ручное управление таймер1
int hour1;
int minute1;
int second1;
int osv;
int osvs;
int hourTx;
int minuteTx;
boolean sv=1;//флаг подсчета osvs раз в час
byte dataold;
byte cs=0;// отображениe osv osvs
boolean css;//флаг cs
boolean tempTX=0;
boolean night=0;
boolean nigts;
boolean rasvet=0;
boolean zakat=1;
boolean vent=0;//флаг вкл вентилятора
boolean settim=0;
boolean fn;// флаг принудит вкл освещения L1 L2
boolean n1,n2,n3,n4,n5;//включение нагр таймерами
boolean ln1,ln2,ln3,ln4;//включение нагр таймерами ламп
int st1,st2,st3,st4;//время плавного вкл ламп счетчик минут
int sst1,sst2,sst3,sst4;//время плавного вкл ламп  время минут
int secold;
int l,l1,l2,l3;//osv% l текущее
int lm1,lm2,lm3,lm4;//osv%  l max
int lmax1,lmax2,lmax3;
byte lampch1,lampch2,lampch3,lampch4;
byte se;
boolean fl=0;//мигание курсора
//byte ntimer=1; //номер таймера 1-5
int ntim=1; 
int nlamp=1;
boolean lampse;
byte eco=1;
boolean mot;
byte b=0;//nomer knopki
boolean ustt1=0;
boolean pn=1,vt=1,sr=1,cht=1,pt=1,sb=1,vs=1,on=1,bod;// 
boolean settimer=0;
int note=100;
int old;
int month1;
int day1;
int year1;
int week;
int menu=0;
int curm=0;
int hourt1=7,mint1=30;
int tt;//время
int timernumb=0;//номер таймера
byte tc1=1;
byte td1=1;
byte tc2=2;
byte td2=2;
byte tc3=3;
byte td3=3;
int td11=7;//коррекция температуры 1 дробная часть 0,7
int tc11=0;// целая часть
int td22=-7;//коррекция температуры 2 дробная часть 0,7
int tc22=0;// целая часть
int td33=-3;//коррекция температуры 3 дробная часть
int tc33=0;// целая часть
extern const uint8_t met[];
extern const uint8_t pogoda[];
extern const uint8_t setmenu[];
extern const uint8_t bud1[];
extern const uint8_t timer[];
extern const uint8_t timery[];
extern const uint8_t lamps[];
extern const uint8_t nightecr[];
extern const uint8_t rabset[];

//***********данные таймеров***********************
//word timer_1[30]={1вкл-3части,1канал,700,845,1700,2230,700,845,pn-on off, vt-on off,.....};
byte timer_1[6][23]={{1,1,0,1,5,50,8,30,18,0,22,35,19,0,23,30,1,1,1,1,1,0,0},
{1,1,0,2,6,10,8,35,18,10,22,0,19,30,21,0,1,1,1,1,1,0,0},
{0,1,0,3,7,5,8,39,20,25,22,0,17,02,22,29,1,1,1,1,1,1,1},
{1,1,0,1,8,20,9,10,17,0,22,35,22,0,23,0,0,0,0,0,0,1,1},
{1,1,0,2,7,40,9,15,17,10,22,0,22,0,23,0,0,0,0,0,0,1,1},
{0,0,0,3,7,0,8,45,17,0,21,30,22,0,23,0,1,1,1,1,1,1,1}};
//*******************PDY**
//********Lamp**********************
//word timer_lamp[30]={1вкл-2части,1канал 1-4,700,845,1700,2230,700,845,lux1,t1,lux2,t2,pn-on off, vt-on off,..
byte timer1amp[4][22]={{1,1,1,7,35,9,20,17,0,22,22,100,50,100,60,0,0,0,0,0,1,1},
{1,1,2,6,0,8,10,18,0,22,20,100,50,100,60,1,1,1,1,1,0,0},
{1,1,3,6,0,8,20,18,10,22,20,100,40,100,60,1,1,1,1,1,0,0},
{1,1,3,7,30,9,30,17,10,22,20,100,60,100,60,0,0,0,0,0,1,1}};

//byte timernight[12]={режим ночь on off,23-30,7-00,lux экрана ночь 3%, lux экрана день 50%, режим охл on off, темп вкл вентилятора целая часть,дробная часть,темп выкл цел, дробная};
byte timernight[12]={1,23,30,7,0,3,50,1,26,3,25,1};
int svet[24]={0,0,0,0,0,0,30,100,180,200,250,200,150,150,150,100,100,150,150,150,150,150,150,0};


int RECV_PIN = 54;

IRrecv irrecv(RECV_PIN);

decode_results results;
//************************************************************************************
void setup() {
  Serial.begin(9600);
  pinMode(42, INPUT);//IRQ NRF
  digitalWrite(42, HIGH);
pinMode(45, OUTPUT);//
digitalWrite(45, HIGH);//+5v nrf
pinMode(13, OUTPUT);//
pinMode(2, OUTPUT);//T1
pinMode(3, OUTPUT);//T2
pinMode(4, OUTPUT);//T3
pinMode(5, OUTPUT);//T4
pinMode(6, OUTPUT);//T5
pinMode(7, OUTPUT);//pwm LCD
pinMode(8, OUTPUT);//pwm L2
pinMode(12, OUTPUT);//pwm L3
//******************NRF24****************************
   SPI.begin();
       
      pinMode(SPI_SS_PIN, OUTPUT);
      digitalWrite(SPI_SS_PIN, HIGH);
     
      pinMode(NRF_CE_PIN, OUTPUT);
      digitalWrite(NRF_CE_PIN, HIGH);
     
      uint8_t address[5] = { 0xE2, 0xE4, 0x23, 0xE4, 0x02 };
      nrf_init(address);

//***************************************************************
    Wire.begin();
      rtc.begin();
 //rtc.adjust(DateTime(year1, month1, day1, hour1, minute1, second1));
 // rtc.adjust(DateTime(2018, 12, 19, 21, 56, 0));

 // u8g.firstPage();  
 // do {
   // draw();
 //  u8g.setColorIndex(1);
 //     u8g.drawXBMP(0, 0, 128, 64, met);
 // } while( u8g.nextPage() );
// Serial.begin(9600);
 //  Serial.println("Test smart button ...");
   button1.begin();
   button2.begin();
   button3.begin();
   button4.begin();
   button5.begin();
   button6.begin();
   button7.begin();
    irrecv.enableIRIn(); // Start the receiver
    readdat();
    nagruz ();
   nagruzlamp ();
   ulamptimer ();
   //radio();
   //peredat();
    FastLED.addLeds<WS2812, DI_PIN, GRB>(leds, NUM_LEDS);  // инициализация светодиодов
  LEDS.setBrightness(max_bright);  // ограничить максимальную яркость
for (int i = 1; i < NUM_LEDS; i=i+1)
  {
    leds[i] = CRGB::Black; // OFF.
    FastLED.show();
  }
  Serial.println("Load OK");
}






//**********************************************************************************
void loop() {

delay (350);
but ();

  DateTime now = rtc.now(); 
//*********************************  
hour1 = now.hour(); 
minute1 = now.minute();
second1 = now.second();
month1 =now.month();
day1= now.day();
year1 =now.year();
week=now.dayOfTheWeek();

//****************************************  
 secold++;
if (secold>1) 
{ fl=!fl;
 secold=0;
 }

//******************************** 1 SEK ***************************************
if ((old<second1)||(second1==0))
{ ir=0;
  old=second1;
  if (rasv==1)ras1();//выбран пультом рассвет 
  if (zak==1)zak1();//выбран пультом закат 
if (old>0)  
 {osv=1024-analogRead (A8);
 cs++;
 //radio();
 if(menu==0)
{ curmres++;
 if( curmres>30)//сброс положения курсора в 0 после 30сек простоя
 {curmres=0;
  curm=0;//курсора в 0
 }
}

//Serial.println("sek");
 if(cs==5)
 {cs=0;
  css=!css;
 }
 if((minute1==17)||(minute1==37)||(minute1==57))
 {
  if((second1==25)||(second1==28))
  { tx=0;
  }
 if((second1==26)||(second1==29))
 {if(tx==0)peredat();
 tx=1;
 }
 }

 
 if ((lampch2>0)||(lampch3>0))
 {ulamptimer ();}
 //if (lampch3>0){ulamptimer ();}
 }

}
//***********************************************************
irem();
//****************************************  
 u8g.firstPage(); 
  do {
    if (menu==0){menu0();}
//if (menu==1){menu1();}
if (menu==2){menu2();}
//if (menu==3){menu3();}
//if (menu==30){menu30();}
//if (menu==31){menu31();}
//if (menu==4){menu4();}
//if (menu==40){menu40();}
if (menu==5){menu5();}
//if (menu==50){menu50();}
//if (menu==6){menu6();}
//if (menu==60){menu60();}
//if (menu==7){menu7();}
//if (menu==8){nast();}


if (settim==1){settime();}
if (settimer==1){timerset();}
if (ustt1==1){timer1();}
if (lampse==1){lampset ();}
if (nigts==1){nigtset();}
u8g.setColorIndex(1);
u8g.setFont(u8g_font_courR08);//7x5
u8g.setPrintPos(2, 9);
   //u8g.print(night);
if((mode==0)||(mode==1)||(mode==2))
 {u8g.print(payload[1]);
u8g.print(payload[2]);
u8g.print(payload[3]); 
u8g.print(payload[4]); 
}
   if(mode==6)
      {u8g.print(mr66);
       }
 //u8g.print(mode);
     // u8g.print(b);

     if(mode==7)
 {u8g.print(mr77);
 }
    u8g.print(" "); 
  //u8g.print(lampch2);
//u8g.print(mr66);
//***********************************************************
  u8g.setPrintPos(100, 9);//доп информация
 // u8g.print(1024-osv);
 u8g.print(mode); 
 u8g.print(rasv); 
 u8g.print(zak); 
 u8g.print(timon1); 
 //**************************************************************
  } while( u8g.nextPage() );
//***************************************************

if ((second1==0)&&(curm==0))
 {nagruz ();
  nagruzlamp ();
 if (hour1==0)
 {
 }

 }
 if ((second1==30)&&(curm==0))
 {nagruz ();
  nagruzlamp ();
 if (hour1==0)
 {
 }
 }
 
if(dataold=!day1)
{dataold=day1;
 osvs=0;
}

if ((minute1==0)&&(second1==5))
{if(sv==1)
  {//osvs=osvs+osv;
  osvs=0;
  svet[hour1]=osv;
   for (int i =0 ; i <= hour1;  i++)
     {osvs=osvs+svet[i];
     }
     
  sv=0;
  }
}
if ((minute1==0)&&(second1==6)){sv=1;}
//if ((minute1==0)&&(second1==9)){peredat();}
//if ((minute1==30)&&(second1==19)){peredat();}

if (menu==0)
  {if ((second1==1)||(second1==11)||(second1==21)||(second1==31)||(second1==41)||(second1==51)){ temperat1();} 
    if ((second1==2)||(second1==12)||(second1==22)||(second1==32)||(second1==42)||(second1==52)){
      temperat2();
       delay(200);
      temperat11();
      
        } 
    if ((second1==3)||(second1==13)||(second1==23)||(second1==33)||(second1==43)||(second1==53)){
       temperat3();
        delay(200);
     temperat22();
    } 
      if ((second1==4)||(second1==14)||(second1==24)||(second1==34)||(second1==44)||(second1==54)){
        delay(200);
     temperat33();
     if(tempTX==0)
     {tempTX=1;
      peredat();
      peredat();
     }
     tempoff1();
      //tempoff2();
      tempoff3();
     } 
  }
//***********************************************RGB****************************************

if(mode==1)
{
  if(s==1)
 {for (int i = 1; i < NUM_LEDS; i=i+2)
  {
    leds[i] = CRGB::Black; // OFF.
    FastLED.show();
  }
  s=0;
  //Serial.println(mode); // печатаем данные
 }
    

}

if(mode==2)
{
   if(s==1)
 {
   for (int i = 0; i < NUM_LEDS; i=i+4)
  {
    leds[i+2] = CRGB::Black; // OFF.
    leds[i+1] = CRGB::Black; // OFF.
    leds[i+3] = CRGB::Black; // OFF.
    FastLED.show();
  }

  s=0;
 }
}
//***************************Рассвет*******************************
if(mode==6)//max 
{mr66++;
    if(s==1)//1 -я часть
        { 
          if(secold==0){ mr7=mr7+1;}
          if(mr7>10)
            { new_bright_f=5;
              LEDS.setBrightness(new_bright_f);      // установить новую яркость
              a=a-2;
               mr7=0;
              // leds[4] = (CRGB(60, 60,50)); // Утро
              // leds[10] = (CRGB(60, 60,50)); // Утро
               for (int i = a; i < NUM_LEDS-a; i=i+2)
                     {
                         leds[i] = (CRGB(80, 50,30)); // Утро
                         
                        
                     }
                     FastLED.show();
                mr6=0; 
              if (a==0)
                 {s=0;
                   mr7=0;
                   a=16;
                   Serial.println("mr66====="); // печатаем данные175
                      Serial.println(mr66); // печатаем данные175
                    } 
             }  //mr7>10

       }//s=1
if(secold==0){ mr6=mr6+1;}
if(mr6>60)//2 -я часть
     {  int b=20;
          mr6=38;//35
 
           if (new_bright_f<80)
             {b=10;
               mr6=40;
                 }
           if (new_bright_f<40)
              {b=6;
                mr6=30;
              }
           if (new_bright_f<10)
               {b=2;
                mr6=0;
               }
               
               if (new_bright_f==11)
               {b=2;
                mr6=0;
                 for (int i = 1; i < NUM_LEDS; i=i+2)
               {leds[i] = (CRGB(100, 30,20)); // Утро
                }
                FastLED.show();
                }
               
             //  if (new_bright_f==223)
             //  {
            //     for (int i = 1; i < NUM_LEDS; i=i+2)
            //   { leds[i] = (CRGB(200, 60,50)); // Утро
            //    }
           //     FastLED.show();
           //     }

               
             new_bright_f=new_bright_f+b;
          if(new_bright_f>=max_bright)
            {
               new_bright_f=max_bright;
                mode=6;
                mr6=0;
                mr61=mr61+1;
          if(mr61==5)//
           { for (int i = 0; i < NUM_LEDS; i=i+2)
               {
                 leds[i] = (CRGB(100, 50,40)); // Утро
                 FastLED.show();
                }
                mr6=0;
           }
         if(mr61==6)
              {
                for (int i = 0; i < NUM_LEDS; i=i+2)
                    {
                    leds[i] = (CRGB(130, 80,60)); // Утро
                     FastLED.show();
                    }
                mr6=0;
              }
         if(mr61==7)
              { 
                for (int i = 0; i < NUM_LEDS; i=i+2)
                    {
                      leds[i] = (CRGB(180, 100,80)); // Утро
                      FastLED.show();
                      }
                mr6=0;
              } 
     if(mr61==8)
           { for (int i = 0; i < NUM_LEDS; i=i+2)
               {
                 leds[i] = (CRGB(210, 140,100)); // Утро
                 FastLED.show();
                }
                mr6=0;
           } 
     if(mr61==9)
           { for (int i = 0; i < NUM_LEDS; i=i+2)
               {
                 leds[i] = (CRGB(230, 100,50)); // Утро
                 FastLED.show();
                }
                mr6=0;
           }
     if(mr61==10)
        {
           for (int i = 0; i < NUM_LEDS; i=i+1)
               {
                 leds[i] = (CRGB(255, 30,30)); // Утро{r=255;g=30;b=30;}
                 FastLED.show();
                }
          
          
          mr61=0;
        mode=1;
        //digitalWrite(13, HIGH);
        mr77=0;
       
        a=16;
        }
  }
 LEDS.setBrightness(new_bright_f);      // установить новую яркость
    FastLED.show(); 
    Serial.println(new_bright_f); // печатаем данные175
    //Serial.println(mr6); // печатаем данные
   // Serial.println(new_bright_f); // печатаем данные
   Serial.print("n1="); // печатаем данные175
   Serial.println(n1); // печатаем данные175  
       
 } 
  
}
//***************************ЗАКАТ*******************************
if(mode==7)//max
{
if(s==1)
{ 
  s=0;
}
mr77++;
if(secold==0){ mr7=mr7+1;}
if(mr7>60)
 {
      mr71=mr71+1;
      mr7=0;
      if(mr71==1)
          {
            for (int i = 0; i < NUM_LEDS; i=i+2)
               {
                 leds[i] = (CRGB(110, 15,95)); // Утро(CRGB(100, 10,100)); // Утро
                  leds[i+1] = (CRGB(110, 15,95)); // Утро(CRGB(100, 10,100)); // Утро
                 FastLED.show();
                }
                mr7=40;
           }
       if(mr71==2)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(115, 20,90)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(90, 10,80)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=40;
               }
               if(mr71==3)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(120, 25,80)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(80, 0,60)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
               if(mr71==4)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(125, 30,75)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(60, 0,40)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
               if(mr71==5)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(130, 35,70)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(40, 0,20)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==6)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(135, 40,65)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(20, 0,10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==7)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(140, 45,60)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(10, 0,5)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==8)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(145, 55,50)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[i+1] = (CRGB(0, 0,0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==9)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(150, 70,40)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==10)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(150, 80,30)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
                if(mr71==11)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(150, 90,20)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=50;
               }
               if(mr71==12)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(150, 90,10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               }     
                 if(mr71==13)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(160, 90,10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               }
                 if(mr71==14)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(170, 90,10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               }
                  if(mr71==15)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(180, 90,10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               }
               if(mr71==22)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(165, 85,11)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                 mr7=30;
               }
                if(mr71==23)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(160, 80,12)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                if(mr71==24)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(155, 75,13)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                if(mr71==25)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(140, 70,14)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                 if(mr71==26)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(135, 65,15)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                 if(mr71==27)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(130, 60,16)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                 if(mr71==28)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(120, 55,17)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                if(mr71==29)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(110, 50,18)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
                mr7=30;
               }
                if(mr71==30)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(100, 45,19)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==31)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(95, 40, 20)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==32)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(90, 35, 19)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==33)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(85, 30, 18)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                 if(mr71==34)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(80, 25, 17)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==35)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(75, 20, 16)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                 if(mr71==36)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(70, 18, 15)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==37)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(65, 15, 14)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==38)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(55, 14, 13)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==39)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(50, 13, 13)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==40)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(45, 12, 13)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                if(mr71==41)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(40, 10, 13)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
               if(mr71==42)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(35, 8, 12)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==43)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(30, 8, 11)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==44)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(25, 7, 10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==45)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(22, 7, 10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                    if(mr71==46)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(20, 6, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==47)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(18, 6, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==48)//*******
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(15, 6, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==49)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(14, 6, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==50)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(13, 5, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==51)//luna
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(11, 5, 10)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                  if(mr71==52)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(9, 5, 9)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==53)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(8, 5, 8)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==54)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(6, 5, 8)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==55)//llll
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(5, 5, 8)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                    if(mr71==56)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(4, 5, 8)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                    if(mr71==57)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(3, 4, 7)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==58)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(2, 4, 6)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==59)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(1, 4, 5)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                   if(mr71==60)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(0, 2, 4)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      }
               mr7=30;
               }
                    if(mr71==61)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(0, 2, 3)); // Утро(CRGB(100, 10,100)); // Утро
                      
                         FastLED.show();
                      }
               mr7=30;
               }
                    if(mr71==62)
               { 
                      leds[0] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[16] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[30] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      
               mr7=30;
               }
                      if(mr71==63)
                { 
                      leds[2] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[18] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[14] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[28] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      
               mr7=30;
               }
               if(mr71==64)
                    { leds[4] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[20] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[12] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[26] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      
               mr7=30;
               
               }
                if(mr71==65)
                   {  leds[6] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[22] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      leds[10] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                      //leds[24] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      
               mr7=30;
               
               }
              
                 if(mr71==66)
                   { 
                      leds[24] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();
                      
               mr7=30;
               
               }
                      if(mr71==67)
               { for (int i = 0; i < NUM_LEDS; i=i+2)
                     {
                      leds[i] = (CRGB(0, 0, 0)); // Утро(CRGB(100, 10,100)); // Утро
                         FastLED.show();  
                      }
                 mr71=0;
                 mr66=0;
                 mode=1;
                 zak=0;
                 
                 //digitalWrite(13, LOW);
               }
               Serial.print("mr71="); // печатаем данные  
        Serial.println(mr71); // печатаем данные      
          Serial.print("n1="); // печатаем данные175
   Serial.println(n1); // печатаем данные175   
 }
}
//*****************************************

}
