» » Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка

 
 
 
16

Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка

Разместил maddiego 27 сентября 2017. Просмотров: 2 167

Здравствуйте, дорогие читатели Датагор.ру!
Сегодня я расскажу о своём проекте, который родился на свет, благодаря выходу из строя одной из важнейшей части моего холодильника — терморегулятора. Автоматика перестала работать и всё время держала компрессор холодильника во включённом состоянии, доведя температуру внутри до −4°С вместо штатных +5°С! Минусовая температура в холодильнике, из супа получаем кусок льда! А в морозильной части вообще под −25°С было.

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

Немного истории

Моему холодильнику уже добрых 20 лет и за это время он успел сменить в себе два мотора и один термостат, побывал в двух мастерских и теперь это «чудовище Франкенштейна» совсем перестало выключаться.
По опыту скажу, что я очень не люблю такие термостаты, их механическая начинка довольно капризная. А ещё мастера мне попадались уникальные, они чинили одну часть холодильника, и ломали другую. Например, после ремонта у меня перестала включаться лампочка «в салоне» при открывании двери.
«Хочешь, чтобы было сделано хорошо? Сделай это сам!»

Изучение холодильного вопроса и временное решение

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

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


Еда начинает портиться! Звать мастера, чтобы он провозился с холодильником пару недель (а у меня в городе такие мастера и есть) — не вариант, что делать? Надо периодически выдёргивать вилку из розетки, имитируя работу термостата! Меня хватило на один день этого мазохизма, поэтому мне нужно удобное решение и собрал я за вечер обычный микроконтроллерный таймер-реле включения/выключения буквально на подносе и это не шутка.

Прототип терморегулятора холодильника


Работает! Его задача — тупо включать компрессор на 15 минут и выключать на 45. Питание взял от импульсника из сломанного DVD плеера, в нём удачно обнаружились два выхода 12 и 5 Вольт. Реле врезал в удлинитель и прижал всё колонками. Изящное временное решение вышло!

Схема моего терморегулятора

Теперь есть «время на подумать» и поискать вдохновения в Интернете для разработки полноценного терморегулятора.
Что в итоге я выяснил:
• компрессор может работать часами, но не сутками, ему нужен отдых;
• после выключения компрессора, нужно минимум 5-10 минут перед повторным запуском.

В остальном, есть простор для творчества.


Принципиальная схема терморегулятора

Тут всё просто. Есть реле RL1 на ток в 16А на каждую группу, управляющую компрессором. Ключ Q1 управляет этим реле, получая команды от микроконтроллера U1. МК тактируется от кварца в 4 МГц.

Кнопки управления всего две, это «PLUS» и «MINUS», подтянуты они к плюсу питания и зашунтированы ёмкостями С4 и С5, для избавления от дребезга контактов.

Используется цифровой термодатчик U1 ds18b20, работающий по однопроводному протоколу.

Вся индикация — на семисегментном LED индикаторе с общим анодом, работающим в динамическом режиме. Светодиод «WORK» это индикатор состояния компрессора, который показывает, включен он или нет.

Питание взял от готового импульсника, на выходе которого, снимается 12В на реле и 5В на всё остальное.

Осталось ознакомиться со схемой холодильника и приступить к разработке логики управления компрессором.
Терморегулятор для холодильника на микроконтроллере ATMEGA8 и термодатчике DS18B20. Схема, плата, прошивка
Электрическая схема холодильника «NORD-214-1».
SK — терморегулятор; EL — пампа накаливания; К — пускозащитное реле; М — компрессор; ЕК1 — электронагреватель поперечины; ЕК2 — электронагреватель оттаивания; SQ — выключатель освещения; Х — провод армированный.


В итоге, клеммы с термостата SK будут отключены и перенаправлены на контакты моего реле.

Пишем холодильную программу для МК

