Термостат на атмега8 своими руками

Содержание

cxema21.ru

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

Схема термостата:

circ

IMG 6179

В обычном режиме, на экране индикатора отображается текущая температура, которая обновляется раз в секунду. Длительное, непрерывное нажатие на кнопку SB2 (3 секунды) переведет устройство в режим настроек, в котором можно установить новое значение поддерживаемой температуры. В этом режиме, кнопка SB1 увеличивает значение поддерживаемой температуры, а SB2 – уменьшает. Длительное нажатие на одну из этих кнопок, приведет к быстрому изменению значения температуры. Запись нового значения поддерживаемой температуры произойдет автоматически по истечению 5 секунд, если ни одна кнопка не нажималась.

IMG 6181

Нажатие на кнопку SB1, отобразит поддерживаемую терморегулятором температуру в нижней строке индикатора. Температура отображается все то время пока нажата и удерживается кнопка, сразу после отпускания кнопки информация с экрана исчезает.

IMG 6180

Терморегулятор может работать как на нагревание (например, в инкубаторе), так и на охлаждение (скажем, в холодильнике). Поскольку изначально устройство разрабатывалось для поддержания температуры в инкубаторе и надежность была прежде всего, то в него была добавлена функция звукового оповещения неисправности или отсутствия (скажем, обрыва провода) датчика температуры. Если несколько раз подряд не удастся прочитать данные из датчика DS18B20, то из динамика раздастся тревожный сигнал. Этот же динамик используется для озвучивания кнопок.

Видео работы:

Микроконтроллер работает от внутреннего задающего генератора на 4 мГц. В устройстве используются один датчик, который подключен к порту PC2 микроконтроллера..Печатная плата не разрабатывалась, на фотографиях использована макетная плата которая описывалась в статье.

Источник

2 Схемы

Принципиальные электросхемы, подключение устройств и распиновка разъёмов

464 header

Двухканальный цифровой термостат: схема на контроллере Atmega8

2 tsifrovoy reg temperatury 1

Для сборки схемы термостата использовались такие детали, как: микроконтроллер Atmega8, цифровые датчики температуры DS18B20 и дисплей ЖКИ 2х16 знаков.

Программа для Atmega написана на ассемблере. В программе реализована поддержка шины 1wire для датчиков. Устройство не выполняет поиск или распознавание идентификационных номеров датчиков, каждый из них подключен к разному контакту микроконтроллера. Таким образом к контроллеру можно подключить только два термодатчика, но в данном проекте этого достаточно. Кроме того, это решение значительно упростило программу.

Функции цифрового термостата

Термостат может быть запрограммирован с 8 рабочими параметрами, это рабочий режим, имеется 5 режимов:

Пороговые значения температуры от T1 до T4 для включения или выключения выходов, в зависимости от режима работы. Ошибка I1, Ошибка I2, программирование выходное действие после отключения или выхода из строя датчика.

2 tsifrovoy reg temperatury 3

Подсветка дисплея также управляемая: включить подсветку, выключить подсветку, включить подсветку на 30 секунд после нажатия клавиши.

2 tsifrovoy reg temperatury 4

Параметры устанавливаются в меню, которое становится доступным после длительного удержания кнопки ввода. Во время нормальной работы на ЖК-дисплее отображается текущая температура и состояние выходов, а в режимах 4 и 5 также разница температур. Все параметры сохраняются в памяти EEPROM, поэтому они не теряются после сбоя питания.

2 tsifrovoy reg temperatury 5

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

Все меню (8 параметров и возможность выхода из режима программирования) вместе с проверкой введенных параметров с учетом режима работы занимало больше места в памяти, чем основная программа. Основная программа — поддержка датчиков — считывание температуры, преобразование данных, отображение данных на дисплее. И соответствующее управление выходами с учетом: считываемой температуры, рабочего режима и заданных пользователем пороговых значений. Все это заняло 8 кБ памяти.

Конструкция и сборка

Регулятор температуры построен на односторонней плате размером 65 x 100 мм, разработана в EAGLE. Несколько элементов, например микроконтроллер, расположены под дисплеем.

2 tsifrovoy reg temperatury 2

