You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Play/akva/_256-27nrf10/temperatura.ino

362 lines
10 KiB

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;
}
}
}