Начинаем продумывать логику программы, а она довольно сложная. Мне даже в начале разработки, после пары дней кумеканья, пришлось стереть всё и писать код заново, но предварительно составив блок-схему логики работы программы.
С блок-схемой стало гораздо проще писать «поэму». Общая логика работы программы описана ниже на рисунке.

Блок-схема работы основной части программы


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

Блок-схема работы программы в аварийном режиме


Данная подпрограмма является копией той, что работала на подносе в начале статьи, так что предыдущие труды прошли не зря.

Прошивка и исходники, как всегда, в подвале статьи! Что касается фьюзов, то они все сняты, кроме CKSEL1, т.е. микроконтроллер настроен на работу от внешнего кварца на 4 МГц.

Индикация и настройки

Теперь поговорим об индикации. В устройстве заложены несколько параметров, которые можно настраивать:
1) температуру внутри — «t» (от 0 до 10 градусов, шаг 0,1 градус);
2) гистерезис заданной температуры — «G» (от 1,0 до 5,0 градусов, шаг 0,1 градус);
3) таймер отдыха компрессора — «h» (от 5 до 60 минут, шаг 1 минута);
4) таймер работы компрессора — «H» (от 10 до 600 минут, шаг 10 минут);
5) время работы компрессора в аварийном режиме — «on» (от 5 до 99 минут, шаг 1 минута);
6) время отдыха компрессора в аварийном режиме — «oF» (от 5 до 99 минут, шаг 1 минута).

Далее фотографии с реальными настройками.

1) температура внутри холодильника



2) гистерезис заданной температуры (+/- 1,5 градуса)



3) таймер отдыха компрессора (12 минут)



4) таймер работы компрессора (2 часа)



5) время работы компрессора в аварийном режиме (20 минут)



6) время отдыха компрессора в аварийном режиме (50 минут)


Настройка температуры производится простым нажатием кнопок «PLUS» и «MINUS», при этом первоначальное нажатие покажет текущую заданную температуру, а повторное нажатие одной из двух кнопок, уже изменит её на 0,1 градус.

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

Для проведения настроек других параметров, нужно нажать сразу две «PLUS» + «MINUS» кнопки и отпустить, а затем изменять значения необходимых параметров теми же кнопками «PLUS» и «MINUS».

Переход на следующий параметр в меню, происходит также нажатием сразу двух кнопок «PLUS» + «MINUS».

Если не трогать кнопки 2 секунды, все настройки сохраняются и индикация возвращается на показ температуры в камере холодильника.

Порядок переключаемых с помощью двух кнопок параметров соответствует порядку пунктов (2 → 3 → 4 → 5 → 6), перечисленному выше.
Применение параметров в программе в реальном времени происходит только в пунктах 1, 2, 5, 6. Параметры пунктов 3 и 4 применяются после событий старта/остановки компрессора.

При подаче питания на устройство на индикаторе высветится оставшиеся время отдыха компрессора. Это подстраховка. Мало ли, вдруг было отключение электричества, и компрессор до этого события работал, его же нельзя вот так сразу запускать. Нужна пауза минимум 5-10 минут, чтобы давление внутри стравилось, иначе пусковой ток будет слишком велик, и это может повредить мотор. В моём случае, он просто не запускался и гудел на пусковой обмотке, потребляя более 2 кВт!

Таймер защиты при включении показывает, что осталось 11 минут и 44 секунды до запуска

По истечении таймера защиты индикация переключается на постоянное отображение температуры.

Гистерезис необходим для образования температурного «окна», т.е. если установлена температура +5°, а гистерезис равен 2°, то компрессор будет включаться при +7° и выключаться при +3°.

Конструкция и детали цифрового термостата

Прибор решено было вмонтировать на верхнюю крышку холодильника. Для этого была разработана плата из двух частей — цифровая и силовая.






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

Выпилил окошки и отверстия в заглушке. Хорошо, что у меня завалялся кусок лицевой затемняющей панели от спутникового тюнера!