Выходы термостата представляют собой два реле 250 В 16 А, поэтому можно легко подключить к ним потребители на приличную мощность. Всё питается от 12 В постоянного тока. Термостат уже долго работает без сбоев.

Источник

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

1487262418 1

Содержание / Contents

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

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

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

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

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

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

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

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

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

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

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

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

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

Осталось ознакомиться со схемой холодильника и приступить к разработке логики управления компрессором.

В итоге, клеммы с термостата 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 минута).

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

Настройка температуры производится простым нажатием кнопок «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 кВт!

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

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

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

1487262612 15
1487262671 16
1487262656 17
1487262683 18

1487262660 19

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

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

1487262676 20
1487262696 21

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

1487262718 22

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

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

1487262708 23

1487262733 24

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

1487262724 25
1487262759 26

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

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

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

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

↑ Файлы

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

▼ Файловый сервис недоступен. Зарегистрируйтесь или авторизуйтесь на сайте.

На этом всё. Благодарю за внимание!
И да прибудут с вами интересные статьи на Датагоре!

Камрад, рассмотри датагорские рекомендации

🌻 Купон до 1000₽ для новичка на Aliexpress

Никогда не затаривался у китайцев? Пришло время начать!
Камрад, регистрируйся на Али по нашей ссылке. Ты получишь скидочный купон на первый заказ. Не тяни, условия акции меняются.

🌼 Полезные и проверенные железяки, можно брать

Куплено и опробовано читателями или в лаборатории редакции.

Источник

Термостат для электрического чайника на ATmega8(Термопот)

rating starrating starrating starrating starrating star

В основе прибора микроконтроллер ATmega8, который тактируется от кварцевого резонатора частотой 8МГц. Датчик температуры аналоговый LM35 или цифровой DS18B20. Семисегментный индикатор с общим анодом.

Схема устройства c датчиком LM35

700 01

Схема устройства c датчиком DS18B20

700 06

При включении питания прибор начинает работу в режиме «Кипячение», вода нагревается до температуры установленной в параметре «P1», например 90°С, при этом на индикаторе будет мигать символ градуса 1 раз в 0,5сек. По окончании режима «Кипячение» прибор переходит в режим «Подогрев». В этом режиме температура воды поддерживается на уровне установленном в параметре «P2», например 60°С, символ градуса мигает 1 раз в 2 сек.

В параметре «P3» устанавливается гистерезис т.е. разница между температурой включения и температурой выключения в режиме «Подогрев», его значение устанавливается в пределах 1-15°С. Например, если «P2» равен 60°С, а «P3» равен 3°С то ТЭН чайника будет включаться при температуре 57°С, а выключаться при температуре 60°С.

Кнопка «Кипячение» включает режим «Кипячение» при условии, что текущая температура ниже установленной в параметре «P1».

Изменить параметры можно в меню, вход в которое осуществляется кнопкой «Меню», переход между параметрами осуществляется этой же кнопкой. Кнопками «+» и «-» изменяются значения параметров. Значения параметров автоматически сохраняются в энергонезависимой памяти микроконтроллера при выходе из меню.

Прибор автоматически выключает ТЭН и выдает на индикатор ошибку:

— Err1 обрыв линии или неисправен датчик DS18B20;
— Err2 если температура больше 150°С(LM35)/120°С(DS18B20);
— Err3 если ТЭН был непрерывно включен более 1 часа.

Фото готового устройства

700 02

700 03

700 04

700 05

Файлы к статье «Термостат для электрического чайника на ATmega8(Термопот)»
Описание:

Файл прошивки микроконтроллера, макет печатной платы DipTrace

Источник

Трехканальный термостат, терморегулятор, таймер на ATmega8

Trehkanalnyiy termostat termoregulyator taymer na ATmega8 i DS18B20

Описание и характеристики двухканального термометра, термостата (терморегулятора), одноканального таймера реального времени
на ATmega8 и DS18B20

Таймер реального времени

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

