void temperat1() 
{
  OneWire  ds(22);
  
   ds.reset();
ds.write(0xCC);
ds.write(0x4E);
ds.write(0x7D);
ds.write(0xFC);
ds.write(0x7F);//точность изм от нее зависит скорость опроса tconvert=750 мс/(2**(3-R)) 


ds.reset();
ds.write(0xCC);
ds.write(0x44);
}

void temperat11() 
{  OneWire  ds(22);
     byte data[2];
 byte zn=0;
  ds.reset();
ds.write(0xCC);
ds.write(0xBE);
data[0] = ds.read();
data[1] = ds.read();
//Serial.print("data[0]=");
//Serial.println(data[0],BIN);
//Serial.print("data[1]=");
//Serial.println(data[1],BIN);

if ((data[1]&128) == 0)
     {zn=1;  //+
        }  
     else{
      zn=0; //-
      }

if (zn==0)//преобразуем отр темп
{
 unsigned int tmp;
// «склеиваем» нулевой и первый байты ОЗУ датчика
tmp = ((unsigned int)data[1]<<8)|data[0];
 //выполняем операцию логического отрицания
      tmp = ~tmp + 1;//  (-0,5) 1111 1111 1111 1000=~ 1111 1111 1111 1000= 0000 0000 0000 0111+1= 0000 0000 0000 1000 
  //помещаем результат в соответствующие переменные
      data[0] = tmp; //0000 1000
      data[1] = tmp>>8;  //0000 0000
}

int Temp = (data[1]<< 8)+data[0];
//Serial.print("Temp=");
//Serial.println(Temp,BIN);

 //выделяем с помощью битовой маски дробную часть
   byte temperature = (data[0]&15);//1101 1000 & 0000 1111= 0000 1000 (8)
 //  Serial.print("temppointbin=");
//Serial.println(temperature,BIN);
   //преобразуем в целое число
    temperature = (temperature<<1) + (temperature<<3);// Умножаем на 10  (80)  0000 1000<<1= 0001 0000 +  0000 1000<<3=0100 000 = 0101 0000 (80)
    temperature = (temperature>>4);//делим на 16 или умножаем на 0.0625  (5) 0101 0000>>4=0000 0101 (5)
td1=temperature;



//Serial.print("temppoint=");//дробная часть
//Serial.println(temperature);

tc1 = Temp>>4;//целая часть
if(tc1==0){tc1=24;}
//Serial.print("Temp>>4=");
//Serial.println(Temp,BIN);
//Serial.println(Temp);
int tem1=tc1*10+td1;//вводим кор коэф +0,7 С
tem1=tem1+(tc11*10+td11);
//Serial.println(tem1);
 tc1=tem1/10;//*****************!!!!!!!!!!!! из-за ошибки датчика
 td1=tem1%10;
}


void temperat2() 
{
  OneWire  ds(24);


ds.reset();
ds.write(0xCC);
ds.write(0x44);
}

void temperat22()
{  OneWire  ds(24);
     byte data[2];
 byte zn=0;
ds.reset();
ds.write(0xCC);
ds.write(0xBE);
data[0] = ds.read();
data[1] = ds.read();
//Serial.print("data[0]=");
//Serial.println(data[0],BIN);
//Serial.print("data[1]=");
//Serial.println(data[1],BIN);

if ((data[1]&128) == 0)
     {zn=1;  //+
        }  
     else{
      zn=0; //-
      }

if (zn==0)//преобразуем отр темп
{
 unsigned int tmp;
// «склеиваем» нулевой и первый байты ОЗУ датчика
tmp = ((unsigned int)data[1]<<8)|data[0];
 //выполняем операцию логического отрицания
      tmp = ~tmp + 1;//  (-0,5) 1111 1111 1111 1000=~ 1111 1111 1111 1000= 0000 0000 0000 0111+1= 0000 0000 0000 1000 
  //помещаем результат в соответствующие переменные
      data[0] = tmp; //0000 1000
      data[1] = tmp>>8;  //0000 0000
}

int Temp = (data[1]<< 8)+data[0];
//Serial.print("Temp=");
//Serial.println(Temp,BIN);

 //выделяем с помощью битовой маски дробную часть
   byte temperature = (data[0]&15);//1101 1000 & 0000 1111= 0000 1000 (8)
 //  Serial.print("temppointbin=");
//Serial.println(temperature,BIN);
   //преобразуем в целое число
    temperature = (temperature<<1) + (temperature<<3);// Умножаем на 10  (80)  0000 1000<<1= 0001 0000 +  0000 1000<<3=0100 000 = 0101 0000 (80)
    temperature = (temperature>>4);//делим на 16 или умножаем на 0.0625  (5) 0101 0000>>4=0000 0101 (5)
td2=temperature;


//Serial.print("temppoint=");//дробная часть
//Serial.println(temperature);

tc2 = Temp>>4;//целая часть
//Serial.print("Temp>>4=");
//Serial.println(Temp,BIN);
//Serial.println(Temp);
int tem2=tc2*10+td2;//вводим кор коэф -0,7 С
tem2=tem2+(tc22*10+td22);
//Serial.println(tem2);
 tc2=tem2/10;
 td2=tem2%10;
 
}

void temperat3() 
{
  OneWire  ds(26);
 
ds.reset();
ds.write(0xCC);
ds.write(0x44);
}


