Jump to content
Yanshun

Термостат ∆T=0,1°C на ATmega8

Recommended Posts

Posted (edited)

Добрый день.
Хочу поделится с Вами Термостат ∆T=0,1°C на Mega8 TQFP, от автора propell_ant. Он является автором схемы и программного обеспечения, я лишь разработал свою версию печатной платы под имеющиеся комплектующие.
Характеристики данного термостат:
1. Возможность работы, как на нагрев, так и на охлаждение. (Разные прошивки).
2. Установка температуры от -55 до 125 градусов, с шагом 0,1 градус. При этом учитывается так-же и выставленное значение Дельты температуры, (например: прошивка Нагрев, Дельта стоит 1 градус, значит выставить температуру можно от -55 до +124 градусов).
3. Установка Дельты температуры от 0,1 до 25 градусов с шагом 0,1 градус.
4. Установка задержки отключения второго реле (FAN) от 0 до 250 сек.
5. Датчик температуры использован DS18B20.
6. Два активных выхода. Мах. 2А/220В, для каждого выхода.
7. Контроль ошибок датчика с выводом кодом ошибки и за поминание последней. Ошибки не стираются, просто запоминается последняя и в случае появление другой ошибки, последняя заменяется новой.
8. В случае появлении ошибки датчика, нагрузка отключается. Если в процессе работы устройства ошибка исчезла, она записывается в память и мигает дисплей с показанием текущей температуры. Это информирует пользователя, что были ошибки. Мигание дисплея убирается нажатием любой из кнопок. Код ошибки можно посмотреть в меню.
9. Использование разных индикаторов, Общий Анод или Катод. Разные прошивки.
10. При включенном реле TEMP горит точка в первом сегменте, вместе с отображением текущей температуры.
11. При зажатии кнопок + или - нет увеличения скорости переключения цифр.

Правило пользования данным термостатом. При нажатии, единожды, любой из кнопок, мы попадаем в Меню установки температуры. На дисплее загорается в первом сегменте нижнее подчеркивание и  последняя выставленная температура. Кнопками + и - выставляем нужную температуру. После выставления нужного значения ничего не нажимает, через 3 сек. термостат запомнить значение и перейдет автоматически к показанием текущей температуры. 
Если Вам нужно попасть к дополнительным возможностям термостата, нужно нажать одновременно две клавиши + и -. При их нажатии, Вы попадает в Меню выставления Дельты, в первом сегменте загорается латинская буква d и выставленное значение дельты. Кнопками + и - можно менять данной значение. После того, как выставили значение ничего не трогайте, через 3 сек. термостат запомнить его и перейдет к отображению текущей температуры.
Если нажать еще раз одновременно + и -, то попадает в Меню установки задержки отключения реле FAN. На дисплее в первом сегменте горит буква t и текущее выставленное значение, кнопками + и - можно менять значение.  После того, как выставили значение ничего не трогайте, через 3 сек. термостат запомнить его и перейдет к отображению текущей температуры.
Если еще раз нажать одновременно + и -, то попадаем в Меню Ошибок датчика, с отображение кода ошибки, тут отображается последний код ошибки датчики. Если ничего не нажимать, то через 3 сек. термостат перейдет к отображению текущей температуры.
При последующем нажатии одновременно + и - попадаем в меню выставления температуры, типа запасного входа :D.

А теперь разберемся на примере, как все это работает, НАГРЕВ. Выставляем температуру +25 градусов, выставляем Дельту 1 градус, выставляем значение отключения второго реле 3. Итак, что мы имеем, как только только температура подымиться до +26 реле TEMP отключится (точка в первом сегменте погаснет), а реле FAN будет включено еще 3 секунды и выключится. Как только температура опустилась до +25 градусов реле сново включаются (включение двух реле всегда происходит синхронно, одновременно). Важный момент, когда отключилось реле TEMP и идет отсрочка отключения второго реле FAN и если в этот момент температура упала и включилось реле TEMP, отсрочка аннулируется для реле FAN и оно остается включенным вместе с реле TEMP. 
При выставлении t отсрочки отключения реле FAN значение будет стоять 00,  то отключение данного реле будет происходит одновременно с реле TEMP. 

Коды ошибок датчика:
E 0.1 - ошибка контрольной суммы
E 0.2 - обрыв датчика
E 0.3 - после нескольких ошибок от датчика получено значение 85С
E 0.4 - короткое замыкание на землю

Данный термостат может питаться, как от переменки АС 9-10В, так и от постоянки DC 12-14V. 
Ток потребления термостата:
а) Потребление в режиме индикации отображения кода ошибки, текущей температуры, меню. 30 мА.
б) Включены все реле, горят светодиоды и отображается текущая температура, 80 мА.
в)  При зажатии кнопки + или -, при выставлении значения в меню, ток потребления вырастал до 110 мА, это только индикация, реле были выключены. Начинался разогреваться линейный стабилизатор и микроконтроллер до 60 градусов.

Фото собранного термостата:
 

Spoiler

