« Previous - Version 22/26 (diff) - Next » - Current version
Dmitry Belimov, 10/04/2011 06:50 am


Контроллер подогрева.

Введение

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

Описание работы

Главным действующим лицом является недорогой микроконтроллер ATMega48 от компании Atmel. К разъему XS1 подключается датчик температуры - DS18S20. Считывая с него показания контроллер их выводит в динамическом режиме на семисегментные индикаторы D9-D12. Ключи VT1-VT4 включают нужный индикатор, а микросхема DD2 декодер преобразовывает код от микроконтроллера в код индикаторов. Кнопки S1-S3 служат для оперативного управления работой контроллера. Сопротивления R3-R5 и диоды D3-D8 обеспечивают защиту выводов микроконтроллеров от статического электричества. Силовой транзистор VT5 управляемый с микроконтроллера включает/выключает реле контролирующее эл.питание нагревателя. Светодиод D13 сигнализирует о включенном нагревателе.

Схема принципиальная контроллер Схема принципиальная силовая часть
http://www.oshec.org/attachments/31/gheater_sch_main.png
http://www.oshec.org/attachments/32/gheater_sch_pwr.png

Настольной системой вот уже много лет является Linux Debian и все действия производились под ним. Для рисования схемы и платы использовался открытый CAD gEDA. Часть символов и корпусов взята с http://www.gedasymbols.org. Как позже будет описано, зря я понадеялся на коллективное бессознательное... Это был мой первый опыт в использовании пакета gEDA, до этого пользовался PCAD4.5, OrCAD, Eagle, KiCAD. Все оказалось не так страшно, работать, рисовать схемы и платы вполне можно. После разводки платы, были сгенерированны итоговые картинки, как выглядит плата с одной и другой стороны. Плата получилась небольшая 80х60мм.

Файлы gEDA контроллера: http://www.oshec.org/attachments/35/gheater_Rev_A_gEDA.tar.gz

Итоговый вид платы вид сверху

Рендер платы верх, gEDA.

Итоговый вид платы вид снизу

Рендер платы низ, gEDA.

После разводки платы и проверки. Были сгенерены файлы Gerber для производства и отправлены знакомому китайцу с вопросом о цене.

http://www.oshec.org/attachments/38/gheater.zip

Ответ не порадовал, чтобы снизить цену за плату пришлось заказать изготовление 30шт. Полторы недели длилось производство и две недели они ехали до меня.

Печатные платы с завода вид сверху

Плата с завода, верх

Печатные платы с завода вид снизу

Плата с завода, низ

После начала монтажа выяснились небольшие технические проблемы. В нескольких корпусах которые были взяты с http://www.gedasymbols.org маленькие отверстия, у корпуса для кварца расстояние между ногами меньше чем нужно. Доверяй и проверяй, этот принцип нужно соблюдать с чужими библиотеками. Все решилось небольшим надфилем и аккуратной запайкой. Так же нашел одну ошибку, R18 должен быть подключен к D11, а не к D10. Режем, кидаем перемычку и все показывает как надо. Ввиду невозможности в нашей глуши достать аутентичные конденсаторы C3 и C4 пришлось ставить их бескорпусные аналоги, что несколько выбивается из винтажности. Фотографий платы в сборе к сожалению нет, пока собирал и отлаживал было не до того, как стало до того, плата уже стояла на своем месте прикрученная.

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

  • температура окружающей среды -15...+10
  • влажность воздуха до 100%

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

Список используемых радиодеталей:

Сопротивление R1, R23 470 0.125Вт. 2
Сопротивление R2, R20 10К 0.125Вт. 2
Сопротивление R3, R4, R5 51 0.125Вт. 3
Сопротивление R6 4.7к 0.125Вт. 1
Сопротивление R7, R8, R9, R10, R19 1К 0.125Вт. 5
Сопротивление R11, R12, R13, R14, R15, R16, R17, R18 220 0.125Вт. 8
Сопротивление R21 1k 0.250 Вт. 1
Сопротивление R22 220 5Вт. 1 не ставил
Конденсатор C1, C2, C5 47нФ 3
Конденсатор C3, C4 12пФ 2
Конденсатор C6 220нФ 1
Конденсатор C7 0.47мкФ 630В 1 не ставил
Конденсатор C8 220мкФ 25В 1
Конденсатор C9, C10 33нФ 2
Конденсатор C11 100мкФ 12В 1
Диод D1, D3, D4, D5, D6, D7, D8 КД521 7
Диод D2, D13, D16 -- 3 мелкие, расстояние между ножками 3мм, взял из дохлого свича
Диод D9, D10, D11, D12 АЛС324Б1 4
Диод D14 1N4001 1
Диод D15 DB107S 1
Транзистор VT1, VT2, VT3, VT4 КТ361 4
Транзистор VT5 КТ819 1
Микросхема DA1 7805 1
Микросхема DD1 ATMega48 1
Микросхема DD2 КР533ИД18 1
Кварц XTL1 16МГц 1
Реле RE1 DC 12V, AC 220V 10A 1
Трансформатор T1 220V x 9V 0.25A 1
Кнопка S1, S2, S3 герметичная 3 подарили, марка-модель не известна
Кнопка S4 -- 1 мелкая кнопка поверхностный монтаж, модель не известна
Кнопка S5 -- 1 решил не ставить, обойтись отдельным 4-х полюсным автоматом
Предохранитель F1 1
Предохранитель F2 0.5А 1
Разъем XS1 -- 1 для пробы поставил стерео джек гнездо на корпус
Разъем XS2 5x2 2.54 1
Разъем XS3 -- 1 для пробы поставил микрофонный 3-х штыревой
Разъем XS4 розетка влагозащищенная 1

Общий вид в сборе

Общий вид в сборе

Вид справа

Хорошо видна влагозащищенная розетка, все отверстия заклеены клеевым пистолетом.

Вид справа

Вид слева

Сверху вниз: разъем термодатчика, предохранитель силовой части, предохранитель контроллерной части, входящий разъем питания 220В.

Вид слева

Вид сверху

Видно 'уши' за которые контроллер будет вешаться на стену.

Вид сверху

Общий вид внутри

Общий вид внутри

Контроллер

Контроллер

Силовая часть

Силовая часть.

Возможные модернизации

  • Микросхема стабилизатор DA1 7805 может быть заменена на DC/DC преобразователь PSR-7805LF.
  • Декодер DD2 можно исключить, соединив проводками 7D1-R11, 7D2-R12, 7D3-R13, 7D4-R14, #LT-R15, #RBO-R16, #RBI-R17. Немного переделать программу, добавив таблицу знаков. При такой модификации на индикаторе можно получить любой знак который можно на нем построить, а не только тот который зашит в декодере. С декодером знак '-' приходится отображать как 'c', бо в нем нет знака минуса. Этот мод позволяет решить эту проблему и обойти другую - когда купить декодер негде.
  • Замена силового транзистора VT5 на любой биполярный n-p-n транзистор с запасом выдерживающий ток протекающий через реле. В моем случае ток реле около 80мА.
  • Замена силового реле на любое доступное. Реле работает от выпрямленного напряжения выдаваемого трансформатором. У меня было реле на 12В, подобрал и трансформатор на 12В. Если есть реле на меньшее напряжение 9...7В можно подобрать близкий трансформатор и запитать от него. При работе от большего напряжения придется увеличить радиатор линейного стабилизатора DA1.
  • Кнопка S4 сброс МК практически не нужны, можно не ставить, как и диод D1.
  • Если нагрузка чисто резистивная, можно не ставить C7, R22. Если их ставить, то они должны стоять как можно ближе к нагрузке, может даже в самой розетке.

Программная часть

