24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

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

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

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

Здесь только проекты на ATtiny
Post Reply
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

По многочисленным просьбам дорабатываю конструкцию термостата. Теперь умеет:

Измерение температуры от -55°С до +125°С (шаг 0,1°С)
Установка температуры от -55°С до +124°С (шаг 0,1°С !!!).
Гистерезис от 0,1°С до 90°С (начиная с версии v3.2)

Схема: (12.11.2009 привёл названия сегментов в соответствии с даташитом на индикатор.)
Схема
Схема
На схеме показан второй вариант включения термодатчика, если он не захотел работать по однопроводной шине (что встречается очень редко). Обратите внимание, что подтягивающий резистор на 11 выводе должен быть именно 4,7кОм. Уменьшение или увеличение может привести к нестабильной работе датчика в случае включения по однопроводной схеме. Хотя в последнее время попадаются экземпляры датчиков, которые не хотят работать с таким подтягивающим резистором, приходится подбирать в диапазоне 1,8кОм - 6,2кОм (обычно около 4,0кОм).
Индикатор можно применять как с общим анодом, так и с общим катодом - просто разные прошивки.

"*" обозначены компоненты необходимые для защиты от статического электричества, но их можно не устанавливать.

Управление:

Кнопками "+" и "-" устанавливают температуру включения нагрузки (на экране в первом сегменте отобразится символ подчёркивания "_").
При одновременном нажатии обеих кнопок устройство переходит в режим изменения гистерезиса (на экране в первом сегменте отобразится символ "d"). Длительное удержание одной из кнопок приводит к ускоренному перебору значений. При отсутствии нажатий на кнопки в течении 5 секунд прибор переходит в режим отображения измеренной температуры, при этом происходит запоминание изменённых параметров в энергонезависимую память.

Индикация:

В первом сегменте отображается точка, если Т < Т уст., т.е. нагрузка включена. Точка отображается во всех режимах, даже при изменении установленной температуры или гистерезиса (если сохраняется условие Т < Т уст.). В этом же сегменте будет отображаться знак минуса "-" при отрицательной температуре.

Логика изменения состояния управляющих выводов:

Довольно часто возникают вопросы насчёт этого, поэтому немного нарисую.
graph.gif
graph.gif (6.99 KiB) Viewed 207229 times
Пример 1 (нагрев):
  • Установим температуру = 25,5°С, гистерезис (dT) = 1,2°С.
  • Текущая температура 20 градусов. (PD2 = 1, PD3 = 0, горит "точка").
  • Такое состояние будет сохранятся пока температура не достигнет Т уст. + dТ = 26,7°С.
  • Когда температура достигнет 26,7°С состояние выводов поменяется (PD2 = 0, PD3 = 1, не горит "точка")
  • Такое состояние будет сохранятся пока температура не опустится до Т уст. = 25,5°С.
  • Когда температура опустится до 25,5°С состояние выводов поменяется (PD2 = 1, PD3 = 0, горит "точка")
  • И так далее....
Пример 2 (охлаждение):
  • Установим температуру = -5,2°С, гистерезис (dT) = 1,5°С.
  • Текущая температура 20 градусов. (PD2 = 0, PD3 = 1, не горит "точка").
  • Такое состояние будет сохранятся пока температура не упадёт до Т уст. = -5,2°С.
  • Когда температура упадёт до -5,2°С состояние выводов поменяется (PD2 = 1, PD3 = 0, горит "точка")
  • Такое состояние будет сохранятся пока температура не поднимется до Т уст. + dТ = 6,7 -3,7°С.
  • Когда температура поднимется до 6,7 -3,7°С состояние выводов поменяется (PD2 = 0, PD3 = 1, не горит "точка")
  • И так далее....
upd: спустя 8 лет "опечатку" таки заметили )))
bokorez wrote:Уважаемый, а Вы точно уверены, если к -5,2 в режиме охлаждения применить дельту 1,5, то получится +6,7??? В каком разделе математики можно сие почерпнуть? Понимаю, что это типа мелочь, но ведь глаз режет. -5,2+1,5= -3,7. Тем более, что "соавторы" уже по многим форумам растащили, а ошибочку проморгали.

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

