РЕГУЛЯТОР ТЕМПЕРАТУРЫ ПАЯЛЬНИКА

 

            Описание устройства

 

            Однажды в моём распоряжении оказался корпус от "паяльной станции" советских времён. Долгое время он валялся без дела, пока мне не понадобился регулируемый источник питания для 12/42/220-вольтовых паяльников. На передней панели корпуса находятся:

                        - стрелочный индикатор температуры жала паяльника;

                        - термопара, которой касаются жалом паяльника для определения температуры;

                        - розетка для подключения паяльника;

                        - ручка переменного резистора регулятора температуры;

                        - светодиод;

                        - тумблер питания;

                        - клемма заземления паяльника.

 

            Порывшись в закромах, нашёл подходящий трансформатор (ТПП 289-220-50) и оптосимистор (S202S02). Чтобы не переделывать переднюю панель, имеющийся переменный резистор на 4,7 кОм должен выполнять своё прямое назначение - регулировать температуру. После некоторых раздумий было решено отказаться от схемы на жёсткой логике, и уж тем более, от транзисторной рассыпухи. Для управления симистором используется микроконтроллер ATtiny13. Он имеет в своём составе АЦП, кото­рый и будет "следить" за положением движка переменного резистора.

 

            Принципиальная схема регулятора проста и не содержит каких-либо хитростей:

 

Принципиальная схема регулятора температуры паяльника

 

            Транзистор VT1 служит для формирования синхроимпульсов, необходимых для корректного управления симистором. На базу транзистора подаётся выпрямленное пульсирующее напряжение часто­той 100 гц (верхняя эпюра на графике), на коллекторе транзистора и выводе 6 микроконтроллера DD1 формируются импульсы положительной полярности с периодом 10 мс (нижняя эпюра на графике):

 

Эпюры напряжений:
1) анод диода VD5
2) вывод 6 микроконтроллера DD1

 

            Используемый симистор S202S02 не позволяет реализовать фазоимпульсное регулирование напряжения (его нельзя открыть в произвольный момент времени), поэтому единственный выход - "вы­кусывать" часть полупериодов напряжения на нагрузке.

 

            Строго говоря, выкусывать нужно таким образом, чтобы всегда получалось чётное число полупериодов. В противном случае неизбежно образование в потребляемом токе постоянной состав­ляющей, способной вызвать нежелательное подмагничивание магнитопроводов трансформаторов и двигателей, подключённых к той же сети.

 

            Но это теория, на практике же, паяльник мощностью 40 ватт (или лампочка в подъёзде, включён­ная через диод) трансформаторную будку вместе с силовым трансформатором сильно не намагнитят. Поэтому в текущей версии программы микроконтроллера разрешено появление нечётного количества полуволн.

 

            Для примера зададимся числом полупериодов = 100. Тогда удалив один полупериод, мы пони­зим мощность паяльника на 1%, удалив 50 полупериодов - понизим мощность на 50%. Но 50% можно получить и по другому, выкусывая каждый второй полупериод! Также можно найти кратные значения и для других комбинаций полупериодов. Чтобы не считать каждый раз всю таблицу вручную, на языке VBA (Visual Basic for Application) из состава Microsoft Excel была написана вспомогательная программа, в которой можно задаться количеством полупериодов, шагом "выкусывания", а также разрешить или за­претить нечётное количество полуволн:

 

Программа для расчёта таблицы скважностей

 

            В текущей версии программы микроконтроллера используется таблица из 100 полупериодов с шагом 2. Нечётное количество полупериодов - разрешено. При этом получается 51 градация мощности, что вполне удобно. Большее количество не имеет смысла, т.к. невозможно уверенно выбрать ту или иную ступень при помощи переменного резистора.

 

            Соответствие синхроимпульсов на выводе 6 микроконтроллера (верхняя эпюра) и импульсов управления симистором на выводе 3 микроконтроллера (нижняя эпюра) показано на рисунке (горизон­тальный масштаб - 5 мс на деление; уровень мощности - 50%):

 

