Как то на первом курсе стал я счастливым обладателем паяльника ЭПСН25/24 (с питанием ~24В). И ничего мне для счастья больше не надо было. Через лет пять я успешно сжег трансформаторный блок питания (коснулся жалом к включенному самодельному ионизатору – прострелила искра и пошел дым…) в связи с чем трансформаторный БП был заменен на импульсный.
Но вот прошло 16 лет, наткнулся я на статью [1], и захотелось мне приобрести паяльник с вечным жалом и керамическим нагревателем. Но вот беда: к родному ЭПСН было уже много самодельных насадок – выбросить жалко, да и все найденные конструкции в интернете были слишком уж громоздкие, не хотелось такой гроб на стол ставить (работать приходится по ночам на столе в спальне – жена явно будет против такой обновки…). Ну и некоторые сомнения были по поводу удобства необгораемых жал. Поэтому решено было сделать паяльную станцию, да такую, что бы поместилась в существующий корпус блока питания паяльника 80х55х65мм(без штырей вилки), да еще что бы можно было подключить к ней и старенький ЭПСН.
Сказано – сделано. Приобрел я паяльник Lukey-REZISTRONIK (21$) с нагревателем HAKKO 1321 (24V 48Wt датчик резистивный – при 25С ~50Ом) и дополнительным жалом Xytronic 44-510604/JP ( 6$ клиновидное 1.6мм).
А в старенький ЭПСН была встроена термопара от китайского мультиметра. Поэтому схема разрабатывалась с учетом поддержки как термопарного датчика так и резистивного.
И вот что получилось...
Принципиальная схема паяльной станции
Размер платы контроллера (без БП) при применении SMD элементов составил всего 43х33мм.
Общий алгоритм работы
При включении контроллер запускает АЦП и считывает уровень напряжения на входах PC0, PC1. Если на обоих напряжение близкое к напряжению питания – паяльников нет, на дисплее высвечивается «Err» – ошибка. Если на одном из входов напряжение становится менее 4,5В выбирается соответствующий тип паяльника: для входа РС0 – термопарный, для РС1 – резистивный; и начинается набор температуры до значения уставки. Для каждого паяльника хранится своя уставка температуры. При нажатии клавиши «больше» или «меньше» значение уставки текущего паяльника высвечивается на экране в мигающем режиме и далее увеличивается/уменьшается на 5С. В процессе набора температуры мигает точка последнего индикатора. Когда температура приближается к значению уставки, точка перестает мигать и для резистивного паяльника гаснет, а для термопарного горит постоянно – так можно определить какой паяльник определился программой.
Мощность паяльника регулируется с помощью ШИМ модуляции с помощью ключа VT1. При включении паяльника мощность первоначально набирается плавно – для сохранения нагревателя паяльника. При проверке паяльника Lukey-REZISTRONIK выяснилось, что при напряжении 24В он светится в темноте – мне его стало жалко, и заполнение ШИМ для резистивного паяльника было ограничено до 70%. Для термопарного заполнение ШИМ 100%. Тем не менее паяльник Lukey нагревается от 25°С до 250°С за 60сек.
Алгоритм регулирования мощности следующий: при приближении к заданной температуре менее чем на 10С мощность подводимая к паяльнику уменьшается на 10% на каждый град.С. Для того, что бы точно выйти на заданную температуру в программе вводится температура смещения Tsm, которая принудительно смещает уставку до +–10°С. Первоначально смещение равно +2°С. Если температура паяльника находится в диапазоне (Задан.темпер+Tsm)>=Тек.темпер. >= ( Задан.темпер +Tsm − 10°С), тогда происходит постепенная коррекция смещения Tsm: если Задан.темпер.>Тек.темпер., то смещение Tsm увеличивается на 0,1°С, если Задан.темпер.<Тек.темпер., то смещение Tsm уменьшается на 0,1°С. Таким образом температура достаточно точно выходит на заданную, и колебания не превышают +–1°С. Это фактически аналог пропорционально-интегрального регулятора.
Усилитель сигнала термопары собран на специализированной микросхеме AD8551 по классической схеме. Когда паяльник с термопарой отсутствует, резистор R36 подтягивает не инвертирующий вход к «+» питания, в связи с чем, на ее выходе появляется +5В. – контроллер определяет отсутствие датчика. К сожалению, на плате не хватило места для включения AD8551 по стандартной схеме из даташита – с компенсацией температуры холодного спая, поэтому температура холодного спая задана жестко – 23°С и в программе не учитывается ее изменение. Желающие увеличить точность измерения могут включить DA3 по рекомендуемой схеме.
Измерение температуры резистивного датчика производится с помощью делителя образованного резистором R26 и терморезистором паяльника.
Детали и монтаж
Все примененные детали, кроме DA2 и VT1 – SMD. При проверке индикатора HL1 KOOHI E30361LC8W (с общим катодом) оказалось, что даже при токе 2 мА на сегмент, яркость свечения была достаточно интенсивной. Это позволило обойтись без дополнительных транзисторов, подключив катоды непосредственно к портам контроллера, так как суммарный ток не превышал разрешенные даташитом 40мА на порт. При недостаточной интенсивности свечения возможно уменьшение гасящих резисторов до 560Ом. Индикатор HL1 подпаян к плате тонкими проводами МГТФ, после чего закреплен с обратной стороны к ней же термоклеем.
L1,C3,C5 служат для дополнительной фильтрации питания контроллера, их значения некритичны. С9, С3 – танталовые. VT1 – любой аналогичный с допустимым током не менее 5А и порогом открывания не более 2В. На DA2 необходимо установить небольшой радиатор, для VT1 радиатор не требуется. R33, С10, С11, С12 – служат для фильтрации помех в измерительных цепях: их значения некритичны. SA1, SA2 – микрокнопки без фиксации, запаяны с обратной стороны платы (со стороны индикатора).
Если у кого-то не предвидится паяльник с термопарой – можно смело удалить из схемы C10, R36, R33,C11, R31, R32, R34, R35, DA3, однако вход PC0 нужно будет подтянуть к +5В резистором 10кОм.
Прошивка микроконтроллера производилась с помощью обычного LPT программатора, состоящего из 4-х резисторов (в интернете находится без особого труда). Запрограммированные фьюзы: CKSEL3=CKSEL2=CKSEL0=SUT0=0 – галочки.
Разъем на паяльнике заменен на металлический микрофонный 6-и полюсный – родной PS/2 не внушал доверия. К выводам 1-2 разъема подпаян нагреватель паяльника, а к выводам 3-4 и 5-4 термодатчики (соответственно для терморезистора и термопары). Плата, с предварительно закрепленным на ней индикатором, закреплена в корпусе с помощью термоклея.
Схема обратноходового импульсного блока питания была взята из какого-то журнала, и была собрана на основе 561ЛА7 в качестве задающего генератора с регулируемой скважностью импульсов через цепь обратной связи. Однако, к сожалению, с годами схема была утеряна, и найти ее пока не удалось. Рекомендую собрать БП на специализированных микросхемах серии TopSwitch или Viper, например, по схеме [4]. Неоднократно собирал БП с этими микросхемами и ни разу не было проблем – запускались сразу.
На передней панели корпуса были сделаны отверстия под кнопки и дисплей. Рисунок панели был распечатан на прозрачной пленке для лазерных принтеров в зеркальном отображении, после чего на рисунок был наклеен двухсторонний белый скотч (белый!! иначе рисунка видно не будет) со стороны тонера – кроме окна под индикатор. После этого полученный сэндвич обрезают по периметру рисунка и аккуратно наклеивают на корпус – что бы совпали отверстия и кнопки. С внутренней стороны отверстий под кнопки были уложены небольшие кружки из пленки – что бы толкатели кнопок не прилипали к скотчу. Проще всего если кнопки приклеить к передней панели термоклеем – тогда не нужно точно фиксировать плату с кнопками.
Настройка паяльной станции
Калибровку измерения температуры можно произвести в «железе», а можно программно. Для калибровки в «железе» канала измерения температуры термопары необходимо подогнать коэффициент усиления AD8551 подбором резисторов R34, R35. Для калибровки канала измерения температуры резистивного датчика необходимо подобрать R26.
Для программной калибровки нужно подобрать коэффициенты в строках 80..83:
Для резистивного датчика: const_rt0 – значение полученное АЦП контроллера при температуре датчика 0гр.С(т.е. смещение характеристики); const_drt – приращение количества шагов АЦП при изменении температуры в 100град.С (т.е. наклон характеристики).
Для термопары: const_THA0 – температура умноженная на 10 холодного спая термопары; const_THA - приращение количества шагов АЦП при изменении температуры в 100град.С.
Hex-коды прошивки контроллера, исходный проект на Си (для CodeVisionAVR V2.04.4a), схема и разводка платы (PCAD2006) прилагаются к статье.
P.S. Пользуюсь паяльной станцией и паяльником Lukey уже полгода и теперь берусь за ЭПСН только в случае крайней необходимости. Полностью согласен с автором [1], что жало идущее в комплекте с паяльником полностью бестолковое и годится только для коррекции пайки многовыводных SMD элементов. Паять им очень неудобно, и смачивается припоем оно плохо. Кроме этого олово на нем поднимается по острию вверх, а не остается на конце, чем создает дополнительные неудобства. А вот приобретенное клиновидное 1,6мм. жало очень удобное – им легко паять как SMD элементы, так и мощные транзисторы в корпусах типа ТО-220. После чистки о губку (кстати очень быстро и удобно) лудится оно мгновенно – подносишь припой и он сам растекается по кончику жала. Если посмотреть на фотографию жала – видно, что кончик жала покрыт чем-то вроде серебра, поэтому и лудится оно легко.
Литература
- DI HALT. Трактат о паяльниках. http://easyelectronics.ru/traktat-o-payalnikax.html
- Д. Мальцев. Термостабилизатор паяльника на микроконтроллере. Радио №2/2010
- Pavel V. Цифровая паяльная станция своими руками. http://www.radiokot.ru/lab/controller/10/
- Доработка паяльника от паяльных станций Lukey. http://www.mirmasterov.com/dorabotka-payalnika-payalki-lukey-702.html
Изменения в прошивке (от 02.02.2013):
1. Добавлено шесть кнопок памяти: выводы PD0,PD1,PB2,PB3,PB4,PB5.
2. Добавлен режим корректировки, с вводом поправочного коэффициента температуры.
3. Увеличена максимально задаваемая температура до 400С.
4. Увеличена максимальная мощность паяльника до 90%.
5. Улучшен переходной процесс при выходе на заданную температуру.
6. Добавлена возможность паять при отрицательных температурах.
Скачать прошивку, проект в CodeVisionAVR, печатные платы в P-CAD вы можете ниже
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
DA1 | МК AVR 8-бит | ATmega48P | 1 | Поиск в магазине Отрон | ||
DA2 | Линейный регулятор | L7805AB | 1 | Поиск в магазине Отрон | ||
DA3 | АЦП | AD8551 | 1 | Поиск в магазине Отрон | ||
VT1 | MOSFET-транзистор | IRL520 | 1 | Поиск в магазине Отрон | ||
С3, С9 | Электролитический конденсатор | 100 мкФ | 2 | Поиск в магазине Отрон | ||
С4-С8, С10-С12 | Конденсатор | 100 нФ | 8 | Поиск в магазине Отрон | ||
R3 | Резистор | 10 кОм | 1 | Поиск в магазине Отрон | ||
R17-R24, R31, R32 | Резистор | 1 кОм | 10 | Поиск в магазине Отрон | ||
R25 | Резистор | 100 Ом | 1 | Поиск в магазине Отрон | ||
R26 | Резистор | 560 Ом | 1 | Поиск в магазине Отрон | ||
R33 | Резистор | 56 кОм | 1 | Поиск в магазине Отрон | ||
R34 | Резистор | 68 кОм | 1 | Поиск в магазине Отрон | ||
R35 | Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||
R36 | Резистор | 200 кОм | 1 | Поиск в магазине Отрон | ||
HL1 | Индикатор | E30361LCBW | 1 | Поиск в магазине Отрон | ||
L1 | Катушка индуктивности | 33 мкГн | 1 | Поиск в магазине Отрон | ||
SA1, SA2 | Кнопка | 2 | Поиск в магазине Отрон | |||
Х1-Х5 | Разъем | 1 | Поиск в магазине Отрон | |||
Х6 - Х7 | Разъем | 1 | Поиск в магазине Отрон | |||
XS1 | Разъем | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- Solder_Station.rar (234 Кб)
Комментарии (153) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Изменил PORTC на индикаторе светятся все сегменты и мигают все точки. Не работает переключение между анодами. На PC5,Pc4,PC3+5в
В операторе switch инвертируем все значения портов: было case 0x30: PORTC.2=1;PORTB.0=1;PORTD.7=1;PORTD.6=1;PORTD.5=1;PORTD.4=1;PORTD.3=0; стало case 0x30: PORTC.2=0;PORTB.0=0;PORTD.7=0;PORTD.6=0;PORTD.5=0;PORTD.4=0;PORTD.3=1; и т.д. по всем case.
В строке 69 инвертируем значения порта PORTD.2 было {PORTD.2=1;}else{PORTD.2=0;}; стало {PORTD.2=0;}else{PORTD.2=1;};
В строках 72-74 изменяем значения портов с нуля на единицу:case 1: PORTC.5=1;break;
case 2: PORTC.4=1;break;
case 3: PORTC.3=1;break;
А может все банально: просто плохой контакт к датчику температуры, из-за этого плавает его сопротивление, и соответственно плавают показания
По незнанию немного помучился с прошивкой - сперва надо прошивать .hex, затем .eep, т.к. при прошивке программы стирается и eeprom, а с ним и все коэффициенты (использовал SinaProg). В остальном все, можно сказать, с первого раза завелось.
Кстати у меня паяльник тоже поет, хорошо слышно при разогреве, как только включаешь.
Еще раз спасибо автору!
Подставка для паяльника, продаваемая в инете за 150 руб., своим чёрным железным П-образным основанием плотненько так одевается сбоку на комповый БП... То есть, если поставить его "на ребро", то сверху оденется.
Спасибо!
Не могли бы вы сделать исходник для меги 8й, был бы очень благодарен.
IRL520 не было, поставил IRLZ44
Мои попытки не увенчались успехом, выдает кажется 8 ошибок, но ничего вменяемого не нагуглил
Поник 2007
Данное устройство можно использовать как термометр до 400 градусов, убрав обвязку нагревом?
Исполняющий механизм на реле, который будет запускать пускатель.
2 - Возможность переделки есть (программная), но есть ли смысл с учетом п.1?
Может и не в тему но хотелось поделится станцией для паяльника на ардуино.
Получилась такая Эволюция.
1. По такой схеме с резистивным датчиком температуры точность регулировки никакая, от слова совсем. В младших разрядах АЦП будет шум. Нужно ставить ОУ и растягивать диапазон измерения на 2.56В, а АЦП использовать в 8-битном режиме.
2. В исходнике, в условиях корректировки Tsm (ИМХО) есть косяк. В строках:
if((buf > T_zad) && (Tsm > 0)) { Tsm--; };
if((buf < T_zad) && (Tsm < 100)) { Tsm++; };
в одном из условий сравнения "buf" и " T_zad" должно быть добавлено равенство, например, сюда: (buf >= T_zad). Иначе при равенстве этих переменных регулировка будет тупо затыкаться.
Все сказанное - не в упрек, автор проделал хорошую работу, а косяки бываю у всех. :)