T12 烙铁 PY32F015A 变压器版 AIR001
简介
T12 电烙铁控制电路, 使用变压器供电版, 用PY32F002AF15(也是AIR001), 使用ST7567 LCD12864显示,EC11旋转编码器调节温度.
简介:T12 电烙铁控制电路, 使用变压器供电版, 用PY32F002AF15(也是AIR001), 使用ST7567 LCD12864显示,EC11旋转编码器调节温度.开源协议
:GPL 3.0
描述
PY32F002AF15, (也是AIR001,只是合宙公司2024好像撤掉了这部分技术人员及对个人小批量的销售). 实际上是PY32F030配置.使用它定时器PWM控制T12加热,在加热间隙测量T12温度, 从而调节PWM脉冲宽度来完成控制温度的效果.
首次自己写代码,ARM CM0+(以前都是直接用别人的BIN), 所以程序有些简单, 也没有优化,
编程思路: 使用TIM3 CH4 (PB1 脚) 输出PWM脉冲, 控制PMOS开关给T12加热, 在PWM 关断期间, T12热电偶信号经放大后由PY32F015A的ADC测量, 从而调节PWM的脉冲宽度来控制T12温度稳定在设置附近. 由于运放放大后的信号稳定需要时间, 所以ADC测量是在PWM关断后再延时100us~1mS后再进行, 延时的长短, 由电路使用运放的级数,及运放的速度相关. 此电路选择了美森科的AD8552ARZ-MS, 5V/us, 6M带宽,失调电压10uV左右,比较适合用于mV级信号的放大.
TIM3定时器, 可以同时输出4路PWM,有相同的ARR, 不同CNT, 既可以做硬件输出,也可以做软件中断使用, 用CH4做PWM输出(PB1脚), CH1做CC1IF中断输出, 在CH1中断里进行ADC测量,PID计算, TIM3.CH4的脉宽设置(TIM3->CCR4),如下图.
TIM3-CH1 的脉冲宽度是固定的, 只留有最小时间段(10/1000,10HZ时), 供ADC测量及计算. TIM3-CH4的CCR4要比CCR1小一定数值(延时),CH4关断后不能马上测量ADC,这个值大概15--100, 看电路及TIM3的频率(可以选择10HZ,20HZ,40HZ, 暂时使用40HZ)
电路如下, 第一级放大10倍, 第二级放大25倍,总放大250倍, (假设热偶传感器是24uV/度, 实际由测量来决定),供电压低于20V, D1可以不安装. D2是对运放U6.1限幅, 减少过冲时间. 也可以不安装. R10,LED1也可以不焊. 调试时需要,即使屏不显示,但PWM工作时绿灯会明/灭.
供电可以选择有低压(9V左右),也可都由主电压供电. 由LM317压在5.2V左右,再由LDO稳压在3.3V 供MCU,运放使用. 供电如下, 可以用多个小1000uF, 也可以用一个大的4700uF,PCB有相应处理.. R17A,R17B, 只接一个,看你实际情况. 本来还有个78M05放在交流低压那边, 实际没焊,电路中就删除这部分,只保留LM317.
S1散热器实际用的是23.5*16*25MM,立创有卖,只是这个没有封装,电路上用其代替. 整流桥宽略,可能大于此散热器0.1mm, 用锉刀处理整流桥的二边就可以用了.
现在的电路略有修改, 本来有3路ADC测量 (PA4, TL431基准测量, PA1,NTC测温,PA0 T12温度测量), PA1现改成了手柄振动器测量, TL431,只是测量ADC时用了下, 实际控制T12,用不上它.ADC的输出值由3.3V控制, 无论是3.35,还是3.25, 它的ADC值都约是4095左右, 所以你要选择用1%的3.3V,否则数据可能要略有调节. R24,U4可以不焊.
PCB布线修改, T12的输出地线,不要与运放的地线近处相连,要单独布线到大电容附近,因为会影响测量.表现为PWM工作时测温变小(地线上的压降),而要延时几个ms,才会好些.
调试PID后, 发现, 供电电压其实一般使用15V~24,都可以, 当烙铁稳定后, 占空比比较小(<20%), 平均功率大概在4W~10W(设置的温度越高,平均功率越高). 不同供电电压, PID也不同. 15V供电调节好的PID, 在24V下就不行. 其实看你喜欢稳定, 还是喜欢加速快, 这二个是矛盾的.
用K型热电偶(VC99万用表,有K型测温档)用竹夹子夹在烙铁头上, 夹在不同的位置, 温度不同, 因为实际温度是有梯度的, 头部各处是有温差的.
得到了一批数据, 后来只用了离刀头比较近的那18个数据, (这个温度比其它地方要小些), 如下图, 线性还可以, R平方=99.6%. 其它值可以由ADC原始值,用线性插值法计算得来. 先查表到到二个ADC值(x0,y0)(x1,y1)中间, 再计算温度 y=y0+(y1-y0)*(x_adc-x0)/(x1-x0) 也可以直接计算, EXCEL表中, y=a*(x_abc)+b, a和b可以先计算出来, 当然浮点运算可能不占优势. 数据中的温度发现不是整齐的, 因为实际PID稳定后,平均温度是在设置值附近, 所以只要稳定了就记下二个值.
程序先搞到这, 留有原始程序, 想修改的可以直接改.
手柄振动传感器也可以不用, 因为程序做的是, 加热5分钟自动进入休眠, 但只要EC11转一下, 或按一下就可以转出休眠状态并清0时间, 所以手柄振动传感器用途不明显. 而用传感器好像也有不同,有人用振动球,水银的, 我的是中国星坤的一种,里面是一个弹簧,弹簧中间有一个金属棒. 轻轻的移动, 是不触发的, 至少要有意晃动一下才行. 没有电子陀螺仪灵敏.
部分实物: 下面是初期显示, 在校准温度, 其实校准了二次,首次,假设值与实际相差有点大(30度),即做加热,又做传感器,用料还是以加热丝的寿命为主.
T12 刀头, 竹夹子,K型传感器(很小),这个位置比圆的部分低5~10度. 竹夹子在400度附近会碳化, 不影响测量.
这是ST7565的显示屏,3.6寸(老王家) ,背光电流要求大一点. 同样电流会暗些.
这个是POS机上的屏(老王家), 可视角度比上面的好.
更新:
已经装盒, 用的环牛23V(原15V,自己加绕到了23V), 用的是防水盒: F型 200*120*75. 刚好能放下. 不过防水盒面板处理有点费事.
程序略修了一下, SPI改用单向SPI. ADC修改了一下, 原厂说明:单次ADC, 每次ADC,要先重新使能一下. 界面修改了一下.
实际使用, 240度左右化锡, 平时小焊接大约270度左右, 手上是低温110度和中温180度焊锡. 无铅焊锡也有,很少用.
因为自己用, 所以没有搞加校正菜单, 反正已提供原程序,数据自己修改. 电路还可以改进的方向,加一个INA226+K型测温头,就可以组成自动校正温度,不过意义不大.
EC11下面的开关,是电源开关, 本来想放在后面. 因使用习惯,还是放在了前面面板上.
后面空间小,只能放8字插座.
底板是一个木板,简单刷了一下漆. 电源开关是直键开关. 因为是密封盒, 所以开始搞电路板时,就用了二个散热器. 如果不是密封盒,可不用散热器.
防水盒,因为四个角, 面板处理要费点事. 开孔, 可以先打印到纸上,再贴到盒子上, 再加工尺寸就比较准确了.
评论