Wiki

Version 5 (Dmitry Belimov, 10/04/2011 06:22 am)

1 1 Dmitry Belimov
== Контроллер подогрева. ==
2 1 Dmitry Belimov
3 1 Dmitry Belimov
'''Введение'''
4 1 Dmitry Belimov
5 1 Dmitry Belimov
Все началось с картошки, точнее с того, что она опять замерзла. Мой гараж находится последним в ряду и получается немного на бугре, хотя он и имеет три уровня, но в середине зимы мороз все же добирается до ценного злака и примораживает его. Такое случается обычно в феврале. После нескольких лет облома, чтобы этого больше не повторялось был разработан небольшой и несложный контроллер. При разработке было желание попробовать динамическую индикацию на 7-сегментных индикаторах, устройство должно быть простым и повторяемым, на распространенной элементной базе. И обязательно быть винтажным и теплым ламповым, т.е. опенсорсным и опенхардварным. 
6 1 Dmitry Belimov
7 1 Dmitry Belimov
'''Описание работы'''
8 1 Dmitry Belimov
9 1 Dmitry Belimov
Главным действующим лицом является недорогой микроконтроллер ATMega48 от компании Atmel. К разъему XS1 подключается датчик температуры - DS18S20. Считывая с него показания контроллер их выводит в динамическом режиме на семисегментные индикаторы D9-D12. Ключи VT1-VT4 включают нужный индикатор, а микросхема DD2 декодер преобразовывает код от микроконтроллера в код индикаторов. Кнопки S1-S3 служат для оперативного управления работой контроллера. Сопротивления R3-R5 и диоды D3-D8 обеспечивают защиту выводов микроконтроллеров от статического электричества. Силовой транзистор VT5 управляемый с микроконтроллера включает/выключает реле контролирующее эл.питание нагревателя. Светодиод D13 сигнализирует о включенном нагревателе.
10 1 Dmitry Belimov
11 1 Dmitry Belimov
|| Схема принципиальная контроллер || Схема принципиальная питание ||
12 5 Dmitry Belimov
||  !gheater_sch_main_small.png! [[gheater_sch_main.png]] || [[attachment:gheater_sch_REV_A_pwr.png|{{attachment:gheater_sch_REV_A_pwr_small.png}}]] ||
13 1 Dmitry Belimov
14 1 Dmitry Belimov
Настольной системой вот уже много лет является Linux Debian и все действия производились под ним. Для рисования схемы и платы использовался открытый CAD gEDA. Часть символов и корпусов взята с http://www.gedasymbols.org. Как позже будет описано, зря я понадеялся на коллективное бессознательное... Это был мой первый опыт в использовании пакета gEDA, до этого пользовался PCAD4.5, OrCAD, Eagle, KiCAD. Все оказалось не так страшно, работать, рисовать схемы и платы вполне можно. После разводки платы, были сгенерированны итоговые картинки, как выглядит плата с одной и другой стороны. Плата получилась небольшая 80х60мм.
15 1 Dmitry Belimov
16 1 Dmitry Belimov
Файлы gEDA контроллера: [[attachment:gheater_Rev_A_gEDA.tar.gz]]
17 1 Dmitry Belimov
18 1 Dmitry Belimov
'''Итоговый вид платы вид сверху'''
19 1 Dmitry Belimov
20 1 Dmitry Belimov
{{attachment:gheater_pcbrndr__Rev_A_top_m.png}}
21 1 Dmitry Belimov
22 1 Dmitry Belimov
'''Итоговый вид платы вид снизу'''
23 1 Dmitry Belimov
24 1 Dmitry Belimov
{{attachment:gheater_pcbrndr__Rev_A_bot_m.png}}
25 1 Dmitry Belimov
26 1 Dmitry Belimov
После разводки платы и проверки. Были сгенерены файлы Gerber для производства и отправлены знакомому китайцу с вопросом о цене.
27 1 Dmitry Belimov
28 1 Dmitry Belimov
[[attachment:gheater_Rev_A_fab.zip]]
29 1 Dmitry Belimov
30 1 Dmitry Belimov
Ответ не порадовал, чтобы снизить цену за плату пришлось заказать изготовление 30шт. Полторы недели длилось производство и две недели они ехали до меня.
31 1 Dmitry Belimov
32 1 Dmitry Belimov
'''Печатные платы с завода вид сверху'''
33 1 Dmitry Belimov
34 1 Dmitry Belimov
[[attachment:gheater_Rev_A_top.jpg|{{attachment:gheater_Rev_A_top_medium.jpg}}]]
35 1 Dmitry Belimov
36 1 Dmitry Belimov
'''Печатные платы с завода вид снизу'''
37 1 Dmitry Belimov
38 1 Dmitry Belimov
[[attachment:gheater_Rev_A_bot.jpg|{{attachment:gheater_Rev_A_bot_medium.jpg}}]]
39 1 Dmitry Belimov
40 1 Dmitry Belimov
После начала монтажа выяснились небольшие технические проблемы. В нескольких корпусах которые были взяты с http://www.gedasymbols.org маленькие отверстия, у корпуса для кварца расстояние между ногами меньше чем нужно. Доверяй и проверяй, этот принцип нужно соблюдать с чужими библиотеками. Все решилось небольшим надфилем и аккуратной запайкой. Так же нашел одну ошибку, R18 должен быть подключен к D11, а не к D10. Режем, кидаем перемычку и все показывает как надо. Ввиду невозможности в нашей глуши достать аутентичные конденсаторы C3 и C4 пришлось ставить их бескорпусные аналоги, что несколько выбивается из винтажности. Фотографий платы в сборе к сожалению нет, пока собирал и отлаживал было не до того, как стало до того, плата уже стояла на своем месте прикрученная.
41 1 Dmitry Belimov
42 1 Dmitry Belimov
Однако мало собрать и запустить плату, ее еще надо установить в соответствующий корпус с нужными органами управления. Т.к. контроллер будет стоять в подвале, то условия эксплуатации выглядят следующим образом:
43 1 Dmitry Belimov
 * температура окружающей среды -15...+10