SNC01908.thumb.jpg.e511e624d3a7ef96b4d71c96bb8905eb.jpg

SNC01907.thumb.jpg.b9f899ef92d341c83b353030bb82479e.jpgПрошивал все внутрисхемным программатором UABIsp через переходник, в программе avrdudeprog33

Spoiler

1109475416_Fusebit.png.fed09700362a009b866136222b592989.png664314074_.png.9baaed839a4f9f5c8098fd67821722bc.png21475614_fusebits-mega8-XTAL-4MHz.PNG.fdfcb1a56023bb1303c581cc5c23f1c7.PNG

Плата в 3D 
 

Spoiler

1170073302_Atmega8(1).png.fb5f8f09e4d41d80053020eae47b0880.png2094553491_Atmega8(2).png.4eb54f0759cbd4e6ac426cf8516ed618.png456807626_Atmega8(3).png.32b8ef827d8155d56a9cc17d037d05b0.png699903112_Atmega8(4).png.0d467bf481fc051b02b3216c62a30e2d.png1448128742_Atmega8(5).png.a600a93d35e54c16e4aa74526990c616.png1263218565_Atmega8(6).png.b11474161c7dacc1ed842022a3c993f4.png

Плата нарисована в Diptace, с помощью Gerber переведена в Lay6. Зазоры дорожек 0,3 мм, минимальная дорожка 0,3 мм. Плату заказывал в Китае на PCBway. Плата односторонняя размером 86*61 мм.

Gerber печатной платы Термостат ∆T=0,1°C на Mega8.rar Прошика и исходный код для Термостат ∆T=0,1°C на Mega8 8_v4.1.01..zip Термостат ∆T=0,1°C на Mega8 DipTrace.rar Термостат T=0,1°C на Mega8 TQFP.lay6

Edited by Yanshun
Баги сервера.

Share this post


Link to post
Share on other sites
Posted (edited)

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

Spoiler

1240776739_Atmega8(1).thumb.jpg.9f75708ac339cf1ad9f2cbbd3d9fdc84.jpg1888428941_Atmega8(2).thumb.jpg.7464a90157df5f43886fafc28ea14b59.jpg1957722858_Atmega8(3).thumb.jpg.271a50f7f9dd3b348380965ea4406bb4.jpg522634426_Atmega8(4).thumb.jpg.dbf981579638c96cf891c8d2d37cd924.jpg2084868551_Atmega8(5).thumb.jpg.0d430091431798b16e76bb8d70b97cfb.jpg274472716_Atmega8(6).thumb.jpg.ac4abd41cce1acaa470a1c232b7c1b76.jpg


 

Spoiler

1265870259_Atmega8(7).thumb.jpg.38d93e2d01fac3913948adb85a263f69.jpg989270718_Atmega8(9).thumb.jpg.cfb9a76feeb5bb96d498d7a535a1e76f.jpg1729916334_Atmega8(10).thumb.jpg.62b07a92ca5e8e0810bc20d976f0665e.jpg814658469_Atmega8(11).thumb.jpg.144d82d37a48bf31cb458e10990cb4c3.jpg

Spoiler

123814169_Atmega8(12).thumb.jpg.577bbb1db73e59f4edc114400a7b286a.jpg1989874910_Atmega8(13).thumb.jpg.d6b338c93047dee09b15383d4cb468f8.jpg1043822912_Atmega8(14).thumb.jpg.480135c3ef30f68ab3d1b88ae7cb112f.jpg

 

Термостат на Atmega 8 схема.jpg

Термостат на Atmega 8 печатная плата.jpg

Edited by Yanshun
Обход ограничения сервера на загрузку картинок :)

Share this post


Link to post
Share on other sites

Технология Maxim Integrated nanoPower: когда малый IQ имеет преимущества

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

Подробнее

1 hour ago, Yanshun said:

Установка температуры от -55 до 125 градусов, с шагом 0,1 градус.

1 hour ago, Yanshun said:

Установка Дельты температуры от 0,1 до 25 градусов с шагом 0,1 градус.

Какой в этом смысл? Точность измерения температуры у DS18B20 0,5 градуса, плюс к этому 0,2 дрифт.  Т.е. делать шаг меньше градуса с таким датчиком - бесполезно.

Share this post


Link to post
Share on other sites

@BARS_ Добрый день.
Вы совершенно правы, но раз так сделали  ПО, я просил автора все привести к 1 градусу, но к сожалению у него сейчас нет свободного времени. Есть вероятность появление прошивки в будущем подведенной к 1 градусу.

Забыл так-же добавить, что данный термостат может работать, как от внешнего кварца, так и от внутреннего, выставляется все с помощью фъюзов. Кому как будет удобно.
И еще одно, если во время работы, когда включены оба реле, произойдет ошибка по датчику, то реле TEMP отключится сразу, а вот для  реле FAN  пойдет задержка на отключение, сколько Вы выставили, это так задумано.

Share this post


Link to post
Share on other sites
                     

Платы Nucleo на базе STM32G0: чего можно добиться с помощью связки Nucleo и Arduino

