Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

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

Здесь только проекты на ATtiny

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

Сообщение hardlock » 31 янв 2009 21:38

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

Измерение температуры от -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 секунд прибор переходит в режим отображения измеренной температуры, при этом происходит запоминание изменённых параметров в энергонезависимую память.

Индикация:

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

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

Довольно часто возникают вопросы насчёт этого, поэтому немного нарисую.


Пример 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°С.
  • Когда температура поднимется до 6,7°С состояние выводов поменяется (PD2 = 0, PD3 = 1, не горит "точка")
  • И так далее....

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

Печатная плата:


В формате 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 на основной плате не установлен


Исходник один на все варианты - компилируется в нужную версию путём комментирования (раскомментирования) нужных дэфайнов:

Код: Выделить всё
#define Cathode //для индикатора с ОК
//#define Anode //для индикатора с ОА

#define heat    //точка отображается если T < Tуст.
//#define cold  //точка отображается если T > Tуст.


Биты конфигурации (FUSES), для тех кто шьёт из PonyProg:
fuses.gif
fuses.gif (5.74 КБ) Просмотров: 133664


В шестнадцатиричном виде: LO: 0x64 HI: 0xDF

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

Полезные ссылки в теме.
- Супервизор.
- Корректировка показаний датчика
Вложения
pcb.rar
Печатная плата в формате Sprint-Layout 5.0
(8.8 КБ) Скачиваний: 9171
termostat_led_oa_heat.rar
Прошивка ∆T=0,1°C для нагревателя с ОА
(2.14 КБ) Скачиваний: 8546
termostat_led_oc_heat.rar
Прошивка ∆T=0,1°C для нагревателя с ОК
(2.15 КБ) Скачиваний: 7345
termostat_led_oa_cold.rar
Прошивка ∆T=0,1°C для холодильника с ОА
(2.14 КБ) Скачиваний: 5676
termostat_led_oc_cold.rar
Прошивка ∆T=0,1°C для холодильника с ОК
(2.15 КБ) Скачиваний: 5308
firmware v3.2.rar
Исходник проекта
(8.54 КБ) Скачиваний: 9562
firmware v3.2.cv2.rar
Исходник для новых (начиная с CVAVR v2.0.0) версий CodevisionAVR
(8.73 КБ) Скачиваний: 1159
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение Zond » 02 фев 2009 09:32

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

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

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

А работает проект в реальных условиях всмысе гдето воплошенный в конкретное устройство?
Zond
Пробегал мимо
 
Сообщения: 1
Зарегистрирован: 02 фев 2009 09:25

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

Сообщение hardlock » 02 фев 2009 10:52

Zond писал(а):А работает проект в реальных условиях всмысе гдето воплошенный в конкретное устройство?

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

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

Попробуйте оторвать 11-й вывод от печатки и прям на него подключить резистор и DS18B20.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение dovjik1 » 03 фев 2009 22:28

Не стопудово-работает.Сам уже сделал два штуки.Все детали СМД и работает.У меня другая проблема как вместо Attiny поставить AT90s2313.Та прошивка что для Attiny не подходит.
dovjik1
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 28 янв 2009 00:20

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

Сообщение hardlock » 04 фев 2009 10:27

dovjik1 писал(а):как вместо Attiny поставить AT90s2313.Та прошивка что для Attiny не подходит.

придумайте куда поставить кнопки (на линии индикатора не вышать), тогда освободятся выводы под кварц, тогда модно и ставить 90S2313...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение dovjik1 » 04 фев 2009 13:47

Может немного затупил.Вы хотите сказать что ат90s2313 с прошивкой attiny2313 подойдет для термометра(первого проекта)?Я собственно ипользую термостат как термометр(кнопки не выводил),и честно не помню какую прошивку залил.А может Вы правы в том что для термостата там где выводы под кварц используются кнопки.И во время конвертации программа видит эту ошибку.А если сконвертировать для термометра ,получится?
dovjik1
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 28 янв 2009 00:20

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

Сообщение hardlock » 04 фев 2009 13:51

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

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

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

Повторюсь ещё раз - проверить прошивку на 90s2313 нет возможности по причине отсутствия такоывх в продаже.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение dovjik1 » 04 фев 2009 14:00

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

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

Пишу путанно потому-что не профи в микроконтроллерах.По максимуму хотелось бы At90s2313 для термостата,но сейчас понял что не подойдет.Если бы я термостат использовал как термостат(с кнопками),то увидел бы что кнопки занимают место кварца.Значит ат90с2313 сюда не подходит.А для термометра нужно конвертировать прошивку?
dovjik1
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 28 янв 2009 00:20

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

