Помогите разобраться со скетчем поддержания рабочих параметров
- Войдите на сайт для отправки комментариев
Пнд, 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 сравниваете это число с температурой.
Вам это бредом не кажется?