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


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

'''Введение'''

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

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

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

Схема принципиальная контроллер Схема принципиальная питание
[[attachment:gheater_sch_REV_A_pwr.png|{{attachment:gheater_sch_REV_A_pwr_small.png}}]]

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

Файлы gEDA контроллера: [[gheater_Rev_A_gEDA.tar.gz]]

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

{{attachment:gheater_pcbrndr__Rev_A_top_m.png}}

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

{{attachment:gheater_pcbrndr__Rev_A_bot_m.png}}

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

[[attachment:gheater_Rev_A_fab.zip]]

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

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

[[attachment:gheater_Rev_A_top.jpg|{{attachment:gheater_Rev_A_top_medium.jpg}}]]

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

[[attachment:gheater_Rev_A_bot.jpg|{{attachment:gheater_Rev_A_bot_medium.jpg}}]]

После начала монтажа выяснились небольшие технические проблемы. В нескольких корпусах которые были взяты с 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 герметичная 4 подарили, марка-модель не известна
Кнопка S4 -- 1 мелкая кнопка поверхностный монтаж, модель не известна
Кнопка S5 -- 1 решил не ставить, обойтись отдельным 4-х полюсным автоматом
Предохранитель F1 1
Предохранитель F2 0.5А 1
Разъем XS1 -- 1 для пробы поставил стерео джек гнездо на корпус
Разъем XS2 5x2 2.54 1
Разъем XS3 -- 1 для пробы поставил микрофонный 3-х штыревой
Разъем XS4 розетка влагозащищенная 1

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

[[attachment:gheater_photo_01.jpg|{{attachment:gheater_photo_01m.jpg}}]]

'''Вид справа'''

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

[[attachment:gheater_photo_02.jpg|{{attachment:gheater_photo_02m.jpg}}]]

'''Вид слева'''

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

[[attachment:gheater_photo_03.jpg|{{attachment:gheater_photo_03m.jpg}}]]

'''Вид сверху'''

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

[[attachment:gheater_photo_04.jpg|{{attachment:gheater_photo_04m.jpg}}]]

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

[[attachment:gheater_photo_05.jpg|{{attachment:gheater_photo_05m.jpg}}]]

'''Контроллер'''

[[attachment:gheater_photo_06.jpg|{{attachment:gheater_photo_06m.jpg}}]]

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

[[attachment:gheater_photo_07.jpg|{{attachment:gheater_photo_07m.jpg}}]]

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

  • Микросхема стабилизатор 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