Введение таймера немного изменило алгоритм работы с устройством (об алгоритме работы я расскажу ниже). Теперь нажатием кнопки «Выбор» можно попасть в два меню:
— меню установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру
— меню коррекции хода часов и установки текущего времени.
Так как МК работает от внутреннего RC-генератора (8 МГц), который не отличается стабильностью и зависит как от температуры МК, так и питающего напряжения, функция коррекции хода часов позволяет подстроить точность хода для конкретных условий. А функция установки текущего времени позволяет установить текущее реальное время при первоначальной настройке или уточнять его при сильном отличии от реального времени.
Показания таймера при работе устройства не высвечиваются, узнать «который час» можно только при входе в режим установки текущего времени.

Управление нагрузками по таймеру не осуществляется (выключено), если время включения и выключения установлены в ноль. В принципе, управление нагрузками по таймеру не осуществляется при равенстве времени включения и выключения.

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

Схема трехканального термометра, термостата, таймера на ATmega8

Конструкция устройства

HEX fayl EEPROM e1458542957334

Индикация текущих температур и значений в режиме установки осуществляется на два трехразрядных семисегментных индикатора с схемой включения «общий катод».

Датчики DS18B20 подсоединяются к устройству через 3-х контактные штыревые линейки DS1 и DS2, нумерация выводов которых соответствует нумерации выводов датчиков.

Управление разрядами осуществляется маломощными биполярными транзисторами NPN-типа.

Питание устройства осуществляется от любого источника постоянного тока напряжением 7-25 Вольт. Схему можно запитать и от ненужного зарядного устройства от сотового телефона с выходным напряжением 5 +-0,5 Вольт. В этом случае можно из схемы исключить стабилизатор 7805 и конденсаторы С4, С5. Средний ток потребления устройством 40 миллиампер.

При необходимости организации резервного питания (для бесперебойной работы таймера) можно применить, к примеру, такую схему:

Rezervnoe pitanie ustroystva

Детали, примененные в конструкции:
Perechen detaley

Управление трехканальным термометром, термостатом, терморегулятором, таймером

1. Вход в меню

В устройстве имеется два меню.
При «коротком» нажатии на кнопку «Выбор» на индикаторах высвечивается надпись «ON—-OFF», входим в меню:
— установки пределов температур работы термостатов и временных интервалов работы термостатов, временных интервалов управления нагрузкой по таймеру
При «длинном» нажатии кнопки «Выбор» надпись «ON—-OFF» сменяется надписью «Cor—-USt», при этом надо отпустить кнопку, входим в меню:
— коррекции хода часов и установки текущего времени

Korotkoe nazhatie knopki Vyibor

Dlinoe nazhatie knopki Vyibor

Обращаю внимание, что при входе в меню (длинное или короткое нажатие кнопки «Выбор») все каналы управления нагрузками отключаются.

2. Меню «Коррекции хода и установки текущего времени» (длинное нажатие кнопки «Выбор»)

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

Menyu korrektsii i ustanovki nachalnogo vremeni

3. Меню установки температурных и временных интервалов для термостатов

4. Меню установки временных интервалов для таймера

Menyu ustanovki parametrov kanalov

Печатная плата конструкции (автор Роман):

Pechatnaya plata termostata teymera

Второй вариант печатной платы:

Vtoroy variant pechatnoy platyi

Вариант установки FUSE битов:

Fyuzyi 2

unknownTermostat_3_kanala_RAM_HEX (22,2 KiB, 2 355 hits)

unknownTermostat_3_kanala_EEPROM_HEX (169 bytes, 2 498 hits)

rarTermostat 3 kanala_AlgorithmBuilder (53,3 KiB, 4 864 hits)

unknownСхема конструкции в «Cadsoft Eagle» (886,7 KiB, 1 648 hits)

unknownПечатная плата термостата-таймера в SpintLayout (367,4 KiB, 2 664 hits)

unknownВторой вариант печатной платы в формате lay6 (186,9 KiB, 1 492 hits)

Ustanovka FUSE bitovFyuzyi dlya Pony Prog

Все необходимы радиодетали для сборки этой конструкции, а также запрограммированный микроконтроллер ATmega8-16PU, вы можете заказать в интернет-магазине сайта «МирМК-SHOP»

Nabor trehkanalnyiy termostat taymer na ATmega8

rating onrating onrating onrating on rating on(71 голосов, оценка: 5,00 из 5)

Источник

Поделиться с друзьями
admin
Здоровая спина
Adblock
detector