|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-24 15:17 编辑 5 u/ Q Z* v- _9 a4 t9 ^6 k' v
9 j0 J4 w" ?8 L# W$ @
" L ~2 K4 K5 x& X7 L
买了一些T12焊台的配件,初步测试了其PID控制的可行性,效果非常好,! q$ L6 A( O( ^% v
24V供电,设置温度200度,从21度升温到188度(可以正常焊接了)耗时仅8秒。# e# ~8 V0 C, O$ P- T) W
哪怕用一节小小的3S 14.8V 1400mAH锂电池,
3 D0 U1 L3 k2 d# `- e升温也是20多秒,可以连续用将近2小时,对弈便携使用非常方便,
8 Y' r' M& e' {3 E$ e' r, }. |不用拖220V电源插板。0 W K2 k3 h: y5 v/ K' S
正在设计电路,使用3位数码管显示,之后开源在这里,- H/ ?# J+ t2 o2 e! j& j
让每个电工都能做自己的不会坏的T12焊台。
T J7 i' |8 P# U* ^
0 U' J; o( \: P: ]3 W8 q5 {- K
& D' K; `9 ?) D6 r' e+ u# m8 _" s初步测试效果LCD显示界面:
7 ^$ A9 U) e/ I7 ]左边一列从上到下分别是输入电压、发热电流、目标温度、当前实际温度,/ c V" ]8 ?- A8 l8 R* [1 R1 Q
右边一列从上到下分别是输出状态、发热功率、NTC温度、热电偶温度。* u7 O6 q7 h5 D/ a( g2 e; A f
* I3 e; w. |# [6 Y0 J% t; t4 w串口绘图-响应曲线,+ N1 `) G& j7 K* O) `
设置200度,从21度到188度,只需要8秒,PID曲线无超调,干净利落:
1 M" r }) p: |+ c
& J. y9 w% \+ O" z8 c- G; B
板子回来了,实测不错,很实用的数控电烙铁。" j6 r9 q; x3 _3 _% F
焊好的板子前面(PCB底层),字符I2C-OLED12864误写成I2S-OLED12864了。
: U6 P( e( c2 \* e" `% g左边为电烙铁接口航空插座GX12-5,中间为3位LED数码管,
; E. G' ^# H/ G" ^( Y. F右边为编码器(20脉冲一圈)。
. f* f8 R; E+ u1 `' m Z
( }/ x3 T6 j C7 u0 ^ }5 G; [
4 O% A8 u# {& Z7 Q/ { n
3 S9 [5 v, x2 G6 C! I$ H: v3 p
( j6 I) m Q. c# o$ q( k: |
. U: P6 R* j3 @( P5 o
X7 ^3 S- E: |/ r; x* W% U使用STC-ISP的串口助手调试, 可以使用STC-ISP里的串口绘图观察曲线 或 7段数码管观察温度, 或者使用文本显示参数.
; r$ o; D7 L0 A串口设置:115200,8,N,1.& } g5 Q; F* S, A* n8 Y
. o! o8 {- W8 Y2 O E本程序演示使用STC8H系列mcu的ADC测量热电偶和NTC温度,% Y9 j, w( { x
经过PID处理后,软件PWM控制MOSFET控制PT12电烙铁加热,达到恒温目的.
8 h0 c: z& b8 N: x# |/ |3 i程序默认串口绘图观察3条曲线:
6 C4 K9 v6 J9 O- n8 b1、目标温度(单位度)。+ {& @9 \' q7 W4 Y1 F3 {0 t
2、当前温度(单位度)。2 d3 ^+ r7 r! [9 s3 b
3、输出PWM的值。
. |- B7 v! v5 ]5 j+ T4 [& h7 S" u7 x7 z- v" v T. F) S1 h
PID整定就是根据具体的项目中的温升速度、散热速度,调整PID采样周期、比例增益、积分增益、微分增益、积分上下限。
. f W$ K# _) I _PID温控可以只用PI(微分增益设置为0)即可达到稳定,本利测试时微分增益为0.
$ M1 q( T* W: s6 O" yPID整定是一件繁琐的事,要有耐心,并且要深入理解PID的行为表现。
( P I) \& C, Q4 N% }2 n) I特别提醒:想要升温快,则就会有过冲,升温越快过冲越大。
6 q) |0 S" T$ j+ p; |0 z# H% F* v/ s
8 u# A$ d- _+ L# _ O8 a+ z
串口发送单字符命令:
; r- [% _5 s" f+ l0: 不打印信息.( E. m! H! V+ p
1: 打印绘图曲线。 [( c# A5 h% b/ |2 _( D/ V
2: 打印7段数码管显示温度。
?/ `* i, v- `, U' d3: 使用文本返回设置温度、当前温度、NTC温度、热电偶温度1 l4 ]. B' P4 \3 I
+ X3 S$ h7 k$ ^" O# d
串口发送数字字符串设置采样时间、目标温度、pGain、iGain、dGain,数据之间逗号分隔:
8 Z( k1 ~ O* \$ x% @7 C7 O150,100,120,0,
* u/ L% l2 J8 k: ?' v! [$ @5 G150: 目标温度, 单位度.
3 J6 y; L$ O- T& c4 I100: pGain比例增益% s0 C) ^. Q+ l* a9 ~
120: iGain积分增益, 1对应为0.001
" `* M ?) |) n% M+ \$ f 0: dGain微分增益( N: {# q6 ^6 d; ?7 l* t
上电后先显示设置温度2秒,之后显示当前实际温度,此时电烙铁没有启动。2 u( g; A3 A B) `& v
按一下编码器,开始加热,再按一下编码器,停止加热。# J" L# W7 `5 y1 i$ s& t
顺时针转动编码器,设置温度升高,最高温度400度。
' v( _: ~$ Z; j% u7 J0 r) ^逆时针转动编码器,设置温度降低,最低温度 40度。
# F( v. A# `! |3 k" u转动编码器第一个脉冲只切换到显示设定温度模式,设定温度不变。! u8 O3 T& R( i4 \
设置温度时,停止转动编码器2秒后恢复显示实际温度,并保存设置的温度,每次上电后会恢复这个设置的温度。7 }5 g' w# O! Q5 i* y& z1 l
输出PWM时,数码管旁边的独立的一个LED会指示PWM输出,周期200ms,亮的时间等于PWM占空比。! ?% r& X; E- p7 _8 T
本例子的PID参数是在24V、烙铁头为T12-K时调试出来的,不同厂家的烙铁头可能会有差异,电压低比较多时,' ^6 d3 x& p- {( l G% C7 h
PID参数可能不合适,实际使用24~14V都可以,14V时升温会慢好多,达25~30秒。
& C Y, \6 P/ {: r& i使用过程中检测到震动开关动作,重新定时5分钟,当没有使用烙铁,检测不到震动开关动作超过5分钟,( ]4 k, O& T K- n
就停止加热,要重新加热,按一下编码器重新启动加热,用户可以修改程序用震动开关动作来启动加热。! C; ~ n) |4 h* t! B1 N- g- p, f
1 l$ ~7 r0 i$ @( e" `
加热过程中,检测到震动开关动作,则个位数码管的小数点闪烁一下。
N2 K; ], v0 l8 o24V输入,不加热时电流25~35mA,加热时最大电流2.8A。+ ^" W+ i: U s H
T2 F7 Y. e4 t' \* j) S2 X! }/ K
* ?; R; U: Y. `* |2 R( B, J
& D8 Y p3 K" m& y! V5 J6 X$ G
6 i D* Q u9 L
( K* G$ }* Z1 K' r9 ? |
|