Все эти кусочки пластика я посадил на термоклей. В итоге вышла довольно симпатичная лицевая панель.


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

Далее прикрутил платы на платформу от крышки.

Датчик DS18B20 протащил через отверстие на задней стенке холодильника, через которое входит фреонная трубка на испаритель внутри камеры. Провёл кабель вдоль короба от термостата и вывел наружу. Заодно и исправил косяк мастеров с лампочкой, которые как выяснилось, криво надели клеммы на патрон от лампы, эх!.. Но не будем о грустном.


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




Результаты проделанной работы

На мой взгляд, выглядит всё круто и аккуратно. Мама очень довольна изобретением и боится нажимать на кнопки, что бы без привычки ничего не сломать.

Выставил температуру в +4,5° и гистерезис в 1,5°. Итого вышло, что холодильник включается при +6° и выключается при +3°. По времени вышло, что компрессор работает 10 минут и отдыхает 55 минут, а это 0,15 рабочего времени. В Интернете сказано, что диапазон соотношение цикла работы/отдыха в 0,2-0,9 считается нормальным. Думаю, моя цифра показывает, что экономия электроэнергии находится на высоком уровне.

Это был интересный опыт в решении данной проблемы, которая возникает у многих владельцев старых холодильников.

Файлы

Печатная плата в SprintLayout v6.0 43,39 Kb ⋅ 32
Проект для опытов в Proteus v8.4 22,53 Kb ⋅ 22
Программа в CodeVision AVR 3.12 (исходники) 132,01 Kb ⋅ 30
Прошивка для заливки (hex) 4,23 Kb ⋅ 24

На этом всё. Благодарю за внимание!
И да прибудут с вами интересные статьи на Датагоре!
Тимур (maddiego)
Узбекистан, Ташкент
Профиль maddiego
Мне 27, с паяльником подружился в 10 лет. В 22 скатился в сферу микроконтроллеров.
 

Понравилось? Палец вверх!

  • всего лайков: 67

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Фото-реле на микроконтроллере ATTiny13... Привет датагорцам! Я затеял ремонтные работы дома, и мне понадобилась система автоматического...
Схема на Датагоре. Новая статья Автомат управления бойлером Ariston. Экономим электроэнергию и ресурс котла... Задумался я над вопросом, отключать или не отключать бойлер периодически? Одно из множества...
Схема на Датагоре. Новая статья Термостат для отопления дачи инфракрасными обогревателями Иколайн. Дежурный режим, часы. DS1307, DS1631, Atmega8, энкодер... Как говорит мой коллега, что бы Гаврилов ни делал — все равно термометр получается… Новая статья...
Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Фотка от www.150cc.ru Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых...
Схема на Датагоре. Новая статья Простейший кодовый замок на реле, для начинающих... Начну с того, что на работе у меня стоял какой-то древний самодельный кодовый замок, который уже не...
Схема на Датагоре. Новая статья Схемка в блокнот. Реле времени на КМОП микросхемах... Иногда возникает необходимость отключать (или включать) нагрузку по истечении определенного...
Схема на Датагоре. Новая статья USB адаптер для чтения и программирования цифровых термостатов MAXIM/DALLAS DS1821... В статье описано, как за час сделать простой USB-адаптер для чтения/записи цифровых термометров...
Схема на Датагоре. Новая статья Реле дневных ходовых огней... Эта поделка - самоделка для тех, кто забывает включать - выключать свет на своём авто. Я думаю что...
Схема на Датагоре. Новая статья Простой Soft-start для усилителя мощности ЗЧ... Это простое приспособление позволяет повысить надежность УМЗЧ и уменьшить помехи в сети в момент...
Схема на Датагоре. Новая статья 6C33C... Что-тут сказать лампа довольно капризная в приготовлении, но весьма неплохая в звуке....
Схема на Датагоре. Новая статья Автоматическое включение/выключение сабвуфера на микроконтроллере PIC12F675... Проект разрабатывался для сабвуфера, предполагалось его автоматическое включение при появлении...
Схема на Датагоре. Новая статья Мое поколение не верит в себя... Я рыскал в поисках простого программатора МК по сети. И набрел на сайт молодого парняги, студента...
<
  • Главный редактор