Платы Nucleo и платы расширения X-NUCLEO от STMicroelectronics можно интегрировать в платформу Arduino с помощью библиотеки STM32duino. Связка плат Nucleo и платформы Arduino, и наличие готовых библиотек – представляет удобный инструмент для создания прототипов и конечных приложений в условиях ограниченного времени. Статья содержит пошаговые инструкции по установке библиотек и запуску примеров для Nucleo.

Подробнее...

13 minutes ago, Yanshun said:

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

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

2 hours ago, Yanshun said:

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

Этот вопрос  элементарно решается  программно выставлением верхнего предела ниже нижнего. И никакого гемороя с перепрошивками.

 

Share this post


Link to post
Share on other sites

@_abk_ Добрый вечер.
Вообще-то исходник автор не зажал, приложен в первом сообщений. Редактируйте под себя, как Ваша душа захочет.
На счет Нагрев/Охлаждение одновременно, если переписать программный код, то это реализуемо. Вариант, который Вы предложили, заставит убрать выставление Дельты из меню за не надобностью.

Исходник в открытом доступе, все в Ваших руках и силах.

Share this post


Link to post
Share on other sites
3 hours ago, BARS_ said:

...Точность измерения температуры у DS18B20 0,5 градуса, плюс к этому 0,2 дрифт...

При 12-битной разрядности, кажись, 0,0625 приращение обещали. :)

Share this post


Link to post
Share on other sites

Насколько в вашей конструкции тяжело реле переделать в управляемый от температуры ШИМ? Надо два независимых канала  (Вентилятор радиатора в машине.)

Share this post


Link to post
Share on other sites

человек тупо повторяет чужой проект, а ты ему задаешь вопросы про переделку.

14 hours ago, _abk_ said:

Этот вопрос  элементарно решается  программно выставлением верхнего предела ниже нижнего. И никакого гемороя с перепрошивками.

при нагреве, чтобы выключить, предел проверяется на "больше или равно".

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

разницу в логике работы ты чувствуешь или нет?

Share this post


Link to post
Share on other sites
9 hours ago, Starichok said:

разницу в логике работы ты чувствуешь

Не смеши. Что мешает проверять установленные пределы и выбирать соответствующую логику?

Share this post


Link to post
Share on other sites

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

 еще ты сказал про два предела, а я вижу по тексту, что предел ОДИН и есть дельта (гистерезис).

так что это ты насмешил...

Share this post


Link to post
Share on other sites

Да ладно... Я дальше пункта 1 и не читал, но осуждаю.:D

On 7/24/2019 at 7:46 PM, Yanshun said:

1. Возможность работы, как на нагрев, так и на охлаждение. (Разные прошивки).

Потому что для смены режима в этом устройстве менять прошивки  - хрень полная. Уж коли там ОДИН предел, ну сделай ту же дельту и отрицательной тоже,  делов-то... Будет универсальное устройство без перепрошивок. Тем более, что и исходник, говорят, есть...

То @Yanshun : Вы уж извиняйте, ежели что не так, я так только зашел, побурчать... Может, пригодится кому...:drinks:

Share this post


Link to post
Share on other sites

Наигрался я с выставлением фъюзов, что теперь контроллер перестал видеться программатором.
Придется заказывать переходник и подымать контроллер с помощью MiniPro. Пока впаяю новый контроллер. 

Share this post


Link to post
Share on other sites

Исходник похоже можно открыть CvAVR только v3.

Нет ли у кого под v2.05? Чисто что бы  поизучать начинающему.

Share this post


Link to post
Share on other sites

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

Spoiler

480082160_(1).thumb.jpg.d8e5d279c025b78315e8347a5757b6c6.jpg196801777_(2).thumb.jpg.fdd47805f9680d89ed041b4483ecd75a.jpg2112309518_(3).thumb.jpg.e4b4db7fc005f14b5de6c29838d3a4c6.jpg

Share this post


Link to post
Share on other sites

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

Также была добавлена прошивка с установкой  температуры 1 градус, дельта осталась без изменения. Установка задержки от 0 до 250 секунд.

tlm8_v4.1.02.vent_ - Шаг установки Температуры/Дельты 0,1 градус. При включении реле Temp горит точка в первом сегменте. 
tlm8_v4.1.02.vent_heat_d10 - Шаг установки Температуры 1 градус, Дельта 0,1 градус. При включении реле Temp горит точка в первом сегменте.
tlm8_v4.1.02.vent_nodot -  Шаг установки Температуры/Дельты 0,1 градус. При включении реле Temp не горит точка в первом сегменте.
tlm8_v4.1.02.vent_nodot_d10 - Шаг установки Температуры 1 градус, Дельта 0,1 градус. При включении реле Temp не горит точка в первом сегменте.

Приложил сами Hex - файлы и исходный код.
Также рекомендую использовать вешний кварц на 8 Мц, так как с ним термостат работает как положено.

Спасибо автору ПО за оперативное исправление и консультацию термостата.

Фьюзы на внешний кварц 8 Мц.png

tlm8_v4.1.02.vent_src.rar

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...