44 1 Dmitry Belimov
 * влажность воздуха до 100%
45 1 Dmitry Belimov
46 1 Dmitry Belimov
Есть большая вероятность попадания влаги и образования росы в любом месте устройства. Для защиты делаем корпус максимально герметичным, все щели заливаются пластиком из клеевого пистолета, или заливаются лаком. В нижней части коробки возможно появление воды, оставляем ее свободной, все находится чуть выше. Все соединения пропаиваются и закрываются термоусадочными трубками. Для оперативного управления ставятся герметичные кнопки.
47 1 Dmitry Belimov
48 1 Dmitry Belimov
Список используемых радиодеталей:
49 1 Dmitry Belimov
50 1 Dmitry Belimov
|| Сопротивление || R1, R23 || 470 0.125Вт. || 2 || ||
51 1 Dmitry Belimov
|| Сопротивление || R2, R20 || 10К 0.125Вт. || 2 || || 
52 1 Dmitry Belimov
|| Сопротивление || R3, R4, R5 || 51 0.125Вт. || 3 || ||
53 1 Dmitry Belimov
|| Сопротивление || R6 || 4.7к 0.125Вт. || 1 || ||
54 1 Dmitry Belimov
|| Сопротивление || R7, R8, R9, R10, R19 || 1К 0.125Вт. || 5 || ||
55 1 Dmitry Belimov
|| Сопротивление || R11, R12, R13, R14, R15, R16, R17, R18 || 220 0.125Вт. || 8 || ||
56 1 Dmitry Belimov
|| Сопротивление || R21 || 1k 0.250 Вт. || 1 || ||
57 1 Dmitry Belimov
|| Сопротивление || R22 || 220 5Вт. || 1 || не ставил ||
58 1 Dmitry Belimov
|| Конденсатор || C1, C2, C5 || 47нФ || 3 || ||
59 1 Dmitry Belimov
|| Конденсатор || C3, C4 || 12пФ || 2 || ||
60 1 Dmitry Belimov
|| Конденсатор || C6 || 220нФ || 1 || ||
61 1 Dmitry Belimov
|| Конденсатор || C7 || 0.47мкФ 630В || 1 || не ставил ||
62 1 Dmitry Belimov
|| Конденсатор || C8 || 220мкФ 25В || 1 || ||
63 1 Dmitry Belimov
|| Конденсатор || C9, C10 || 33нФ || 2 || ||
64 1 Dmitry Belimov
|| Конденсатор || C11 || 100мкФ 12В || 1 || ||
65 1 Dmitry Belimov
|| Диод || D1, D3, D4, D5, D6, D7, D8 || КД521 || 7 || ||
66 1 Dmitry Belimov
|| Диод || D2, D13, D16 || -- || 3 || мелкие, расстояние между ножками 3мм, взял из дохлого свича ||
67 1 Dmitry Belimov
|| Диод || D9, D10, D11, D12 || АЛС324Б1 || 4 || ||
68 1 Dmitry Belimov
|| Диод || D14 || 1N4001 || 1 || ||
69 1 Dmitry Belimov
|| Диод || D15 || DB107S || 1 || ||
70 1 Dmitry Belimov
|| Транзистор  || VT1, VT2, VT3, VT4 || КТ361 || 4 || ||
71 1 Dmitry Belimov
|| Транзистор  || VT5 || КТ819 || 1 || ||
72 1 Dmitry Belimov
|| Микросхема  || DA1 || 7805 || 1 || ||
73 1 Dmitry Belimov
|| Микросхема  || DD1 || ATMega48 || 1 || ||
74 1 Dmitry Belimov
|| Микросхема  || DD2 || КР533ИД18 || 1 || ||
75 1 Dmitry Belimov
|| Кварц || XTL1 || 16МГц || 1 || ||
76 1 Dmitry Belimov
|| Реле || RE1 || DC 12V, AC 220V 10A || 1 || ||
77 1 Dmitry Belimov
|| Трансформатор || T1 || 220V x 9V 0.25A || 1 || ||
78 1 Dmitry Belimov
|| Кнопка || S1, S2, S3 || герметичная || 4 || подарили, марка-модель не известна ||
79 1 Dmitry Belimov
|| Кнопка || S4 || -- || 1 || мелкая кнопка поверхностный монтаж, модель не известна ||
80 1 Dmitry Belimov
|| Кнопка || S5 || -- || 1 || решил не ставить, обойтись отдельным 4-х полюсным автоматом ||
81 1 Dmitry Belimov
|| Предохранитель || F1 || 5А || 1 || ||
82 1 Dmitry Belimov
|| Предохранитель || F2 || 0.5А || 1 || ||
83 1 Dmitry Belimov
|| Разъем || XS1 || -- || 1 || для пробы поставил стерео джек гнездо на корпус ||
84 1 Dmitry Belimov
|| Разъем || XS2 || 5x2 2.54 || 1 || ||
85 1 Dmitry Belimov
|| Разъем || XS3 || -- || 1 || для пробы поставил микрофонный 3-х штыревой ||
86 1 Dmitry Belimov
|| Разъем || XS4 || розетка влагозащищенная || 1 || ||
87 1 Dmitry Belimov
88 1 Dmitry Belimov
89 1 Dmitry Belimov
'''Общий вид в сборе'''
90 1 Dmitry Belimov
91 1 Dmitry Belimov
[[attachment:gheater_photo_01.jpg|{{attachment:gheater_photo_01m.jpg}}]]
92 1 Dmitry Belimov
93 1 Dmitry Belimov
'''Вид справа'''
94 1 Dmitry Belimov
95 1 Dmitry Belimov
Хорошо видна влагозащищенная розетка, все отверстия заклеены клеевым пистолетом.
96 1 Dmitry Belimov
97 1 Dmitry Belimov
[[attachment:gheater_photo_02.jpg|{{attachment:gheater_photo_02m.jpg}}]]
98 1 Dmitry Belimov
99 1 Dmitry Belimov
'''Вид слева'''
100 1 Dmitry Belimov
101 1 Dmitry Belimov
Сверху вниз: разъем термодатчика, предохранитель силовой части, предохранитель контроллерной части, входящий разъем питания 220В.
102 1 Dmitry Belimov
103 1 Dmitry Belimov
[[attachment:gheater_photo_03.jpg|{{attachment:gheater_photo_03m.jpg}}]]
104 1 Dmitry Belimov
105 1 Dmitry Belimov
'''Вид сверху'''
106 1 Dmitry Belimov
107 1 Dmitry Belimov
Видно 'уши' за которые контроллер будет вешаться на стену.
108 1 Dmitry Belimov
109 1 Dmitry Belimov
[[attachment:gheater_photo_04.jpg|{{attachment:gheater_photo_04m.jpg}}]]
110 1 Dmitry Belimov
111 1 Dmitry Belimov
'''Общий вид внутри'''
112 1 Dmitry Belimov
113 1 Dmitry Belimov
[[attachment:gheater_photo_05.jpg|{{attachment:gheater_photo_05m.jpg}}]]
114 1 Dmitry Belimov
115 1 Dmitry Belimov
'''Контроллер'''
116 1 Dmitry Belimov
117 1 Dmitry Belimov
[[attachment:gheater_photo_06.jpg|{{attachment:gheater_photo_06m.jpg}}]]
118 1 Dmitry Belimov
119 1 Dmitry Belimov
'''Силовая часть'''
120 1 Dmitry Belimov
121 1 Dmitry Belimov
[[attachment:gheater_photo_07.jpg|{{attachment:gheater_photo_07m.jpg}}]]
122 1 Dmitry Belimov
123 1 Dmitry Belimov
'''Возможные модернизации'''
124 1 Dmitry Belimov
125 1 Dmitry Belimov
 * Микросхема стабилизатор DA1 7805 может быть заменена на DC/DC преобразователь PSR-7805LF.
