Устройство предназначено для поддержания и регулирования температуры паяльника HAKKO 907. Паяльник рассчитан на напряжение 24 В и мощность 50 Вт. Датчиком температуры в нем служит терморезистор сопротивлением приблизительно 100 Ом при температуре окружающей среды в 25 С. Этот паяльник был приобретен на eBay за 7$. Прибор снабжён четырьмя семисегментными светодиодными индикаторами для отображения температуры и режима работы. Этих самых режимов может быть два. Первый это режим поддержания температуры на заданном уровне. Второй это режим поддержания постоянной мощность. На индикаторе они отображаются соответственно как t и P. Установка температуры осуществляется с помощью энкодера. Схема устройства изображена на рисунке.
Основой схемы является контроллер ATmega8. К порту B подключена матрица из 4 семи сегментных индикаторов с общим анодом. Как видно из схемы индикация динамическая, анодные ключи подключены к порту C контроллера. Выводы порта B к матрице подключаются через токоограничивающие резисторы сопротивлением 100 Ом. Анодные ключи включены по схеме эмиттерного повторителя. Обусловлено это лишь тем что на этапе макетирования аноды от матрицы подключались на прямую к выводам контроллера. При этом сопротивление катодных токоограничивающих резисторов было завышено с целью снижения нагрузки на порты микросхемы в процессе отладки схемы. Соответственно на этапе изготовления финального варианта схемы, дабы не менять прошивку пришлось использовать именно повторители а не ключи.
Силовым элементом схемы является симистор. Его управление осуществляется транзистором VT5 посредством оптоэлектронной развязки выполненной на MOC3023. Резистор R20 ограничивает ток через светодиод оптрона, а R21 через управляющий электрод симистора.
К порту D подключен енкодер. Резисторы R1 и R2 подтягивают выводы контроллера к нулю. А конденсаторы выполняют роль простейшего подавителя дребезга. Так как без них картина на входе микросхемы достаточно печальная. Хотя конденсаторы такой емкости и значительно затягивают спад импульса, но при этом стабильность работы энкодера всё-таки повышается.
На транзисторе VT6 выполнен так называемый детектор нуля. Его задача синхронизировать время открывания симистора с переходом через ноль питающей синусоиды. Диод VD1 служит для развязки сигнала управления детектором нуля и фильтром блока питания.
На питании контроллера находится делитель напряжения состоящий из резисторов R14 и R15. Напряжение с его выхода подается на аналоговый компаратор. Его задача отслеживать снижение питание ниже заданного уровня, а проще говоря выключение устройства из сети. С помощью этого узла производится запись значения установки температуры и мощности в EEPROM.
Устройство питается от трансформаторного источника питания. Одна обмотка трансформатора напряжением 9В используется для питания электронной части устройства а вторая напряжением 24 В для питания нагревательного элемента. Стабилизатор выполнен на интегральной микросхеме LM7805 или отечественном аналоге КРЕН5.
Все транзисторы в схеме это отечественные КТ3102 или зарубежный аналог BC547. По большому счету важно только то, что они обратной проводимости, на самом деле можно использовать любые транзисторы малой мощности как КТ315 и др. У меня в устройстве стоят вообще некие транзисторы без маркировки демонтированные ранее то ли из монитора то ли из касcетного магнитофона. Тиристор также можно использовать любой подходящий по мощности. Только придётся пересчитать сопротивление токоограничивающего резистора управляющего электрода. Соответственно при замене оптопары на другую тоже необходимо пересчитать сопротивление резистора ограничивающего ток через светодиод.
Особое внимание нужно обратить на номиналы резисторов R14 R15 образующих делитель. Напряжение на его выходе должно составлять 1,33 В. Так как второй выход аналогового компаратора подключен к внутреннему источнику величиной 1,26 В. Если во включённом состоянии напряжение будет ниже чем опорное то контроллер будет постоянно пытаться записать значение установок в энергонезависимую память. Если же напряжение будет значительно выше то он может попросту не успеть сохранить значения в память до окончательного разряда емкостей фильтра питания.
Пара слов о прошивке. Программа использует встроенный ацп и измеряет напряжение на ADC0. Далее идет перевод напряжения в единицы температуры. Для этого используется простое линейное уравнение со смещением нуля и наклоном характеристики термодатчика. После этого текущее значение температуры сравнивается с установкой. Если температура ниже чем заданная -10С. То нагрев идет полной мощностью. Если мы приближаемся к установленной температуре на расстояние 10 градусов то нагрев идет половинной мощностью. Ну а если измеренная температура выше заданной то тиристор не включается.
Состояние энкодера опрашивается с частотой приблизительно 1кГц. Часто энкодеры вешают на прерывание, но в моем случае дешёвый китайский прибор дает дикий дребезг контактов потому выбран алгоритм простого отслеживания изменения состояния енкодера. В прерывании от аналогового компаратора проверяется состоянии установки температуры и мощности. Если во время работы устройства они не изменялись то запись в EEPROM не производится. Это сделано для экономии ресурса памяти контролера.
Если к устройству не подключен термодатчик то оно переходит в режим поддержания мощности. По сути обычный фазовый регулятор мощности. Енкодером устанавливается угол открывания тиристора. На индикаторе отображается мощность в процентах от 0 до 100, тиристор либо полностью выключен либо полностью открыт.
Текущий режим отображается в четвертом разряде. Буква t, означает режим термостабилизации, а p соответственно регулятор мощности. Если покрутить ручку энкодера, то на индикаторе будет отображается значение установки температуры. После отпускания ручки и по истечении приблизительно 3х секунд прибор перейдет в режим отображения текущей температуры нагревателя.
Дабы не наблюдать как танцуют цифры в последнем разряде во время поддержания температуры установлен гистерезис в 5 градусов. То есть при изменении температуры на 5 градусов в плюс или минус на экране будет отображаться температура установки. Исходя из этого а также других факторов как то отсутствие кварцевой стабилизации частоты и измерение температуры мультиметром устройство не позиционируется как хоть сколько ни будь точный прибор. Его задача это приблизительно перевести изменение сопротивления датчика в результате нагрева в числовую форму. А также поддерживать температуру жала в комфортной зоне для пайки.
Во фьюзах относительно заводских настроек меняется только установка тактовой частоты равной 8МГц. Выглядят они так.
Настройка устройства заключается в получении коэффициентов для уравнения пересчета напряжения в температуру. Я использовал для этого excel. Необходимо снять характеристику терморезистора. Для этого нужно измерить температуру нагревателя и записать значения АЦП которое ей соответствует. Для измерения температуры я использовал обычный мультиметр. перед измерением нужно закомментировать строку 148 и раскомментировать строку 149. В первой строке вычисляется переменная t_frz это значение измеренной температуры. Во второй, этой переменной присваивается значение АЦП без изменения, таким образом его можно будет наблюдать на индикаторе.
Получив порядка 20 значений строим график зависимости в excel добавляем диаграмму на ней строим линию тренда. Уравнение линии тренда и есть нужная нам зависимость напряжения от температуры. Из него и берутся необходимые коэффициенты. Далее эти коэффициенты подставляются в строку 148, соответственно ее нужно снова раскомментировать и закомментировать строку 149. Подробнее о получении уравнения написано в литературе снизу.
Готовое устройство выглядит так.
Прошивка и исходник на С++ в CVAVR прилагается. Также приведен проект в Proteus и печатная плата в PCAD.
Литература: Малогабаритный термометр с кремневым терморезистором http://radiokot.ru/lab/controller/21/
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | ATmega8-16PU | 1 | |||
DA | Линейный регулятор | LM7805CT | 1 | КРЕН5 | ||
VS1 | Симистор | BT134-600 | 1 | |||
U | Оптопара | MOC3023 | 1 | |||
VT1-VT6 | Биполярный транзистор | BC547 | 6 | КТ3102, КТ315 | ||
VD1-VD5 | Выпрямительный диод | FR104 | 5 | |||
R1-R3, R22 | Резистор | 4.7 кОм | 4 | |||
R4-R7, R9-R12 | Резистор | 100 Ом | 9 | |||
R8, R16-R19 | Резистор | 1 кОм | 5 | |||
R14 | Резистор | 7.5 кОм | 1 | |||
R15 | Резистор | 2.7 кОм | 1 | |||
R20 | Резистор | 110 Ом | 1 | |||
R21 | Резистор | 750 Ом | 1 | |||
R23 | Резистор | 500 Ом | 1 | |||
C1, C2 | Электролитический конденсатор | 1мкФ 6.3В | 2 | |||
C3 | Конденсатор | 0.1 мкФ | 1 | |||
C4 | Конденсатор | 22 пФ | 1 | |||
C5 | Электролитический конденсатор | 1000мкФ 6.3В | 1 | |||
C6 | Электролитический конденсатор | 1000мкФ 16В | 1 | |||
HG1 | Индикатор | kw4-361xgb | 1 | |||
L1 | Катушка индуктивности | 100uH | 1 | |||
T1 | Трансформатор | 220x24x9 | 1 | |||