Менять термостат STL0052 на самодельный я не собирался, но он сломался. На второй неделе активной фазы испытаний, при очередном включении сушилки, его дисплей показал пустой светящийся экран. При повторном запуске, он начал было, что-то показывать, но через несколько секунд снова очистился.
На стабилизаторе питания контроллера тестер показал сильное падение напряжения, а сам корпус контроллера разогрелся до такой степени, что еще некоторое время палец его трогавший, носил след ожога в виде белой блямбы.
Неприятная ситуация. Проект уже подходил к концу, а оно - вот оно как! Быстрее купить новый регулятор, но никакой гарантии, что он, проработав две недели, не сломается - как первый. Повздыхал, поохал и решил принять реальность таковой, какая она есть. Начал собирать детали на свой термостат.
Тут наверняка может возникнуть вопрос: «А почему бы не объединить термостат и уже готовый таймер и сделать всё на одном контроллере?»
Изначально так не планировалось. Два этих устройства должны были существовать, как отдельные юниты, поэтому таймер был разработан без учета расширения функциональности. Код отлажен, плата стоит на своём месте. Зачем переделывать то, что уже и так работает?
Железо терморегулятора:
- Ядро – контроллер Ардуино про-мини 3V3;
- Дисплей - LCD1602 I²C PCF8574;
- Два термометра - DS18B20;
- Пять тактовых кнопок;
- Стабилизатор на 3,3в - AMS1117V3.3:
- Стабилизатор на 5в - LM1085IT:
- Три танталовых конденсатора на 10мкФ;
- Один конденсатор на 22мкФ;
- Пять подтягивающих сопротивления на 10кОм и один на 6.2 кОм;
- Некоторое количество контактных колодок, выкорчеванных из неисправной платы.
На работу с кодом времени было затрачено заметно меньше, чем при разработке таймера. Простейший анализ показаний с датчиков температуры, который на выходе - либо включает, либо выключает калорифер.
Основных режимов два. Контроль температуры по максимальному показанию одного из термометров, и по средней температуре. Можно задать рабочую температуру с шагом в 1°С и гистерезис с шагом в 0.2°С. Под гистерезисом тут понимается расширение рабочего диапазона в вверх и вниз от установленной температуры. То есть - по классике, при установленной температуре в +70°С, при превышении этого значения, нагреватель отключается, а при понижении включается. Если гистерезис стоит на 2.2°С, то термостат отключится при +72,2°С, а включится, когда температура упадет ниже +67,8°С. В этом смысле новый термостат копирует функционал вышедшего из строя предшественника.
Напрямую термостат нагревателем не управляет. Сигнал с него передаётся на таймер, в котором общие сигналы управления логически умножаются (конъюнкция - операция (И)). Итог операции подаётся на управляющий выход нагревателем.
Немного о коде
Использовались библиотеки:
- #include <Wire.h>
- #include <LiquidCrystal_I2C.h>
- #include <EEPROM.h>
- #include <OneWire.h>
- #include <DallasTemperature.h>
Как я уже говорил, код не сложный, почти тривиальный. Настройки сохраняются в EEPROM, как защита от кратковременных сбоев в сети. При перевключении термостат возьмёт установки из памяти и будет по ним работать в тандеме с таймером. Единственно, пришлось некоторое время потратить на преобразование данных температуры с датчиков для отображения на дисплее. Мне не нужно было два знака после запятой, достаточно было одного (но с округлением), и по нормальному это удалось сделать написанием такой вот процедуры.
Схема
Для схемы я взял пятивольтовый стабилизатор на 5А. Сделал его на отдельной плате и поставил на хороший радиатор. Тут дело не в большом токе потребления, а в большом входном напряжении в 12В.
Чем больше разница между входным и выходными напряжениями, тем сильней греется линейный стабилизатор. Кстати, есть подозрение, что предыдущий термостат, вышел из строя по причине перегрева питающего стаба. На плате у него была напечатана небольшая площадка для отвода тепла, но это боль какая-то, а не радиатор.
По личному опыту - если по паспорту указан диапазон 4,5-15В, то больше семи вольт на стаб, рассчитанный на работу с током до 1А, подавать не нужно. А лучше подавать 5в. Так я и поступил в схемотехнике для Сушилки. Поставил большой стабилизатор, понижающий напряжение с 12 до 5 вольт. С него питается дисплей и два стабилизатора поменьше. Они снижают напряжение до 3,3 вольт и питают контроллеры таймера и терморегулятора. При таком каскаде, стабилизаторы на 3.3в в радиаторах не нуждаются.