добавить гистерезис в скетч управления вытяжкой

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
uuuu
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

добавить гистерезис в скетч управления вытяжкой

Сообщение uuuu »

здравствуйте!взял на каком то сайте данный скетч для ардуино,управление вентилятором от датчика влажности dht22,но в нём нет гистерезиса,т.е. если,например, вентилятор включится при 60% влажности,то при 59 уже выключится,(постоянно включаться-выключаться будет в данном диапазоне).помогите подправить код,чтобы например,влючился при 60,а выключился при 50.вот код:
#include "DHT.h"
#define DHTPIN 2 // вывод, к которому подключается датчик
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define fan 4

int maxHum = 60;
int maxTemp = 40;

DHT dht(DHTPIN, DHTTYPE);

void setup() {
pinMode(fan, OUTPUT);
Serial.begin(9600);
dht.begin();
}

void loop() {
// ждем пару секунд перед началом измерений
delay(2000);

// считывание температуры или влажности занимает примерно 250 мс!
// считанные показания могут отличаться от актуальных примерно на 2 секунды (это очень медленный датчик)
float h = dht.readHumidity();
// Считывание температуры в цельсиях
float t = dht.readTemperature();

// проверяем, были ли ошибки при считывании и, если были, начинаем заново
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}

if(h > maxHum || t > maxTemp) {
digitalWrite(fan, HIGH);
} else {
digitalWrite(fan, LOW);
}

Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");

}
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: добавить гистерезис в скетч управления вытяжкой

Сообщение Zhuk72 »

Никогда не имел дел с ардуиной, но по логике должно быть так:

Код: Выделить всё

if(h > maxHum || t > maxTemp) 
{
  digitalWrite(fan, HIGH);
} 
  else if (h < (maxHum - 10) || t < (maxTemp - 10))  // Числа нижнего порога можете поменять по желанию.
  {
    digitalWrite(fan, LOW);
  }
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
uuuu
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

Re: добавить гистерезис в скетч управления вытяжкой

Сообщение uuuu »

не помогло,тоже самое происходит...
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: добавить гистерезис в скетч управления вытяжкой

Сообщение Zhuk72 »

Если он включается после 60%, то отключиться он может только после 50. Если других digitalWrite(fan, LOW) в программе нет.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
uuuu
Родился
Сообщения: 9
Зарегистрирован: Ср фев 13, 2013 11:47:56

Re: добавить гистерезис в скетч управления вытяжкой

Сообщение uuuu »

заработало!вы правы.просто температура с толку сбивала,убрал ёё вообще,она мне и не нужна,оставил только влажность.Спасибо большое за помощь!
Ответить

Вернуться в «Разные вопросы по МК»