126 1 Dmitry Belimov
 * Декодер DD2 можно исключить, соединив проводками 7D1-R11, 7D2-R12, 7D3-R13, 7D4-R14, #LT-R15, #RBO-R16, #RBI-R17. Немного переделать программу, добавив таблицу знаков. При такой модификации на индикаторе можно получить любой знак который можно на нем построить, а не только тот который зашит в декодере. С декодером знак '-' приходится отображать как 'c', бо в нем нет знака минуса. Этот мод позволяет решить эту проблему и обойти другую - когда купить декодер негде.
127 1 Dmitry Belimov
 * Замена силового транзистора VT5 на любой биполярный n-p-n транзистор с запасом выдерживающий ток протекающий через реле. В моем случае ток реле около 80мА.
128 1 Dmitry Belimov
 * Замена силового реле на любое доступное. Реле работает от выпрямленного напряжения выдаваемого трансформатором. У меня было реле на 12В, подобрал и трансформатор на 12В. Если есть реле на меньшее напряжение 9...7В можно подобрать близкий трансформатор и запитать от него. При работе от большего напряжения придется увеличить радиатор линейного стабилизатора DA1.
129 1 Dmitry Belimov
 * Кнопка S4 сброс МК практически не нужны, можно не ставить, как и диод D1.
