В настоящее время я работаю над системой управления потоком воды, использующей Arduino. Цель состоит в том, чтобы я мог установить температуру потока воды, используя Arduino.
У меня есть Y-образная часть шланга. На верхнем левом рукаве Y-образной части у меня постоянный поток холодной воды, около 12 ° C. На верхнем правом рычаге Y-образной части у меня есть клапан, с помощью которого я могу регулировать, сколько горячей воды я смешиваю. Горячая вода составляет около 50 ° C. Для регулирования потребления горячей воды я использую серводвигатель, который поворачивает клапан в определенное положение.
В нижней части Y у меня есть датчик температуры, который сообщает мне смешанную температуру воды.
Алгоритм, который я придумал для смешивания воды до определенной температуры, выглядит следующим образом:
1. Calibrate by calculating the minimum and maximum temp and corresponding servo positions
1.1 set the servo position to the absolute minimum, wait for 10 seconds and get the temperature -> minTemperature, minPos
1.2 set the servo position to the absolute maximum, wait for 10 seconds and get the temperature -> maxTemperature, maxPos
2. Set the mixing temperature to X°C
2.1 (maxTemp-minTemp)/(maxPos-minPos) = p °C/pos
Which means that changing the position by 1 position changes the mix temperature by p °C
2.2 minPos + (x-minTemp) / p = targetPos
3. If abs(measuredTemp-x)>Tolerance than do 2.
Является ли этот подход вообще жизнеспособным, когда речь идет о реальной реализации? Как выполняются другие схемы регулирования температуры?