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 (td1timernight[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 (td2timernight[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