130 1 Dmitry Belimov
 * Если нагрузка чисто резистивная, можно не ставить C7, R22. Если их ставить, то они должны стоять как можно ближе к нагрузке, может даже в самой розетке.
131 1 Dmitry Belimov
132 1 Dmitry Belimov
''' Программная часть'''
133 1 Dmitry Belimov
134 1 Dmitry Belimov
Для индикации работы устройство имеет три дополнительных светодиода, верхний показывает наличие питания +5В, средний монитор работы МК, нижний показывает что нагреватель включен. Т.к. контроллер работает в достаточно сложных условиях, в нем через бит конфигурации включен сторожевой таймер и он работает постоянно. Небольшой планировщик задач запускает задачи по расписанию. Одна из этих задач отвечает за сброс сторожевого таймера. В случае подвисания МК или возникновения ситуации когда какая-либо функция слишком долго (более 2 сек.) монопольно использует МК сторожевой таймер сбросит его. Светодиод монитор работы МК при старте показывает этапы начала работы, при выходе на рабочий режим моргает с частотой 1Гц. Показывая что с МК все в порядке и устройство работает штатно. Из-за высокой вероятности отключения эл.питания в любой момент времени, все данные хранящиеся в ЕЕПРОМ перед загрузкой проверяются на соответствие граничным условиям. В случае когда данные не соответствуют, они считаются испорченными и для них используются значения по умолчанию. Т.к. контроллер рассчитан на использование в подвальном помещении, то граничный диапазон сильно заужен и может быть пересмотрен под конкретные требования.
135 1 Dmitry Belimov
136 1 Dmitry Belimov
В контроллере задаются следующие величины:
137 1 Dmitry Belimov
 * нижний порог температуры - если температура падает ниже этого порога, происходит включение нагревателя
