Wiki

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