Термостат для инкубатора или PID регулятор на arduino

Применение термостата с ПИД управлением не ограничено птицеводством, КО, проект может использоваться пивоварами для поддержания температуры сусла, винокурами в перегонных аппаратах, может просто греть воду в бойлере до приятной температуры, после небольших изменений, в самодельных паяльных станциях, муфельных печах, кароче везде где требуется контроль температуры с высокой точность. Принцип работы и отличие от банального термостата с гистерезисом показан в видео:

Ниже схемы подключения и исходные коды проекта.

О датчиках температуры:

Исходные коды проекта написаны нескольких типов датчиков:

  • TMP102 — датчик температуры с интерфейсом I2C, подробнее про работу с датчиком написано тут. Возможно датчик потребует корректировку температуры.
  • LM35 — не дорогой и распространенный, достаточно точный аналоговый датчик температуры, подробнее про него тут.
  • MCP9808 — высокоточный датчик температуры с интерфейсом I2C. Оптимальный выбор.

Имея навыки программирования ардуино, изменить код под другие датчики температуры труда не составит.

О ЖКИ индикаторе:

Решил не усложнять и взял стандартный текстовый экран WH1602A, про подключение подобных экранов к ардуино уже написано тут. Подключается напрямую, без переходников на I2C. Указанные в проекте номера выходов для подключения ЖКИ совпадают с китайским LCD Keypad Shield, я его использовал на стадии отладки.

Органы управления:

Настройка температуры терморегулятора осуществляется с помощью энкодера, удобно использовать модуль KY-040 по китайской номенклатуре 🙂

О реле:

В регуляторе крайне не рекомендуется использовать электромеханические реле, от частого переключения они выйдут из строя, особенно это относится к китайским релейным модулям за пару долларов.

Правильным решением будет использование твердотельного реле, либо модуль с симистором (что по сути является одним и тем же) на необходимый ток. Например SSR-25DA на 25А, если мощность нагревателя в районе нескольких киловатт, OMRON G3MB 202P держит до 2А или 440Вт.

У меня они в наличии не оказались, пришлось закупить в местном магазине радиодеталей оптосимистор MOC3063 для гальванической развязки и «детекции нуля» с симистором BT137x-800 на 8А и собирать твердотельное реле на макетке. Схема взята из даташита на MOC3063.

Схема подключения:

Структурная схема:

Возможно на этой будет понятней.

Схема подключения актуальная для датчиков с интерфейсом I2C (MCP9808, TMP102), в случаи использования аналогового LM35, его выход подключается к аналоговому входу А5.

 Исходные коды:

Датчик температуры TMP102, LCD1602
Датчик температуры TMP102, LCD0802
Датчик температуры LM35, LCD1602
Датчик температуры MCP9808, LCD1602

Возможные проблемы и пути решения:

 

пока всё.