Регулятор температуры на AT90S2313 и DS1621

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

Таким образом, я разработал это небольшое устройство, которое может контролировать температуру и управлять нагревателем.

В основе устройства лежат микроконтроллер AT90S2313 и цифровой датчик DS1621. Температура отображается на двойной 7-сегментном индикаторе. Две кнопки используются для настройки параметров. Реле рассчитано на большой ток нагревательного элемента.

Я использовал AVR AT90S2313, так как он был оптимален для выполнения поставленной задачи. Кроме того, его можно программировать на С, а это упрощает задачу. Альтернативой этому микроконтроллеру был бы 1200, но у меня был неудачный опыт с этим микроконтроллером .
Для тактирования микроконтроллера AT90S2313 применяется  керамический резонатор на
4 МГц.

Индикаторы используются с общим катодом. Сегменты обоих индикаторов соединены между собой, а управление осуществляется с помощью динамической индикации. Обратите внимание, что десятичные точки индикаторов также используются. Более подробно об этом позже.

Питание осуществляется переменным напряжением 9В, снимаемым со вторичной (или двух вторичных) обмотки трансформатора. Далее напряжение выпрямляется с помощью диодного моста В1 и сглаживается на конденсаторе С2. Выпрямленное и сглаженное напряжение поступает на вход линейного стабилизатора 5В. Выпрямленное напряжение также является источником питания для выходного реле К1.

Связь микроконтроллера 2313  с цифровым датчиком Dallas DS1621 осуществляется с помощью последовательного интерфейса I2C. Это 2-проводная двунаправленная шина со скоростью до 400 кбит / с.
До 8 датчиков DS1621 могут быть подключены к одной шине I2C.   В этом устройстве есть только один датчик, поэтому выводы
DS1621, определяющие адрес устройства на шине подключаем к общему проводу питания, задав при этом адрес 0. (а 0×90 на самом деле).

На самом деле, DS1621 имеет термостатный выход, который можно запрограммировать на определенную температуру, но он не используется в данном приложении.

Реле потребляет ток около 40-50 мА и управляется стандартным транзистором NPN.

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

Как правило, дисплей показывает измеренную температуру. Левую десятичную точку, можно включить или выключить, для того чтобы убедиться что устройство исправно. Правая десятичная точка показывает состояние реле, включено оно или нет.


Короткое нажатие на любую из кнопок вверх или вниз, покажет заданную температуру в течение 1 секунды. Если удерживаются
клавиши, то заданная температура будет увеличиваться или уменьшаться соответственно.

Нажатие обеих клавиш одновременно дает доступ к двум параметрам:

Первый параметр — это гистерезиса (в этом режиме индицируется средний сегмент левого индикатора, а на правом отображается значение параметра), который определяет точки переключения реле. Например, если гистерезис имеет значение 2, и заданная температура 21 градус, реле будет включаться при температуре 19 градусов, а выключатся при температуре 23 градуса. Это позволит избежать дребезжаний реле.

Второй параметр — это скважность управления индикаторами ( в этом режиме светиться нижний сегмент в левом индикаторе, а в правом отображается значение параметра) Этот параметр позволяет определять яркость свечения индикаторов.

Оба этих параметра хранятся в EEPROM.

Схема

Внешний вид

1 ответ

  1. А можно схему по понятнее