Печатная плата:
Печатная плата
Печатная плата
pcb.gif (10.27 KiB) Viewed 207229 times
В формате Sprint-Layout 5.0 можно скачать тут. Печатную плату я немного изменил, по сравнению с термометром и прошлой версией термостата, но она пригодна для использования и в них тоже. Тут убрал кварц и добавил контактные площадки для подключения кнопок и управления нагрузкой.

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

Партлист:
тип наименование/номинал ед. изм. кол-во примечания типоразмер
датчик температуры DS18B20 1
диод 1N4148 1
индикатор E40561-L-O-O-W
(E40561-i-O-O-W)
1 7-сегментный, 4 разряда,19х50мм
кнопка 2 по вкусу, на основной плате не установлены
конденсатор 10 мкФ 2 16V SMD-B
конденсатор 0,1 мкФ 2 16V 1206
микропроцессор Attiny2313-20SU 1 корпус SOIC20, подойдут любые версии в этом корпусе
регулятор напряжения 78L05 1 L78L05ABUTR (например) SOT-89
резистор 1 кОм 1 1206
резистор 4,7 кОм 1 1206
резистор 100 Ом 2 1206
резистор 470 Ом 8 1206
реле 12 В 1 по вкусу, на основной плате не установлено
стабилитрон 5,1 В 2 выводной BZX79-C5V1
транзистор КТ817 (BC339, BC817) 1 на основной плате не установлен
Исходник один на все варианты - компилируется в нужную версию путём комментирования (раскомментирования) нужных дэфайнов:

Code: Select all

#define Cathode //для индикатора с ОК
//#define Anode //для индикатора с ОА

#define heat    //точка отображается если T < Tуст.
//#define cold  //точка отображается если T > Tуст.
Биты конфигурации (FUSES), для тех кто шьёт из PonyProg:
fuses.gif
fuses.gif (5.74 KiB) Viewed 207229 times
В шестнадцатиричном виде: LO: 0xE4 HI: 0xDF

Обратите внимание!!! Раньше предлагалось выставить BODLEVEL0 и BODLEVEL1, что включало Brown-out Detection (BOD) - контроль за напряжением питания. Это полезно при нестабильном питании и предохраняет содержимое энергонезависимой памяти (EEPROM) от порчи во время падения напряжения питания. Но как оказалось есть некоторые подводные камни. При включенном BOD и температуре кристала близкой к 0°С работа устройства оказывалась очень нестабильной - постоянно происходил сброс. Причём уровень BOD не влиял на стабильность работы (пробовал 1.8В, 2.7В, 4.3В). Питание при этом оставалось стабильное (питание от батарейки) - проверялось осциллографом. Поэтому рекомендую убрать "галочки" в конфигурации с всех BODLEVEL. Рекомендую сделать супервизор.

Важно
По отзывам и замечаниям участников форума сделано некоторое количество исправлений и доработок. Прежде чем собирать термостат, посмотрите ветку Термостат ∆T=0,1°C - работа над ошибками.
Перед тем как пожаловаться в форуме на ошибку в прошивке, также прошу, просмотрите эту ветку.
Полезные ссылки в теме.
- Супервизор.
- Для тех, кто раздумывает, как конкреино приделать к термостату супервизор питания, создана специальная ветка форума Супервизор питания.
- Корректировка показаний датчика
Attachments
pcb.rar
Печатная плата в формате Sprint-Layout 5.0
(8.8 KiB) Downloaded 13072 times
termostat_led_oa_heat.rar
Прошивка ∆T=0,1°C для нагревателя с ОА
(2.14 KiB) Downloaded 11577 times
termostat_led_oc_heat.rar
Прошивка ∆T=0,1°C для нагревателя с ОК
(2.15 KiB) Downloaded 10333 times
termostat_led_oa_cold.rar
Прошивка ∆T=0,1°C для холодильника с ОА
(2.14 KiB) Downloaded 8081 times
termostat_led_oc_cold.rar
Прошивка ∆T=0,1°C для холодильника с ОК
(2.15 KiB) Downloaded 7712 times
firmware v3.2.rar
Исходник проекта
(8.54 KiB) Downloaded 12243 times
firmware v3.2.cv2.rar
Исходник для новых (начиная с CVAVR v2.0.0) версий CodevisionAVR
(8.73 KiB) Downloaded 3978 times
Zond
Пробегал мимо
Posts: 1
Joined: 02 Feb 2009 08:25

