Каталог статей


Выбранная схема!!!


5052
НУ СОВСЕМ МАЛЕНЬКИЙ ТЕРМОСТАТ

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

Развитие проекта целиком и полностью следует поставить в заслугу пользователю 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 - микросхема просто для масштаба) приведено на рисунках:


Вид снизу


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

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

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

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

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

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

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

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

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

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

АРХИВ: Скачать




Источник: http://arv.radioliga.com/content/view/152/44/
Категория: Термометры | Добавил: brys99 (10.11.2012)
Просмотров: 16709 | Комментарии: 1 | Теги: Термостат, маленький, Ну, совсем | Рейтинг: 5.0/1


Всего комментариев: 1
0
1 seminet   (06.03.2015 16:28) [Материал]
Кто будет собирать этот термостат на DS18B20, DS1820, DS18S20. Ищите форум об этом устройстве, пост #7914-чтобы не лопатить весь форум. Прошивка для индикатора с ОК и автоопределением датчика. Автору огромное спасибо, все работает на ура. smile  

termos_tn26_OK_New_All_DS18X20.hex- на данный момент рабочая полностью...

Пожалуйста остав

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

ьте свои комментарии !!!!

Имя *:
Email:
Код *:

Copyright Zloy Soft (Company) © 2008 - 2024