Эпюры напряжений:
1) вывод 6 микроконтроллера DD1
2) вывод 3 микроконтроллера DD1

 

            Как видно из графика, длительность импульсов управления равна 5 мс. Этого вполне достаточно не только для уверенного открывания симистора, но и для свечения светодиода HL1, расположенного на передней панели устройства. Напряжение на нагрузке в случае уровня мощности 50% имеет вид од­нополупериодного выпрямления:

 

Эпюра напряжения на нагрузке
(уровень мощности - 50%)

 

            Программная часть

 

            Программа для микроконтроллера ATtiny13 написана на языке Си в среде разработки CodeVi­sionAVR 1.25.5. Бесплатная версия компилятора имеет ограничение по размеру компилируемого кода (hex), в 2 кБ. Поскольку объём памяти применяемого микроконтроллера равен 1 кБ, то бесплатность компилятора является большим плюсом. Для редактирования исходника необходимо запустить (от­крыть) файл проекта "copper.prj".

 

            Вся программа состоит из четырёх функций:

                        - void main(void);

                        - interrupt [EXT_INT0] void ext_int0_isr(void);

                        - unsigned char read_adc(unsigned char adc_input);

                        - void open_simistor (void).

 

            Рассмотрим назначение каждой функции подробнее.

 

            - void main(void) - основная функция в любой программе на языке Си. После включения мик­роконтроллера первой начинает выполняться именно эта функция. Поэтому в её начале находится ини­циализация всех необходимых составляющих микроконтроллера (таймеры, АЦП, порты и т.д.), а также чтение сохранённых в EEPROM данных.

 

            - interrupt [EXT_INT0] void ext_int0_isr(void) - функция обработки прерывания. Отправ­ной точкой работы программы являются прерывания, инициируемые нарастающим фронтом импульсов на выводе 6 микроконтроллера. После наступления прерывания, микроконтроллер прекращает все теку­щие действия и переходит к выполнению кода, размещённого в данной функции. Условно, функция со­стоит из трёх частей:

                        1) определение положения движка резистора R3 (функция  unsigned char read_adc(un­signed char adc_input));

                        2) проверка условий открытого/закрытого состояния симистора;

                        3) управление симистором (функция  void open_simistor (void)).

 

            - unsigned char read_adc(unsigned char adc_input) - функция выполняет запуск преобра­зования и чтение результатов преобразования АЦП, т.е. фактически здесь определяется положение движка переменного резистора R3. Поскольку в данной задаче не требуется большого разрешения, то ис­пользуются только старшие 8 бит 10-битного результата. Частота тактирования АЦП, напротив, вы­брана большой - 600 кГц. Результат преобразования АЦП используется для выбора нужной ячейки дву­мерного массива flash unsigned char cycles[52][2], в котором находится таблица скважностей всего диапа­зона регулировки мощности.

 

            - void open_simistor (void) - функция управления симистором. Определяет задержку и дли­тельность импульса открывания симистора. Единственное, что нужно прокомментировать в этой функ­ции - строку " if (mode == 0) delay_us(2000); ".

 

            Дело в том, что во время первичных испытаний, когда вся конструкция была собрана на "соплях", и провода были длинными, наблюдалось нестабильное открывание симистора. Это происходило только при работе симистора под нагрузкой и только при напряжении питания 15 вольт (ступень для 12-ти вольтового паяльника). Нормальная работа обеспечивалась задержкой импульса открывания симистора (нижняя эпюра) относительно синхроимпульса (горизонтальный масштаб - 2 мс на деление; уровень мощности - 100%):

 