void temperat33() 
 {  OneWire  ds(26);
   byte data[2];
 byte zn=0;

ds.reset();
ds.write(0xCC);
ds.write(0xBE);
data[0] = ds.read();
data[1] = ds.read();
//Serial.print("data[0]=");
//Serial.println(data[0],BIN);
//Serial.print("data[1]=");
//Serial.println(data[1],BIN);

if ((data[1]&128) == 0)
     {zn=1;  //+
        }  
     else{
      zn=0; //-
      }

if (zn==0)//преобразуем отр темп
{
 unsigned int tmp;
// «склеиваем» нулевой и первый байты ОЗУ датчика
tmp = ((unsigned int)data[1]<<8)|data[0];
 //выполняем операцию логического отрицания
      tmp = ~tmp + 1;//  (-0,5) 1111 1111 1111 1000=~ 1111 1111 1111 1000= 0000 0000 0000 0111+1= 0000 0000 0000 1000 
  //помещаем результат в соответствующие переменные
      data[0] = tmp; //0000 1000
      data[1] = tmp>>8;  //0000 0000
}

int Temp = (data[1]<< 8)+data[0];
//Serial.print("Temp=");
//Serial.println(Temp,BIN);

 //выделяем с помощью битовой маски дробную часть
   byte temperature = (data[0]&15);//1101 1000 & 0000 1111= 0000 1000 (8)
 //  Serial.print("temppointbin=");
//Serial.println(temperature,BIN);
   //преобразуем в целое число
    temperature = (temperature<<1) + (temperature<<3);// Умножаем на 10  (80)  0000 1000<<1= 0001 0000 +  0000 1000<<3=0100 000 = 0101 0000 (80)
    temperature = (temperature>>4);//делим на 16 или умножаем на 0.0625  (5) 0101 0000>>4=0000 0101 (5)
td3=temperature;


//Serial.print("temppoint=");//дробная часть
//Serial.println(temperature);

tc3 = Temp>>4;//целая часть
//Serial.print("Temp>>4=");
//Serial.println(Temp,BIN);
//Serial.println(Temp);
int tem3=tc3*10+td3;//вводим кор коэф +0,0 С( tc33,td33 C)

tem3=tem3+(tc33*10+td33);
//Serial.println(tem3);
 tc3=tem3/10;
 td3=tem3%10;

 
}

void tempoff1()
{
  if (timernight[7]==1)//проверка вкл режима охлаждения 1-вкл 0-выкл
  {
    if (tc1==timernight[8])
    {
       if (td1>timernight[9])
              {
                if(n5==0){digitalWrite(6, HIGH);}
                digitalWrite(9, HIGH);   // включает вентилятор
              // digitalWrite(10, HIGH);   // включает вентилятор
              //digitalWrite(11, HIGH);   // включает вентилятор
                vent=1;
                n5=1;
              }
    }
    
    
    if (tc1>timernight[8])
       {
         if(n5==0){digitalWrite(6, HIGH);}
         n5=1;
         digitalWrite(9, HIGH);   // включает вентилятор
         //digitalWrite(10, HIGH);   // включает вентилятор
         //digitalWrite(11, HIGH);   // включает вентилятор
         vent=1;
       }
    
   if (tc1==timernight[10])
    {
       if (td1<timernight[11])
            {
              if(n5==0){digitalWrite(6, LOW);}
              digitalWrite(9, LOW);   // выключает вентилятор
              vent=0;
             }
    }
   if (tc1<timernight[10])
        { 
          if(n5==0){digitalWrite(6, LOW); }
          digitalWrite(9, LOW);   // выключает вентилятор
          vent=0;
         } 
 //*************************ВЕНТ-2*************************
   if (tc2==timernight[8])
    {
       if (td2>timernight[9])
              {
                if(n5==0){digitalWrite(6, HIGH);}
                //digitalWrite(9, HIGH);   // включает вентилятор
               digitalWrite(10, HIGH);   // включает вентилятор
              //digitalWrite(11, HIGH);   // включает вентилятор
                vent=1;
                n5=1;
              }
    }
    
    
    if (tc2>timernight[8])
       {
         if(n5==0){digitalWrite(6, HIGH);}
         n5=1;
         //digitalWrite(9, HIGH);   // включает вентилятор
         digitalWrite(10, HIGH);   // включает вентилятор
         //digitalWrite(11, HIGH);   // включает вентилятор
         vent=1;
       }
    
   if (tc2==timernight[10])
    {
       if (td2<timernight[11])
            {
              if(n5==0){digitalWrite(6, LOW);}
              digitalWrite(10, LOW);   // выключает вентилятор
              vent=0;
             }
    }
   if (tc2<timernight[10])
        { 
          if(n5==0){digitalWrite(6, LOW); }
          digitalWrite(10, LOW);   // выключает вентилятор
          vent=0;
         }  
         
  }
  
}

void tempoff3()
{
  if (timernight[7]==1)//проверка вкл режима охлаждения 1-вкл 0-выкл
  {
    if (tc3==timernight[8])
    {
       if (td3>timernight[9])
              {
                if(n5==0){digitalWrite(6, HIGH);}
                //digitalWrite(9, HIGH);   // включает вентилятор
             //digitalWrite(10, HIGH);   // включает вентилятор
             digitalWrite(11, HIGH);   // включает вентилятор
                vent=1;
                n5=1;
              }
    }
    
    
    if (tc3>timernight[8])
       {
         if(n5==0){digitalWrite(6, HIGH);}
         n5=1;
         //digitalWrite(9, HIGH);   // включает вентилятор
         //digitalWrite(10, HIGH);   // включает вентилятор
         digitalWrite(11, HIGH);   // включает вентилятор
         vent=1;
       }
    
   if (tc3==timernight[10])
    {
       if (td3<timernight[11])
            {
              if(n5==0){digitalWrite(6, LOW);}
              digitalWrite(11, LOW);   // выключает вентилятор
              vent=0;
             }
    }
   if (tc3<timernight[10])
        { 
          if(n5==0){digitalWrite(6, LOW); }
          digitalWrite(11, LOW);   // выключает вентилятор
          vent=0;
         } 
  }
  
}
