Помогите разобраться со скетчем поддержания рабочих параметров
- Войдите на сайт для отправки комментариев
Пнд, 19/11/2018 - 23:26
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(10); // вход датчиков 18b20
DallasTemperature ds(&oneWire);
DeviceAddress sensor1 = {0x28, 0xFC, 0x19, 0x43, 0x98, 0x22, 0x0, 0xAB};
#define soil_temperature_management 9
int soil_temperature = 25; // переменная температуры почвы
void setup() {
Serial.begin(9600);
pinMode(soil_temperature_management,OUTPUT);
ds.begin();
}
void loop() {
soil_heating();
}
void soil_heating (){ // функция подогрева почвы
int soil_temperature85;
int sensor_soil;
soil_temperature85 = soil_temperature * 0.85;
ds.requestTemperatures(); // считываем температуру с датчиков
/////////////////////////////////////////////////////////////////////////////
Serial.print("Sensor 1: ");
Serial.print(ds.getTempC(sensor1)); // отправляем температуру
Serial.println("C");
/////////////////////////////////////////////////////////////////////////////
sensor_soil = sensor1;
if (sensor_soil < soil_temperature){
digitalWrite (soil_temperature_management,HIGH);
}
if (sensor_soil < soil_temperature && sensor_soil > soil_temperature85){
digitalWrite (soil_temperature_management,HIGH);
if (sensor_soil < soil_temperature85);{
digitalWrite (soil_temperature_management,HIGH);
}
}else{
digitalWrite (soil_temperature_management,LOW);
}
delay(1000);
}
Помогите разобраться со скетчем поддержания чего либо
Суть такая, хочу контролировать и поддерживать температуру почвы рассады.
Собрал схему: Нано + нагревательный элемент через мосфит.
Но скетч не работает почему-то. Хочу, что бы подогрев включался при температуре почвы меньше 25 С *0.85. И выключался при температуре больше 25 С.
Подскажите пожалуйста.
я вам на Амперке ответил. У вас в скетче куча ошибок, вы на самом деле температуру вообще в своем регуляторе не используете - вот он и не работает.
Уважаемый, Вы бы хотя бы для себя комментировали, что Вы пишите. Многое бы поняли. К примеру:
В строке 31 Вы считали температуру и выдали ее на серийный порт, затем в строке 34 Вы зачем-то приравняли int sensor_soil первому элементу массива sensor1 т.е. 0x28. Затем в строках 35 и 38 сравниваете это число с температурой.
Вам это бредом не кажется?