27 сентября 2017 07:22

Игорь Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 742 комментария
  • 267 публикаций
 
  • 0
Тимур, спасибо! yahoo
Отличная стьтья, подготовленная по всем датагорским авторским канонам.

Уважаемые камрады и читатели! balloon
Есть желающие на киты или готовое устройство такого холодильного термостата?
Сигнальте в комменты.

<
  • Гражданин
27 сентября 2017 07:36

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 23 комментария
  • 8 публикаций
 
  • 0
Благодарю!
Сам не ожидал что получится так лаконично передать весь процесс "воскрешения" моего старого белого приятеля - холодильника blush

<
  • Гражданин
27 сентября 2017 12:48

Иван Гаврилов / Discover

Цитата
  • С нами с 17.08.2009
  • Ушёл в реал Пользователь offline
  • 39 комментариев
  • 16 публикаций
 
  • 0
Тимур, Супер!!!
Всё аккуратно и красиво сделано.
Аккуратно оформленный код, в достаточной мере прокомментированный.
А главное, это не какая-нибудь безделушка, а реально полезная вещь сделана!!!
МОЛОДЕЦ!

<
  • Гражданин
27 сентября 2017 22:03

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 23 комментария
  • 8 публикаций
 
  • 0
Иван, рад что Вам понравилось!
Изобретение и впрямь полезное.

<
  • Прохожий
28 сентября 2017 10:04

/ Дмитрий

Цитата
  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Отличная работа Тимур.
Я только хочу бы обратить внимание на один нюанс, который в моих проектах добавил проблем.
Двигатель компрессора, как любая индуктивная нагрузка, при размыкании контактов реле может вызывать появление микродуги и как следствие этого, пригорание или даже спайка контактов. У стационарного терморегулятора и пускового реле холодильника контакты очень большие и данная проблема не проявляется. Я полагаю, что стоит применить реле с более мощной контактной группой.

<
  • Гражданин
28 сентября 2017 12:04

Алексей / doswindows

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 25 комментариев
  • 0 публикаций
 
  • +1
Реально полезная конструкцыя с учётом что очень часто летят термостаты ( когда-то сам занимался ремонтом холодильников )
Молодец !!!
Есть предложение добавить ещё одну функцыю, полезную если в доме имеется женщина или дети которые часто не доконца закрывают дверцы холодильника Имеется ввиду тех что не первой свежести в которых магниты в гофре уже плохо притягиваются
Ну так вот ,добавить бузер который будет с задержкой в 2-3 мин издовать наинеприятнийший звук сигнализируя об плотно незакрытой дверцы
В роли датчика можно использовать датчик холла встроенного в корпус при том что магниты там уже присутствуют
Я программировании практически 0 и незнаю есть ли свободное место в памяти МК для моего предложения добавить такую функцыю

<
  • Гражданин
28 сентября 2017 12:29

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 23 комментария
  • 8 публикаций
 
  • +1
Алексей, идея неплохая! хоть и требует дополнительных усилий при монтаже датчика на дверь. Возможно я бы так и сделал, но как только я починил свой холодильник, сразу же его продал, купив более современный.

По поводу кода, программа занимает около половины памяти МК, так что, в целом, простор для творчества имеется, если "муза" конечно же усядется рядом smile

<
  • Гражданин
28 сентября 2017 16:31

Алексей / doswindows

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 25 комментариев
  • 0 публикаций
 
  • 0
Может кому и пригодится такая функцыя в своего старичка wink
ну если госпожа муза вас поситит и будет свободное для творчества время то неплохо было бы yahoo

<
  • Главный редактор
28 сентября 2017 16:48