Re: Термостат 0,1°C

Post by Zond »

Здраствуйте писал до этого на почту Поменял фьюзы по новому перепрошил тини но она упорно не видит датчик на индикаторе горят нули и все тут

Так как было собранно два термостата второй заработал но через некоторое время то же самое?

Самое смешное что до этого не было резисторов размера 1206 так я что проверить припаял обычное выводные и все два дня раотало без проблем. печатка с сайта один в один замыканий в схеме нет.
А после установки СМД тини долго не живет.

А работает проект в реальных условиях всмысе гдето воплошенный в конкретное устройство?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

Zond wrote:А работает проект в реальных условиях всмысе гдето воплошенный в конкретное устройство?
Работают у меня (и не только у меня) штук 20 собранных устройств. Плюс несколько штук - технологические образцы (для экспериментов). могу выслать фото...

Если с выводными резисторами было всё нормально, то смотрите пайку и её качество около верхних резисторов (под которыми 2 линии). Под ними 2 линии - Земля и Вход/выход 1-wire.

Попробуйте оторвать 11-й вывод от печатки и прям на него подключить резистор и DS18B20.
dovjik1
Пробегал мимо
Posts: 18
Joined: 27 Jan 2009 23:20

Re: Термостат 0,1°C

Post by dovjik1 »

Не стопудово-работает.Сам уже сделал два штуки.Все детали СМД и работает.У меня другая проблема как вместо Attiny поставить AT90s2313.Та прошивка что для Attiny не подходит.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

dovjik1 wrote:как вместо Attiny поставить AT90s2313.Та прошивка что для Attiny не подходит.
придумайте куда поставить кнопки (на линии индикатора не вышать), тогда освободятся выводы под кварц, тогда модно и ставить 90S2313...
dovjik1
Пробегал мимо
Posts: 18
Joined: 27 Jan 2009 23:20

Re: Термостат 0,1°C

Post by dovjik1 »

Может немного затупил.Вы хотите сказать что ат90s2313 с прошивкой attiny2313 подойдет для термометра(первого проекта)?Я собственно ипользую термостат как термометр(кнопки не выводил),и честно не помню какую прошивку залил.А может Вы правы в том что для термостата там где выводы под кварц используются кнопки.И во время конвертации программа видит эту ошибку.А если сконвертировать для термометра ,получится?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

dovjik1 wrote:Может немного затупил.Вы хотите сказать что ат90s2313 с прошивкой attiny2313 подойдет для термометра(первого проекта)?Я собственно ипользую термостат как термометр(кнопки не выводил),и честно не помню какую прошивку залил.А может Вы правы в том что для термостата там где выводы под кварц используются кнопки.И во время конвертации программа видит эту ошибку.А если сконвертировать для термометра ,получится?
Малость путанно вы пишите, но если я понял, то прошивка Вам нужна для термометра? Тогда можно прошивку термометра попробовать прошить в 90S2313.

а прошивка от термостата не подходит т.к. используется портА (кнопки) которого в 90s2313 нет вообще...

Повторюсь ещё раз - проверить прошивку на 90s2313 нет возможности по причине отсутствия такоывх в продаже.
dovjik1
Пробегал мимо
Posts: 18
Joined: 27 Jan 2009 23:20

Re: Термостат 0,1°C

Post by dovjik1 »

Малость путанно вы пишите, но если я понял, то прошивка Вам нужна для термометра? Тогда можно прошивку термометра попробовать прошить в 90S2313.

а прошивка от термостата не подходит т.к. используется портА (кнопки) которого в 90s2313 нет вообще...
Пишу путанно потому-что не профи в микроконтроллерах.По максимуму хотелось бы At90s2313 для термостата,но сейчас понял что не подойдет.Если бы я термостат использовал как термостат(с кнопками),то увидел бы что кнопки занимают место кварца.Значит ат90с2313 сюда не подходит.А для термометра нужно конвертировать прошивку?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

