Sl-Alex домашняя лаборатория

Термореле для холодильника

Просмотров: 2714Комментарии: 0
Проекты
Термореле для холодильника

Внимание

Проект разрабатывался в далёком 2010 году. С тех пор автор несколько поменял взгляды на программное обеспечение и с удовольствием использует open-source ПО вместо CodevisionAVR и прочих IDE. Проект остаётся в открытом доступе только для истории.

Предыстория

До сих пор у многих людей дома стоят старые холодильники, в которых работает и двигатель, и хладоагента ещё на долгие годы хватит, и корпус ещё вполне приличный, и единственная нерабочая деталь - термореле. У моих родителей долгое время стоял такой экземпляр советского танкостроения под кодовым именем "Днепр". Для тех, кто не знает: этот такой холодильник с округлыми формами и защёлкивающейся ручкой. Впрочем, речь не об этом. Новый холодильник покупать не хотели, термореле от этого холодильника (он однокамерный) на базаре не было, поэтому и было принято решение об изготовлении цифрового термореле.

Для этой цели более чем подходящим оказался микроконтроллер ATmega8. При определённых ухищрениях прошивку удалось бы засунуть и в 8-мивыводный ATtiny13, но в расчёте на возможные будущие переделки окончательно был поставлен ATmega8. Результат вы можете увидеть на представленной фотографии.

Рисунок 1 — Внешний вид.

Рисунок 1 — Внешний вид.

Сзади расположены входной и выходной разъёмы сети 220V, спереди подключен шнур, на конце которого припаян и обсажен термоусадкой датчик. Термоусадка отлично защищает выводы датчика от попадания конденсата. На экране отображаются две цифры - слева текущая температура в контролируемой камере, справа процент времени работы компрессора. Последний показатель позволяет косвенно судить о средней мощности, потребляемой холодильником. Увеличение показаний в процессе эксплуатации холодильника может свидетельствовать о утечке хладоагента.

Схема и комплектация

Схема рисовалась в OrCad 9.2. На всякий случай привожу картинку и перечень элементов. На схеме я забыл отобразить подключение индикатора, но это можно посмотреть в исходниках. В качестве индикатора используется дешёвый индикатор HT1611 (такие стоят в некоторых телефонных аппаратах)

Рисунок 2 — Схема.

Рисунок 2 — Схема.

Перечень элементов

Поз. Обозн.НаименованиеКол-воПримечание
C1,C3,C5..C80.1uF6
C2100.0x6.3V1
D1диодный мост 1А1обычный выпрямительный мостик
D21N41481
LS1реле 12V1для коммутации двигателя
LS2BUZZER 5V1активная пищалка
Q1BC8461
Q2BD1321
R1,R31 kOhm2
R24.7 kOhm1
T1Сетевой трансформатор 220->12V1несколько ватт
U178051стабилизатор 5В
U2ATmega8L-8AI1контроллер
U3DS18B201термодатчик

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

Прошивка и исходники

Прошивка с исходниками выложены здесь. Программа написана в компиляторе CodeVisionAVR, демо-версию которого можно взять здесь. Демо-версии более чем достаточно для того, чтобы без труда скомпилировать и прошить этот проект

Прошивка происходит следующим образом:

  1. Подключаем программатор к компьютеру и к контроллеру (схема подключения к контроллеру зависит от типа программатора, я прошиваю аналогом STK200+/STK300)
  2. Подключаем питание контроллера.
  3. Стираем flash.
  4. Программируем fuse bits. Необходимые установки:
    • CKSEL00 = 0
    • CKSEL01 = 0
    • CKSEL10 = 1
    • CKSEL11 = 0
    • SUT0 = 0
    • SUT1 = 1
    • BODEN = 1
    • BODLEVEL = 1
    • BOOTRST = 1
    • BOOTSZ0 = 1
    • BOOTSZ1 = 1
    • EESAVE = 1
    • CKOPT = 1
    • JTAGEN = 1
    • OCDEN = 1
  5. Программируем flash.
  6. Программируем eeprom.

Если вы всё собрали правильно, то схема должна работать. В любом случае желателен опыт работы с микроконтроллерами, потому что если вдруг что-то не получится (я ведь не могу предусмотреть все случаи), вам придётся отлаживать схему самостоятельно. Из граблей, на которые наступают чаще всего, могу отметить неправильную установку fuse bits. Галочка в программаторе должна стоять там, где соответствующий бит должен быть нулевым.