Устройство предназначено для поддержания и регулирования температуры паяльника 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 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- Solder.zip (725 Кб)
Комментарии (101) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
И зачем перед оптосимистором стоит транзистор? Что мешало подключить его напрямую к выводу МК? Да и по входу термопары не помешал бы хотя бы простецкий LC фильтр, ну и внешний ИОН для МК, а то измерения тут идут +/- лапоть. На индикатор поставить сдвиговый регистр, тот же 74HC164. И сохранение в eeprom надо делать сразу после ввода, а не при выключении.
[Автор]
[Автор]
[Автор]
[Автор]
При подключенном паяльнике на дисплее показывает прыгающие числа 50-250, при отключенном около 600, так же показание скачет, при этом паяльник не нагревается, при попытке увеличить или уменьшить температуру на дисплее все отображаются изменение, но нагрев не происходит. В схеме использовал один транс 24 вольта, больше ничего не менял. Так же в процессе работы схемы очень сильно греется(около 50-70 градусов) стабилизатор, тот который на 5 вольт (хотя на нем висит не маленький радиатор). Подскажите что может быть?
И еще я правильно понял у терморезистора в паяльнике сопротивление около 50 Ом, а у нагревателя 3-4 Ом?
[Автор]
При подключении паяльника меняется буква с “p” на “t”? Попробуйте отключить силовую часть и проверить дает ли контроллер команды на тиристор.
[Автор]
Поменял на aref кондер на 0.1 мкФ показания стабилизировались, но все равно скачут.
Также при отключении паяльника стала появляться p на дисплее. И новая проблема: подключаю паяльник и он начинает греется без тормозов, судя по мультиметру 450+ градусов, в следствии чего, как я понял, сопротивление сильно увеличивается и контроллер думает что отключили паяльник и начинает показывать p на индикаторе. Посоветуйте что-нибудь.
Симистор вот такой.1 ногу подключил к нагрузке, 2 ногу подключил к резистору R21 и обмотке транса и 3 ногу к оптопаре.
Сопротивление резистора R7 не меняли? у меня терморезистор 55Ом.
Сейчас, кстати, при отключенном паяльнике показания вообще не прыгают, при подключенном примерно в пределах 20 единиц.
Подумываю написать свою прошивку (правда на bascom, си для меня пока сложен), ШИМ для управления нагревателем формируется программно?
При каждом запуске схемы в еепром произвольное число, не пойму с чем связано
Сейчас контроллер запитан от отдельного источника 5 вольт, а детектор нуля на VT6 получается не задействован, из-за этого симистор как открылся так и остается открытым. Как мне сейчас правильно подключить vt6?
Но показания на индикаторе все равно скачут.
Видео
[Автор]
[Автор]
В режиме мощности (при отключенном паяльнике) работает стабильно и правильно, только я поставил на выход полевик, вместо симистора.
Возможно ли эта не стабильность из за меньшего сопротивления терморезистора в паяльнике (24V), у меня 50 Ом, вместо 100 Ом авторских. Можно ли скорректировать прошивку?
[Автор]
Еще заметил, если использовать atmega 8A-pu, то без терморезистора не входит в режим мощности, а с Atmega 8-16pu все нормально.
[Автор]
Когда же остывает паяльник показания скачут 190-250. Мне кажется править прошивку под 50 Ом надо.
[Автор]
[Автор]
P.S. Это мой первый опыт работы с микроконтроллерами.
[Автор]
Оба светодиода мигают с одинаковой частотой, но не одновременно. Частота все время увеличивается.
Может я что-то не то шью?
p.s. Собрал и прошил еще две схемы паяльных станций. Работают. Но мне нравится именно этот регулятор!
[Автор]
Скажите, а EEPROM, тоже нужно прошивать? У меня win7. Может поэтому?
Прошивка лежит в папке Exe? Тогда там и HDD.eep лежит. А для чего нужен HDD.rom?
p.s. Уже поздно. Мегу убил. Жду посылку из "Поднебесной". Как знал, заранее парочку заказал.
[Автор]
Впринципе, если откалибровать, то поазания будут 10 раз ниже. И показания дожны прыгать на 2-3 гр. Притащу с работы осцилограф, пройдусь по схеме, тогда будем решать.
[Автор]
Мы немного не поняли друг друга. Что температура колеблется это естественно. Меня бесят показания индикатора! За пределами гистерезиса начинается пляска показаний. Может показать 272 гр. и тут-же 295, а потом 285.
Решил пере собрать плату, разнести все по углам, поделить "землицу" по справедливости, а потом тыкать щупом.
Питать регулятор собираюсь от ноутбучного БП. Поэтому у меня к Вам просьба. Не могли бы Вы изменить прошивку так, чтобы работала без детектора нуля? Пока на детектор подаю напряжение от отдельного трансформатора или на 5-й вывод меги подаю сигнал от выводов управления анодами индикатора. В последнем варианте не четко работает регулировка мощности от 0 до 17%. Нельзя-ли вывести эти 100 Гц на свободный выход меги? Тогда отпала бы надобность в детекторе и появилось бы несколько вариантов питания регулятора.
[Автор]
Теперь о самом грустном. После изменения прошивки (добавки вспомогательного сигнала) перестало записывать EEPROM при выключении. Сначала я не поверил, думал причина в схеме, потом прошил обратно, и все стало на свои места.
[Автор]
[Автор]
P.S. По показаниям моего регулятор комфортная температура пайки 450 градусов.
[Автор]
На днях найду более мощный трансформатор и отпишу о результатах.
[Автор]
[Автор]
[Автор]
[Автор]
Все, разобрался сам. Включил фьюз BODEN и все стало нормально.
[Автор]
[Автор]
[Автор]
[Автор]
[Автор]
Если не получится настроить ОУ на термопаре. В коде программы 148 строка отвечает за расчет измеренной температуры. Значение АЦП умножается на коэффициент определяющий наклон характеристики термодатчика. И из всего этого вычитается значение для получения нуля вот его и подбирайте.
[Автор]
[Автор]
[Автор]
2. У меня индикатор с общим катодом. Прошивка 45394_HDD. Надо ли оптопару МОС3023 заменить на оптопару с детектором нуля?