Игорь Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 742 комментария
  • 267 публикаций
 
  • 0
Цитата maddiego
требует дополнительных усилий при монтаже датчика на дверь

Тимур, да вроде датчик есть - он же концевой выключатель света. Самое простое - если свет включен (можно чуять высокое напряжение через резистивный делитель) более 3 минут, то пищим пищалкой.
Не идеал, но сработает.

<
  • Гражданин
28 сентября 2017 22:14

Владимир / xHawKx

Цитата
  • С нами с 22.09.2010
  • Ушёл в реал Пользователь offline
  • 3 комментария
  • 2 публикации
 
  • +1
Можно таким устройством поддерживать температуру не только в холодильнике, но и в перегонном кубе, управляя ТЭНом..

<
  • Гражданин
29 сентября 2017 13:09

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 23 комментария
  • 8 публикаций
 
  • 0
Дмитрий,

Согласен, но искать реле побольше, да и ещё как-то вписать его в корпус холодильника, я не стал, и применил реле с двумя контактами, соединив их параллельно, должно хватит на дольше чем обычно.

Игорь,

Я совсем забыл про данную "хитрость", тем не менее, холодильник у меня стоял наклонённый назад и дверь сама схлопывалась, а если оставить её открытой на 1см, то кнопка успевает зажаться и тем самым, поймать событие открытой двери уже не выйдет.

Владимир,

Да прибор по сути своей универсальный в своей области, в случае необходимости расширения диапазона температур, если мне не изменяет память, достаточно перекомпилировать программу, изменив пределы в файле var.h.

<
  • Гражданин
29 сентября 2017 20:29

Алексей / doswindows

Цитата
  • С нами с 22.03.2009
  • Ушёл в реал Пользователь offline
  • 25 комментариев
  • 0 публикаций
 
  • +2
Цитата Datagor
Тимур, да вроде датчик есть - он же концевой выключатель света. Самое простое - если свет включен (можно чуять высокое напряжение через резистивный делитель) более 3 минут, то пищим пищалкой.
Не идеал, но сработает.

У родных кнопок очень большой рабочий ход , + есть у них склонность к застреванию ( исходу из личного опыта )
Необезательно конечно использовать именно датчик холла ,вполне и гергон подойдет, с ним я считаю будет надежнее чем с родной кнопкой.

На своём поставил геркон и плату от китайского будильника ,в разрыве стоит емкостное реле времени примерно на 2мин

<
  • Гражданин
29 сентября 2017 20:50

Тимур / maddiego

Цитата
  • С нами с 2.08.2016
  • Ушёл в реал Пользователь offline
  • 23 комментария
  • 8 публикаций
 
  • 0
Алексей,

Хорошо придумано, дёшево и сердито, а главное работает yahoo

<
  • Кандидат
16 октября 2017 09:33

Аноним / Yanshun

Цитата
  • С нами с 5.03.2015
  • Ушёл в реал Пользователь offline
  • 3 комментария
  • 0 публикаций
 
  • 0
Доброе утро.
А где информацию про выставления фьюзов или они по умолчанию от производителя?
Благодарю.

<
  • Главный редактор
17 октября 2017 17:44

Игорь Котов / Datagor

Цитата
  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 742 комментария
  • 267 публикаций
 
  • 0
Цитата Yanshun
А где информацию про выставления фьюзов

В статье, мил человек, в статье. Долой клиповое мышление! Читаем датагорские полновесные и основательные статьи. yahoo

Лень читать? Ну можно поиском по странице найти "фью".

<
  • Кандидат
18 октября 2017 07:01

Аноним / Yanshun

Цитата
  • С нами с 5.03.2015
  • Ушёл в реал Пользователь offline
  • 3 комментария
  • 0 публикаций
 
  • 0
Datagor,
Доброе утро.
Благодарю. Не дочитал статью. Думал будет картинка, где наглядно видно.
Нашел.

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.