Главная arrow Проекты arrow По группам arrow Микроконтроллеры arrow Ну совсем маленький термостат  
14.10.2024 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Ну совсем маленький термостат Печать E-mail
Рейтинг: / 63
ХудшаяЛучшая 
Автор ARV   
28.01.2009 г.

Проект "Термостат - меньше не бывает" развился до очередной стадии миниатюрности. Почти не изменившись по физическим габаритам, он тем не менее стал еще проще по схемотехнике, а число функций стало даже больше!

Развитие проекта целиком и полностью следует поставить в заслугу пользователю Toledo, который сподвиг меня на разработку. Кроме этого, Toledo приложил максимум усилий по тестированию прошивки в реальном "железе" (не было у меня под руками нужного микроконтроллера), а так же снял видеоролик и фотографии. Он же разработал несложный вариант печатной платы. В общем, масса благодарностей ему!

 

Особенность устройства в том, что управление всеми режимами осуществляется одной-единственной кнопкой, причем, как показали наши с Toledo эксперименты, это весьма удобно. Учитывая неистребимое желание измерять температуру с точностью до десятых долей градуса, я реализовал и эту возможность, совместив диапазон термометра от -55.0°С до +125.0°С с трехразрядным семисегментным индикатором. Это вторая изюминка устройства: десятые доли индицируются только в диапазоне -9.9...+99.9°С, а другие температуры отображаются уже без десятых долей. Думаю, это оптимальное решение. Третья изюминка - уже не нова: это режим двухпорогового термостата (т.е. с гистерезисом) с противофазными выходами, что позволяет использовать устройство для поддержания температуры от -50°С до +99°С как путем управления нагревателем, так и охладителем (вентилятором).

Схема микро-термостата
Принципиальная схема термостата

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

Микроконтроллер DD1 типа Atiny26, датчик DA2 - DS18S20 (если есть DS1820 - подойдет и он), его можно и нужно вынести на проводках в нужное место подальше от нагревающихся компонентов, способных исказить показания. Питание 5В можно получить от любого источника - на схеме показан стабилизатор DA1 типа 7805 (или КРЕН05А). Индикатор - трехразрядный 7-сегментный «динамический» (с общими анодами или катодами - все равно). В моем случае это был «безымянный» индикатор «китайского» типа, его цоколевка определена экспериментально, поэтому номера выводов не указаны, а лишь обозначены сегменты. Кнопка SB1 - само собой любая. В прошивке реализована посегментная динамическая индикация, поэтому число токоограничительных резисторов сведено к трем, т.е. к минимуму, их сопротивление должно ограничивать ток через сегмент индикатора на уровне не более 30 мА.

Выходы out1 и out2 способны выдать (или принять) ток до 40 мА, поэтому оконечный каскад может быть любым - от маломощного пятивольтового реле до мощного транзисторного ключа. Эти выходы работают всегда в противофазе.

Программа написана на языке Си, ее текст доступен, компилируется при помощи WinAVR. При компиляции обязательно нужно включать максимальную оптимизацию по размеру кода, иначе в память микроконтроллера не поместится. Кстати, в текущей версии остается свободным около 12% памяти программ - есть шанс дополнить программу еще каким-либо полезным свойством. Кстати, очень скоро это будет сделано: в прошивку будет введен дополнительный режим контроля "предельных" уровней температуры (по просьбе одного из посетителей сайта).

Для тех, кто не готов разбираться с исходными текстами, имеются 2 варианта готовых прошивок - для индикаторов с общими анодами и катодами. Перед прошивкой (или после) необходимо установить фьюзы микроконтроллера CKSEL=0100, т.е. активировать встроенный RC-генератор 8 МГц, остальные фьюзы можно оставить в предустановленном на заводе-изготовителе состоянии. Кроме прошивок, доступен исходный текст программы.

Кроме прошивок доступен для скачивания вариант печатной платы в формате Sprint Layout 5 (для SMD компонентов и упомянутого «безымянного» индикатора, установки кнопки вне платы и питания сразу от 5В-источника). Фото собранного пользователем Toledo устройства (без стабилизатора DA1 - микросхема просто для масштаба) приведено на рисунках:

Image
Вид снизу

Image
Вид с лицевой стороны

А вот и видео, которое, наверное, многие уже успели посмотреть в анонсе проекта.

Вот как работает устройство. Имеется 5 функциональных режимов:

  1. Индикация температуры.
  2. Индикация верхнего порога термостата.
  3. Индикация нижнего порога термостата.
  4. Коррекция верхнего порога.
  5. Коррекция нижнего порога.

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

В первом режиме на индикаторе просто отображается текущая температура.

Во втором и третьем режимах отображаются соответствующие пороги термостата. Для порогов значения задаются только в целых градусах. Чтобы можно было отличить одно значение от другого, в первом разряде индикатора дополнительно подсвечиваются сегменты А или D соответственно для верхнего и нижнего порогов.