Сообщение hardlock » 04 фев 2009 14:03

dovjik1 писал(а):А для термометра нужно конвертировать прошивку?


Не знаю. А вы попробуйте прошить, поставить кварц 8МГц, и сказать что получилось. У меня нет 90s2313 поэтому попробоватья не могу!!!
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение dovjik1 » 04 фев 2009 14:08

Спасибо,буду пробывать.
dovjik1
Пробегал мимо
 
Сообщения: 18
Зарегистрирован: 28 янв 2009 00:20

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

Сообщение sergey » 05 фев 2009 20:34

Здравствуйте, повторил конструкцию термостата 0,1 С.сделал несколько экземпляров под разные задачи.Все работает, очень нужна все же старая версия прошивки ОА. Если можно повторите или вышлите на электронку. С уважением.
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 05 фев 2009 23:24

А что в старой прошивке есть такого, что нет в новой? Кроме убранных глюков?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 08:46

За 2 месяца работы нескольких образцов глюков не замечено, просто старая прошивка у меня более удобно листает температуру при установках параметров. Надеюсь на понимание и помощь в решении проблемы.
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 06 фев 2009 09:59

В чём выражается "более удобное листание"? В скорости? Или ещё в чём-то?
Опишите по подродней, а я просто в этой версию доделаю, т.к. старую совсем списал и удалил.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 10:49

При однократном нажатии изменяются доли градуса поединично, при удержании кнопки доли градусов бегут быстро а сами градусы изменяются поединично посекундно, в новой версии этой логики нет , сделано по другому и как то неудобно листать десятые доли и градусы получается дольше .
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 06 фев 2009 10:50

Понял - исправлю. Поменял скорость листания, т.к. показалось быстровато...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 11:10

Спасибо, буду ждать обновленный вариант, возможно если дополнить эту версию наличием индикации нахождения температуры в зоне гистерезиса будет еще более информативный с визуальной точки зрения проект. С уважением.
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 06 фев 2009 11:12

Подскажите, как будет удобней индицировать нахождение в хоне гестерезиса, чтобы было наглядней?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 11:15

Логическую единицу на отдельную лапку микроконтроллера , ну а дальше кто как сможет, простор для фантазии элементарный способ например светодиод..
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 06 фев 2009 11:17

Вот тока нету отдельных лапок.... Всё занято. Можно на индикатор, только как отображать?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 11:27

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

Добавлено спустя 3 минуты 39 секунд:
Я в вашей схеме установил трехразрядный индикатор а информацию о режиме dT и режиме включения нагрузки вывел отдельныма светодиодами .
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 06 фев 2009 11:31

sergey писал(а):задействовать точку после доли градуса

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

Т.е. туда то можно выводить, он загораться будет именно на индикаторе, ну и если повесить параллельно светодиод, то и он....
только температура в виде
Код: Выделить всё
.21.4.
это уж слишком - много точек.

Добавлено спустя 1 минуту 36 секунд:
sergey писал(а):Я в вашей схеме установил трехразрядный индикатор

Вот с этого и надо было начинать!
тогда можно выводить в любой первый сегмент.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 06 фев 2009 11:42

На любой свободный сигмент, а дальше можно додумать от вида корпуса размеров вида лицевой панели куда вывести эту индикацию, пусть думают кому нужно найдут варианты...
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение diawest1 » 08 фев 2009 07:58

Полезная и простая конструкция. :good: Для использования в инкубаторе, изложу свои предложения. :idea: Поскольку имеем дело с разрешением в 0,1tC, нужно предусмотреть калибровку шкалы. Т.к. первый же попавщийся "даллас", будет безбожно врать. :jokingly: Ограничить диапазон термостабилизации для :wall: , в пределах 35,0tC...39.0tC. И последнее. Вывод 1=Т>Туст(PD7) сделать "аварийным" 1=Т>38.5tC.
diawest1
Пробегал мимо
 
Сообщения: 2
Зарегистрирован: 08 фев 2009 07:12
Откуда: Украина

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

Сообщение hardlock » 08 фев 2009 12:38

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

А вот ограничить и "аварийный выход" - это уже для конкретной задачи - инкубатор. Тоже попробую доделать, а пока только пишу список изменений, которые хоте ли бы внести, т.к. совсем нет времени.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3294
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 2