Эпюры напряжений:
1) вывод 6 микроконтроллера DD1
2) вывод 3 микроконтроллера DD1

           

            Включение и выключение задержки реализовано через положение движка переменного рези­стора R3. Если ПРИ ВКЛЮЧЕНИИ питания движок находится в крайнем левом положении (нижнем по схеме), то в EEPROM микроконтроллера записывается флаг признака включения задержки. Если движок резистора в момент включения находился в крайнем правом положении (верхнем по схеме), то в EEPROM микроконтроллера пишется флаг признака выключения задержки. Когда движок резистора на­ходится в любом другом промежуточном положении (а так оно, чаще всего, и бывает), то данные из EEPROM просто переписываются в ОЗУ микроконтроллера. Таким образом, выполнено запоминание необходимого режима работы.

 

            Однако после окончательного монтажа устройства сбои в работе симистора исчезли. На всех ступенях напряжения задержка импульса открывания симистора не требуется. Тем не ме­нее, возможность включения задержки было решено оставить.

 

            Программирование микроконтроллера

 

            Автор программировал микроконтроллер из среды разработки CodeVi­sionAVR 1.25.5. Выполнив пункт меню "Settings/Programmer" выбирают тип программатора Kanda Systems STK200+/300:

 

Окно настройки программатора

 

            Для разового программирования достаточно спаять простейший переходник на LPT порт компьютера:

 

Принципиальная схема адаптера для программирования ATtiny13

 

            Длина соединительных проводов не должна превышать 100 мм. Удобнее всего, собрать программатор в вилке DB-25, просверлив в корпусе отверстия под выводы панельки. Саму панельку вставляют выводами в отверстия и приклеивают к корпусу. Из вилки выводят шнур питания микрокон­троллера. Получается удобная и законченная конструкция. Питание микроконтроллера можно взять от блока питания компьютера (красный провод в любом разъёме).

 

            Для запуска программатора открывают файл проекта "copper.prj" из папки "COPPER", затем выпол­няют пункт меню "Tools/Chip Programmer":

 

Программатор CodeVisionAVR

 

            Все необходимые настройки программатора импортируются из файла проекта автоматически. Остаётся только включить питание микроконтроллера и нажать кнопку "Program All".

 

            В случае использования другого программатора необходимо воспользоваться файлом "copper.hex" из папки "COPPER" и установить необходимые "перемычки" (Fuse Bits) в соответствии с рисунком.

 

            Также следует обратить внимание на фьюз SPIEN, который обязательно должен быть установлен = 0. В противном случае, запись программ через SPI станет невозможна!

 

            Конструкция и детали

 

            Абсолютно формальный раздел, т.к. всё зависит от имеющихся в распоряжении деталей и средств. Микросхему стабилизатора К142ЕН5А можно заменить на 78L05, вместо оптосимистора S202S02 вполне подойдёт какой-нибудь BT-138 + твердотельное оптореле типа PVT412. Если не пред­полагается использовать низковольтные паяльники, то трансформатор Т1 можно взять маломощный, с напряжением вторичной обмотки 7 - 12 вольт. Кстати, распайка трансформатора Т1 для получения не­обходимых напряжений:

 

Распайка трансформатора ТПП 289-220-50

 

            Печатная плата не разрабатывалась. Вся схема смонтирована на куске монтажной платы:

 

Внешний вид печатной платы

 

            Вид на монтаж блока слева:

 

Вид на монтаж блока слева

 

            Вид на монтаж блока справа:

 

Вид на монтаж блока справа

 

            Вид на монтаж сверху:

 

Вид на монтаж сверху

 

            Общий вид устройства:

 

Общий вид устройства

 

            Файлы и ссылки к статье

 

        1) Принципиальная схема регулятора (Circuit.rar, 10 кБ)

        2) Исходные файлы программы для МК + прошивка (Copper.rar, 30 кБ)

        3) Программа для создания таблицы скважностей (Table.rar, 25 кБ)

        4) Сайт программы CodeVisionAVR

 

Автор: Олег Иванов

 

Главная страница