dovjik1 wrote:А для термометра нужно конвертировать прошивку?
Не знаю. А вы попробуйте прошить, поставить кварц 8МГц, и сказать что получилось. У меня нет 90s2313 поэтому попробоватья не могу!!!
dovjik1
Пробегал мимо
Posts: 18
Joined: 27 Jan 2009 23:20

Re: Термостат 0,1°C

Post by dovjik1 »

Спасибо,буду пробывать.
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

Здравствуйте, повторил конструкцию термостата 0,1 С.сделал несколько экземпляров под разные задачи.Все работает, очень нужна все же старая версия прошивки ОА. Если можно повторите или вышлите на электронку. С уважением.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

А что в старой прошивке есть такого, что нет в новой? Кроме убранных глюков?
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

За 2 месяца работы нескольких образцов глюков не замечено, просто старая прошивка у меня более удобно листает температуру при установках параметров. Надеюсь на понимание и помощь в решении проблемы.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

В чём выражается "более удобное листание"? В скорости? Или ещё в чём-то?
Опишите по подродней, а я просто в этой версию доделаю, т.к. старую совсем списал и удалил.
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

При однократном нажатии изменяются доли градуса поединично, при удержании кнопки доли градусов бегут быстро а сами градусы изменяются поединично посекундно, в новой версии этой логики нет , сделано по другому и как то неудобно листать десятые доли и градусы получается дольше .
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

Понял - исправлю. Поменял скорость листания, т.к. показалось быстровато...
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

Спасибо, буду ждать обновленный вариант, возможно если дополнить эту версию наличием индикации нахождения температуры в зоне гистерезиса будет еще более информативный с визуальной точки зрения проект. С уважением.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

Подскажите, как будет удобней индицировать нахождение в хоне гестерезиса, чтобы было наглядней?
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

Логическую единицу на отдельную лапку микроконтроллера , ну а дальше кто как сможет, простор для фантазии элементарный способ например светодиод..
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

Вот тока нету отдельных лапок.... Всё занято. Можно на индикатор, только как отображать?
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

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

Добавлено спустя 3 минуты 39 секунд:
Я в вашей схеме установил трехразрядный индикатор а информацию о режиме dT и режиме включения нагрузки вывел отдельныма светодиодами .
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

sergey wrote:задействовать точку после доли градуса
не совсем понял - там же динамическая индикация. Т.е. чтобы зажечь один сегмент (например точку) нужно задействовать 2 вывода контроллера.

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

Code: Select all

 .21.4.
это уж слишком - много точек.

Добавлено спустя 1 минуту 36 секунд:
sergey wrote:Я в вашей схеме установил трехразрядный индикатор
Вот с этого и надо было начинать!
тогда можно выводить в любой первый сегмент.
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

Re: Термостат 0,1°C

Post by sergey »

На любой свободный сигмент, а дальше можно додумать от вида корпуса размеров вида лицевой панели куда вывести эту индикацию, пусть думают кому нужно найдут варианты...
diawest1
Пробегал мимо
Posts: 2
Joined: 08 Feb 2009 06:12
Location: Украина
Contact:

Re: Термостат 0,1°C

Post by diawest1 »

Полезная и простая конструкция. :good: Для использования в инкубаторе, изложу свои предложения. :idea: Поскольку имеем дело с разрешением в 0,1tC, нужно предусмотреть калибровку шкалы. Т.к. первый же попавщийся "даллас", будет безбожно врать. :jokingly: Ограничить диапазон термостабилизации для :wall: , в пределах 35,0tC...39.0tC. И последнее. Вывод 1=Т>Туст(PD7) сделать "аварийным" 1=Т>38.5tC.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Re: Термостат 0,1°C

Post by hardlock »

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

А вот ограничить и "аварийный выход" - это уже для конкретной задачи - инкубатор. Тоже попробую доделать, а пока только пишу список изменений, которые хоте ли бы внести, т.к. совсем нет времени.
Post Reply