Для индикации работы устройство имеет три дополнительных светодиода, верхний показывает наличие питания +5В, средний монитор работы МК, нижний показывает что нагреватель включен. Т.к. контроллер работает в достаточно сложных условиях, в нем через бит конфигурации включен сторожевой таймер и он работает постоянно. Небольшой планировщик задач запускает задачи по расписанию. Одна из этих задач отвечает за сброс сторожевого таймера. В случае подвисания МК или возникновения ситуации когда какая-либо функция слишком долго (более 2 сек.) монопольно использует МК сторожевой таймер сбросит его. Светодиод монитор работы МК при старте показывает этапы начала работы, при выходе на рабочий режим моргает с частотой 1Гц. Показывая что с МК все в порядке и устройство работает штатно. Из-за высокой вероятности отключения эл.питания в любой момент времени, все данные хранящиеся в ЕЕПРОМ перед загрузкой проверяются на соответствие граничным условиям. В случае когда данные не соответствуют, они считаются испорченными и для них используются значения по умолчанию. Т.к. контроллер рассчитан на использование в подвальном помещении, то граничный диапазон сильно заужен и может быть пересмотрен под конкретные требования.

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

Программа микроконтроллера с исходными текстами: gheater_2011_09_22.tar.gz

Конфигурационные байты контроллера программируем командой:

avrdude -c stk200 -p m48 -P /dev/parport0 -U lfuse:w:0xE7:m

В данный момент в меню пока нет пунктов:
  • 5 - показать количество включений
  • 6 - сброс счетчика включений

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

P.S.

Заранее отвечу на некоторые вопросы:

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

Да, я знаю что плату можно было сделать самому из клея, фольги и фанеры.

Да, я знаю что можно было использовать плату от Ардуино клонов.

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

gheater_sch_main.png - Схема принципиальная контроллер (60.7 kB) Dmitry Belimov, 10/04/2011 06:19 am

gheater_sch_pwr.png - Схема принципиальная силовая часть (22.9 kB) Dmitry Belimov, 10/04/2011 06:19 am

gheater_sch_main_small.png (42.6 kB) Dmitry Belimov, 10/04/2011 06:20 am

gheater_sch_pwr_small.png (14.6 kB) Dmitry Belimov, 10/04/2011 06:20 am

gheater_Rev_A_gEDA.tar.gz - Файлы для gEDA (20.2 kB) Dmitry Belimov, 10/04/2011 06:27 am

gheater_pcbrndr_top_m.png - Рендер платы верх, gEDA. (28.2 kB) Dmitry Belimov, 10/04/2011 06:28 am

gheater_pcbrndr_bot_m.png - Рендер платы низ, gEDA. (31 kB) Dmitry Belimov, 10/04/2011 06:28 am

gheater.zip - Файлы Gerber и Excellon для завода. (23.9 kB) Dmitry Belimov, 10/04/2011 06:30 am

pcb_top_medium.jpg - Плата с завода, верх (37.9 kB) Dmitry Belimov, 10/04/2011 06:32 am

pcb_bot_medium.jpg - Плата с завода, низ (41 kB) Dmitry Belimov, 10/04/2011 06:32 am

photo-01m.jpg - Общий вид в сборе (23.2 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-02m.jpg - Вид справа (22.7 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-03m.jpg - Вид слева (32.5 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-04m.jpg - Вид сверху (27.7 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-05m.jpg - Общий вид внутри (60.6 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-06m.jpg - Контроллер (37.3 kB) Dmitry Belimov, 10/04/2011 06:42 am

photo-07m.jpg - Силовая часть. (30.7 kB) Dmitry Belimov, 10/04/2011 06:42 am

gheater_2011_09_22.tar.gz - Программа микроконтроллера с исходными текстами (21.3 kB) Dmitry Belimov, 10/04/2011 06:45 am

gheater_after_year.jpg (164.2 kB) Dmitry Belimov, 08/05/2012 09:14 am