Помогите разобраться со скетчем поддержания рабочих параметров

SVD
Offline
Зарегистрирован: 05.04.2018

#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 С.



Подскажите пожалуйста.

b707
Offline
Зарегистрирован: 26.05.2017

я вам на Амперке ответил. У вас в скетче куча ошибок, вы на самом деле температуру вообще в своем регуляторе не используете - вот он и не работает.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый, Вы бы хотя бы для себя комментировали, что Вы пишите. Многое бы поняли. К примеру:

В строке 31 Вы считали температуру и выдали ее на серийный порт, затем в строке 34 Вы зачем-то приравняли  int sensor_soil первому элементу массива sensor1  т.е. 0x28. Затем в строках 35 и 38 сравниваете это число с температурой.

Вам это бредом не кажется?