Переключение первой тройки режимов осуществляется кратковременным нажатием на кнопку, причем только режим №1 стабильный - остальные автоматически переходят к нему, если кнопка не нажимается более 2,5 секунд.

 

Из режимов индикации порогов можно перейти к режимам изменения соответствующего порога, если нажать и удерживать кнопку более 2,5 секунд. С этого момента начинается интересное (т.е. та самая изюминка управления одной кнопкой). Как только включается режим изменения значения порога, сразу начинает мерцать соответствующий сегмент А или D на первом индикаторе (признак коррекции порога), и одновременно, пока нажата кнопка, происходит быстрое изменение значения. Дождавшись, когда порог «проскочит» желаемое значение, нужно отпустить кнопку. После этого можно кратковременными нажатиями скорректировать значение в противоположном быстрому изменению направлении. Если при удержании кнопки происходит изменение не в том направлении - надо отпустить ее и снова нажать надолго.

Поясню на примере. Допустим, установлены пороги -5 и +15 градусов, нужно сделать их -2 и +2. Включаем режим коррекции верхнего порога, нажав и удерживая кнопку во втором режиме. Спустя 2,5 секунды значение начинает быстро меняться в сторону увеличения. Дождавшись, когда появится на индикаторе 15, отпускаем кнопку. Если не повезло и на индикаторе 16 - не беда: нажимаем кнопку кратко и значение уменьшается на 1, т.е. становится 15, что и требовалось. Не трогаем кнопку 2,5 секунды - мерцание сегмента А прекращается - снова включен режим 2. Нажимаем кнопку кратко, включая тем самым режим 3. Теперь нажимаем кнопку надолго и ждем, пока включится режим коррекции нижнего порога. Как только замерцал сегмент D, значение начинает быстро уменьшаться - ждем, пока оно не достигнет значения -2 и отпускаем кнопку. Проскочили? - не беда! Кратковременным нажатием кнопки возвращаем по одному проскоченному градусу... Далее - как и ранее: не трогаем кнопку 2,5 секунды, по и после выключения режима коррекции не трогаем кнопку - в момент автоматического включения режима 1 произойдет запоминание новых значений порогов.

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

Скачать файлы из фалохранилища.

Обсудить проект на форуме.

 


Добавить в любимые (14) | Просмотров: 141069

  Коментарии (13)
 1 Написал(а) deinewaffe, в 18:09 30.01.2009
хотелось бы знать точно какие индикаторы подойдут....
 2 Написал(а) ARV, в 13:38 31.01.2009
с корректировкой платы подойдут любые "динамические" индикаторы, т.е. те, у которых общие катоды (или аноды) разрядов выведены наружу, а одноименные сегменты соединены поразрядно внутри. в принципе, и обычные индикаторы подойдут - если не лень плату разводить.
 3 Написал(а) deinewaffe, в 14:00 31.01.2009
я имел виду без разводки платы.
 4 Написал(а) ARV, в 16:05 31.01.2009
обсуждение следует вести на форуме! :(  
Комментарий - это высказывание своего мнения по поводу... а вопрос - это обсуждение. Неужели непонятно?!
 5 Написал(а) Тоник, в 23:31 03.05.2009
а можешь подправить прошивку с общим анодом, чтобы можно было изменять не в 1 градус, а до десятых долей градуса. Для инкубатура в 1 градус - много. Если что высылай на Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script Заранее спасибо.
 6 Написал(а) Semen, в 14:24 08.09.2009
проект супер, часы добавте, всё в одном девайсе. Можно ? А?
 7 Написал(а) ARV, в 19:18 11.09.2009
на 3-разрядном индикаторе - часы?! :zzz нет никакого смысла... и памяти тоже нет :)
 8 Написал(а) Эдик, в 02:01 14.09.2009
Собрал на Tiny. DS18B20. Вместо 20 показывает -15.
 9 Написал(а) Николай, в 18:37 15.01.2010
поднять до 110 градусов. Хочу применить термометр на ЛУАЗЕ для индикации температуры двигателя, его рабочая температура 70-110 градусов. чтоб применить 2х цветные индикаторы и при достижении верхней температуры происходила смена цвета индикатора. мой адрес Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
 10 Написал(а) александр, в 16:57 27.02.2010
Вопрос автору:- не желаете собрать на заказ? 
Если надумаете вот почта Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
 11 Написал(а) ARV, в 07:00 15.03.2010
на форуме есть огромная тема про этот термостат, есть несколько модификаций - читайте форум, найдете много нового и полезного. все ответы на все вопросы - ТАМ!!!
 12 Написал(а) egor, в 09:29 24.05.2012
не могу найти тему на форуме!!!! 
ткните ссылкой плз-очень надо!!!
 13 Написал(а) franko, в 10:21 23.12.2013
Не подскажите.как при програмировании данного девайса выставлять фьюзы в Казаме. 
Или ,если можно скриншот высталения фьюзов в Казаме. 
с ув.

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

 
« Пред.   След. »
Полезные материалы по сходным темам
BannerFans.com