Jump to content
Yanshun

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

Recommended Posts

Добрый день.
Хочу поделится с Вами Термостат ∆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
Баги сервера.

Корпорация Mars

Share this post


Link to post
Share on other sites

Фото платы, закрыли видимо лазейку в сервере, что раньше была возможность загружать в одно сообщение более 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
Обход ограничения сервера на загрузку картинок :)

Корпорация Mars

Share this post


Link to post
Share on other sites

Импульсный источник питания - расчет за 10 минут в eDesignSuite

Как ориентироваться в огромном количестве существующих вариантов, чтобы выбрать наиболее подходящий для конкретного случая. «Ручной» перебор всех вариантов может оказаться весьма трудоемким процессом, а полученный результат – далеко не оптимальным. Специализированное программное обеспечение, позволяет уменьшить количество рутинных операций при проектировании.

Подробнее

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
                     

Как упростить выбор ИП для промышленного применения?

Компания Mean Well выпускает широкий перечень встраиваемых источников питания с креплением на шасси, имеющих, на первый взгляд, схожие характеристики. Статья расскажет о ключевых особенностях выпускаемых семейств и упростит выбор источника питания для промышленного применения.

Подробнее

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

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


Корпорация Mars

Share this post


Link to post
Share on other sites
                     

Преимущества новых высоковольтных SOI-драйверов Infineon

При производстве драйверов силовых транзисторов компания Infineon использует различные технологии: JI, SOI, CT. Драйверы, выполненные с применением технологии SOI, имеют целый ряд преимуществ по сравнению с классическими JI-драйверами. В статье рассматриваются эти преимущества на примере новых семейств драйверов 650 В 2ED210x и 2ED218x.

Подробнее

13 minutes ago, Yanshun said:

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

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

2 hours ago, Yanshun said:

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

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

 

Share this post


Link to post
Share on other sites

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

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


Корпорация Mars

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. Пока впаяю новый контроллер. 


Корпорация Mars

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


Корпорация Mars

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


Корпорация Mars

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...

  • Сообщения

    • Как говорил тов. Паркинсон, продолживший серию Законов Мэрфи: если ошибка может вкрасться в расчеты - она в них вкрадывается. Хотя общая, заключительная рекомендация вполне рациональна.
    • Вот видите. Точных данных нет. Хотя некоторые пилоты и сомневались, что опытные лётчики Гагарин и Серёгин могли по глупости попасть в струю другого самолёта и не сумели вывести из штопора Миг-15ути. Например по утверждению космонавта Леонова, во время учебного полета 27 марта 1968 года в небе находился еще один самолет производства КБ им. Сухого Су-15, который без разрешения приблизился к Гагарину и спровоцировал его падение, попросту "сдув" Миг-15ути с курса. Виноват в гибели Гагарина, по мнению Леонова, летчик-испытатель Лётно-исследовательского института в Жуковском. Этот пилот — Герой Советского Союза, как и Гагарин. Ему уже за 90, он живет в Сибири и тяжело болен, утверждает 83-летний Леонов. (конец цитаты) Только смерть Гагарина и Серёгина это другая тема разговора.
    • предлагаю просто посчитать... 11кВт/0,66кВ=16,7А , домножаем на косинус и кпд 16,7/0,72/0,82= 25А, на перегрузе ток может доходить до пускового (в 5..7раз больше номинального) , итого 125..175А смотрим сопротивление  жилы СИП16 = 1,91 Ом/км ,  200м = 0,382 Ом падение напряжения на фазе Uпд=(125..175)*0,382=47..67В вопросы есть? Во-первых читайте что пишет ТС у него стабы на каждой фазе итого 30кВА
    • Привет всем! Имеется МК ESP32, который будет управлять трёхканальным мультиплексором 74HC4053, где все каналы имеют по две линии. Из трёх каналов используется только два. Оба используемых канала должны переключаться синхронно. ESP32 может выбрать либо одну из двух линий мультиплексора (при помощи ESP32::IO34), либо вообще может его выключить, подав на ESP32::IO35 высокий уровень. Ещё есть внешние устройства, состояние которых определяет какие линии мультиплексора разрешено задействовать микроконтроллеру в настоящий момент. Это решается при помощи блока U3, который берет сигналы от внешних устройств, а также уровень с ESP32::IO34, и вычисляет можно ли включить ту линию, которую просит микроконтроллер. Если нет, то мультиплексор выключается путем подачи на его вход U2::E высокого уровня. По сути U3 реализует логическое выражение от трех параметров. Далее. То, хочет ли микроконтроллер задействовать мультиплексор (ESP32::IO35), и то, разрешено ли ему это сделать (U3::PIN_5), соединяется через ИЛИ и попадает на вход U2::E мультиплексора. Идея в том, чтобы аппаратно не дать ESP32 полезть туда, куда сейчас нельзя. Теперь о проблеме. Микроконтроллеру нужно будет знать, можно ли ему лезть туда, куда он хочет, или нет. Для этого я хочу использовать ножку ESP32::IO35 поочередно на вход и на выход. Когда она настроена на выход, то все должно быть так, как описано выше. А когда она настроена на вход, то 1. Микроконтроллер читает то, что у него на ESP32::IO35, и получает значение U3::PIN_5. То есть сумеет узнать можно ему работать или нет. 2. Уровень на U2::E равен уровню U3::PIN_5. Это чтобы мультиплексор не включился когда это запрещено. Как такое сделать не задействуя другие выводы ESP32? Спасибо.
    • @kotenok Вы тоже постите здесь, ”в тырнете”, мягко говоря ”непроверенную” информацию.  Сперва снятся с регистрации? Нет почтового адреса, нет потребителя и тд, а главное легко выселить, при необходимости. А потом ”вернуть” имущество в собственность ”СССР”, какому-либо типа ”Союз” ”Советских” ”Собственников” ”Реквизитов”?  
    • @SamVal Что касаемо пустить лопух 4а32 выше 400гц как мид, то идея не самая лучшая. С этой задачей лучше справиться более лёгкий и мелкий ширик/мид, например Бейма 605nd, у которого чуйка 98.3дб, Мms10.37гр, что в 3 с лишним раза меньше Мms 4a32, а значит и импульсная характеристика (отклик на импульс) в 3 с лишним раза лучше. Если провести аналогию, то для быстро возить лёгкий груз не нужен грузовик тяжелее чем требуется. Он будет дольше разгоняться и тормозить. К тому же с повышением частоты любой диффузор работает меньшей площадью а остальная площадь является лишь дополнительным грузом. Для частот от 400гц диаметр диффа должен быть не более 13.6см, а это головка 6.5" но никак не 12" лопух 4а32. Поэтому для данной задачи та же Бейма 605 более оптимальна и по выполнению задачи уделает 4а32 по всем параметрам. При наличии саба лопух 4а32 будет более рациональнее применить от 100-150гц.
×
×
  • Create New...