138 1 Dmitry Belimov
 * верхний порог температуры -  если температура поднимается выше этого порога, происходит выключение нагревателя
139 1 Dmitry Belimov
 * защитное время - время в течении которого переключение в другое состояние запрещено. Служит для продления срока службы реле и устранения аварийной ситуации, когда из-за каких-либо проблем МК начинает считать, что надо включать-выключать нагреватель с большой частотой. После срабатывания реле, запускается таймер защитного времени и пока оно не кончилось переключения в другое состояние не произойдет.
140 1 Dmitry Belimov
141 1 Dmitry Belimov
Программа микроконтроллера с исходными текстами: [[attachment:gheater_2011_09_22.tar.gz]]
142 1 Dmitry Belimov
143 1 Dmitry Belimov
Конфигурационные байты контроллера программируем командой: {{{avrdude -c stk200 -p m48 -P /dev/parport0 -U lfuse:w:0xE7:m}}}
144 1 Dmitry Belimov
145 1 Dmitry Belimov
В данный момент в меню пока нет пунктов:
146 1 Dmitry Belimov
 * 5 - показать количество включений
147 1 Dmitry Belimov
 * 6 - сброс счетчика включений
148 1 Dmitry Belimov
149 1 Dmitry Belimov
Т.к. надо было быстрее заканчивать с корпусом, герметизировать его. Бумагу для меню сделал так сказать с небольшим запасом, бо ставить новую туда нет возможности.
150 1 Dmitry Belimov
151 1 Dmitry Belimov
'''P.S.'''
152 1 Dmitry Belimov
153 1 Dmitry Belimov
Заранее отвечу на некоторые вопросы:
154 1 Dmitry Belimov
155 1 Dmitry Belimov
Да, я знаю что подобное устройство можно купить в магазине.
156 1 Dmitry Belimov
157 1 Dmitry Belimov
Да, я знаю что плату можно было сделать самому из клея, фольги и фанеры.
158 1 Dmitry Belimov
159 1 Dmitry Belimov
Да, я знаю что можно было использовать плату от Ардуино клонов.
160 1 Dmitry Belimov
161 1 Dmitry Belimov
Да, я знаю что программу можно было написать на ассемблере и тогда туда бы влез тетрис.