Очень прошу помочь с кодом.

Frascati
Offline
Зарегистрирован: 17.12.2013

Вот кусок кода для датчика.

t = dht.readTemperature(); // Считываем температуру

 

lastTimeDHT = millis();

 

}

 

tStatus = (t < ((t) ? temp : temp)) ? HIGH:LOW; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл

 

digitalWrite(tPIN, tStatus);

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

 

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Frascati пишет:

Вот кусок кода для датчика.

t = dht.readTemperature(); // Считываем температуру

 

lastTimeDHT = millis();

 

}

 

tStatus = (t < ((t) ? temp : temp)) ? HIGH:LOW; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл

 

digitalWrite(tPIN, tStatus);

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

Вставка кода

t = dht.readTemperature(); // Считываем температуру
lastTimeDHT = millis();
}
tStatus = (t < ((t) ? temp : temp)) ? HIGH:LOW; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл
digitalWrite(tPIN, tStatus); 

Я бы так написал

tStatus = (t<ust-delta)? true: (t>ust+delta)? false: tStatus;
//delta - (+-) гистерезис

примерно.

(условие)? если да: если нет;

Frascati
Offline
Зарегистрирован: 17.12.2013

Гениально! Огромное спасибо. Всё работает.