|
А. Латыпов
Домашний паяльник
Современное паяльное оборудование порой недоступно инженеру по цене. Самая дешёвая паяльная станция "Solomon" стоит порядка 70$.
Автор предлагает одно из решений, как приобрести дешёвый и удобный паяльник. Для начала можно приобрести паяльник от паяльной станции "Solomon"-SL30.
Цена такого паяльника 250 р. Автор сам разработал к нему систему стабилизации температуры. В качестве основного элемента использована микросхема "Attiny 15L". Она имеет не очень высокую цену и была доступна автору на момент начала разработки. Микросхема содержит 10-разрядное АЦП и коммутатор на 4 канала. Принципиальная схема устройства представлена на рисунке.
 Рисунок 1. Принципиальная схема
DD3 - микро-ЭВМ Attiny 15.
- 1-й вход при использовании внутрисхемного программирования должен оставаться свободным.
- 2-й вывод микросхемы автор за-программировал как вход термопары (аналоговый вход).
- 3-й вывод микросхемы автор за-программировал как вход опорного уровня (аналоговый вход).
- 5-й вывод микросхемы запрограммирован как вход выбора индикации опорного уровня или реальной температуры жала (цифровой вход).
- 6-й вывод - индикация уровня. На этот вывод выведена широтно-импульсная модуляция. Среднее значение ШИМ соответствует текущему уровню АЦП. На этот вывод выводится сигнал с термопары или опорный уровень.
- 7-й вывод — управление переключателем "Нагрев".
На микросхеме DD2-1 собран интегратор для ШИМ.
На микросхеме DD2-2 собран фильтр на частоту 1 Гц для сглаживания пульсаций от термопары. DD1 (i118) используется как усилитель сигнала с термопары. Усиление регулируется резистором R19. I118 специально разработан для измерительных цепей. Оптимальный коэффициент усиления 70–80.
VD14 служит для защиты входа микро-ЭВМ от перегрузки.
Индикатор уровня собран на диодах VD 3-8. R16-R18 определяют яркость свечения светодиодов. Управляющая программа с интервалом около 10 мс считывает данные с АЦП и уровень c R16, сравнивает их и, в зависимости от соотношения уровней, включает или выключает нагреватель. Программа анализирует положение тумблера К1 и, в зависимости от его положения, выводит на вывод 6 ШИМ, которая отображает температуру жала или уставку. В Atiny 15 используется внутренний тактовый генератор. ШИМ генератор реализован за счёт использования 2-х таймеров. Через контакты Х1 подключается паяльник. Через контакты Х2 можно подключать внутрисхемный программатор, например, рекомендуемый фирмой Atmel.
;*********************************************************
;*******Программа измерителя паялника*****************************
;
;Разработал Латыпов А.Т.
;*******Основной модуль************************************
.include "tn15def.inc"
.def xfilt1 =r18 ;
.def status =r20 ;регистр статуса
.def temp =r21 ;временная переменная
.def RGres =r22 ;регистр опорного уровня
.def AL =r23 ;буфер накопитель для слжения
.def AH =r24 ;
.def XH =r25 ;
.def var1 =r26 ;перменная цикла временного буфера
;****************************************************
.cseg ;
.org 0 ;коды программы
rjmp reset ;в начало программ
nop ;внешних прерываний нет
nop
nop
rjmp timer1 ;прерывания от таймера 1 по отображению уровня
rjmp timer ;прерывание от таймера каждые 10 мс
nop
nop ;прерываний от аналоговых блоков нет
nop
;******************************************************
reset:
cli ;запретим все прерывания
clr xfilt1
ldi temp,0
out OSCCAL,temp ;нижняя рабочая частота внутр.генератора
ldi temp,0x22
out ADMUX,temp ;мультиплексор на тестовый канал82
ldi temp,0x80
out ADCSR,temp ;однократный запуск АЦП (80)
ldi temp,245
out TCNT0,temp ;прерывания каждые 10 мс(220)
ldi temp,5
out TCCR0,temp ;предварительный делитель 1\256
ldi temp,0x0e
out TCCR1,temp ;предварительный делитель 1\256 для т1
ldi temp,0x17
out WDTCR,temp ;wd сработает не ранее чем через 0.9с
ldi temp,6
out TIMSK,temp ;разрешаем прерывания от т0 и т1
sbi DDRB,1 ;7 6 ноги работают на вывод
sbi DDRB,2
cbi DDRB,3 ;остальные на ввод
cbi DDRB,4
cbi DDRB,5
sbi DDRB,0
sbi PORTB,0
sbi PORTB,1
cbi PORTB,2 ;при старте включаем нагреватель
clr status
clr XH ;чистый 0 для сложения с переносом
clr ZL ;обнулим указатель
ldi temp,0
out GIMSK,temp
ldi temp,0
zut MCUSR,temp ;
ldi temp,00
out ACSR,temp ;
ldi temp,32
out MCUCR,temp ;разрешение на режим "sleep" 32
;***********************************************************
wait:
;основной рабочий цикл
sbrc status,0 ;пора считывать ацп
rcall Readadc ;вызов подпрограммы чтения ацп
rcall MakeDeltak ;управление паяльником
cli
ldi temp,32
out MCUCR,temp ;для обеспечения режима сон
sei
sleep
rjmp wait ;конец основного цикла
;*********************************************************
;*****программа считывания ацп вызывается по таймеру каждые
;*****10 мс.**********************************************
Readadc:
cbr status,1
sbi ADCSR,6 ;запуск ацп на рабочем канале
wwww:
sbis ADCSR,4
rjmp wwww
in var1,ADCH ;перегружаем значения считанные из ацп
ldi temp,0x23 ;мултиплексор на канал с опорой
out ADMUX,temp
ldi temp,64
del:
dec temp ;задержка на переключение
cpi temp,0
brne del
sbi ADCSR,6 ;запуск ацп на опоре
wwww1:
sbis ADCSR,4 ;ожидание готовности ацп
rjmp wwww1
in xfilt1,ADCH ;спасаем результат
ldi temp,0x22
out ADMUX,temp ;переводим ацп на рабочий канал
ret
;**************************************************************
;************************************************************
;****программа управления вызывается по
;****таймеру ************************************************
MakeDeltak:
work:
cp var1,xfilt1 ; сравниваем величины опоры и сигнала
brlo swon
cbi PORTB,2 ;выключить нагреватель
rjmp swoff
swon:
sbi PORTB,2 ;включить нагреватель
rjmp swoff
swoff:
ret
;*******************************************************************
;******************************************************************
;*******программа работы с таймером каждые 10 мс*******************
timer:
sbi PORTB,1
sbr status,1 ;каждый период запускаем ацп
sbic PINB,0 ;определяем режим индикации
rjmp set
mov temp,xfilt1
lsr temp
out TCNT1,temp ;индикация опорного уровня запуск т1
cbi PORTB,1
rjmp EXE
set:
mov temp,var1
lsr temp
out TCNT1,temp ;индикация температуры жала запуск т1
cbi PORTB,1 ; 0 на индикатор
EXE:
ldi temp,128 ; для следующего цикла
out TCNT0,temp
reti
;************************************************************
timer1:
sbi PORTB,1 ;интервал т1 обсчитан
reti
|
В паяльной станции, которую выпускает фирма Solomon, точность поддержания температуры жала примерно 40 градусов. В станции, разработанной автором, точность поддержания температуры жала тоже около 40 градусов. Низкая точность поддержания температуры - следствие конструктивных особенностей паяльника (термопара расположена далеко от жала паяльника). Для домашнего применения, как кажется автору, такой станции вполне достаточно.
|