Реализовал шаговый двигатель + игольчатый кран. Пока на клею. Но в процессе доработаю.
Купил тройник и на силикон посадил датчик температуры сразу на выходе из дефа.
Реакция стала сразу лучше. В течении 10 секунд новая температура устаканивается.
Проблемы:
Начала протекать прокладка, поменял на более плотную силиконовую самодельную.
После этого он стал туже крутиться и моя ардуинка не смогла прокрутить шаговик без специального драйвера. Не хватает тока, мощности.
Ждем из поднебесной, заказал у проверенного продавца. От него идет около двух недель всего.
Так что скоро будет продолжение.
https://youtu.be/W9noPpzhUNU

Ну и фишка в ардуино на задержку реализовал так:
Каждый раз при проходе в цикле while мы заходим в функцию регулировку воды, запрашиваем сколько тиков(времени) сейчас у микроконтроллера с момента запуска, сравниваем с предыдущим значением. Если меньше интервала, который вам надо, то ничего не делать и продолжать опрашивать датчики, если больше, то сравнить температуру и при необходимости регулировать.
Код:
// for regularWater
unsigned long previousMillis = 0; //переменная для записи предыдущего значения тиков (времени)
const long interval = 10000; //необходимый интервал при котором сверять и регулировать игольчатый кран
void regularWater(float temp){
unsigned long currentMillis = millis(); // запрашиваем текущие тики
if (currentMillis - previousMillis >= interval) // сравниваем текущие с предыдущими
{
previousMillis = currentMillis;// записываем текущие в предыдущие
if (temp > 30)
{ Serial.println("+++++");
for (int i=0; i<=10; i++) //Прибавляем воду
{
myStepper.step(1);
stepCount++;
delay(50);
}
}
else if (temp < 29.7)
{Serial.println("------");
for (int i=0; i<=10; i++) // Убавляем воду
{
myStepper.step(-1);
stepCount++;
delay(50);
}
}
}
}