|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 岁月如歌21 于 2025-10-24 15:17 编辑
/ N; N$ n- g% N* y( q. s2 W5 H: Q7 R7 v( n9 G
2 i# e9 |* N4 }8 q' E买了一些T12焊台的配件,初步测试了其PID控制的可行性,效果非常好,8 b, J' p, C" S# Z ?$ o; D
24V供电,设置温度200度,从21度升温到188度(可以正常焊接了)耗时仅8秒。) E4 B0 V+ ] X2 R
哪怕用一节小小的3S 14.8V 1400mAH锂电池,& q: l/ ~" D# s: @% J
升温也是20多秒,可以连续用将近2小时,对弈便携使用非常方便,+ a! n4 A* O- Q# R$ X
不用拖220V电源插板。0 J6 q5 b/ X" M! c' v, P
正在设计电路,使用3位数码管显示,之后开源在这里,2 k7 y e2 G Z
让每个电工都能做自己的不会坏的T12焊台。
& x& K. E" M. z, `
- c" F/ A) k9 T) k4 D: @( h
: w( X5 v4 c1 ~7 ]
初步测试效果LCD显示界面:* K- l2 Z. D3 |: S9 L
左边一列从上到下分别是输入电压、发热电流、目标温度、当前实际温度,$ g% V# D5 c% q9 q
右边一列从上到下分别是输出状态、发热功率、NTC温度、热电偶温度。
9 U1 I, d S% Y1 W Q, Y2 Q
6 v; W+ m+ O/ L串口绘图-响应曲线,
8 j3 P R, l7 Y5 M设置200度,从21度到188度,只需要8秒,PID曲线无超调,干净利落:1 }0 ~4 V2 h' t2 M4 Q* A9 R B
: h' g2 {4 j9 {: j0 j. l7 u8 G板子回来了,实测不错,很实用的数控电烙铁。3 a! E. _# s( g' w$ s
焊好的板子前面(PCB底层),字符I2C-OLED12864误写成I2S-OLED12864了。/ }# l8 S& J4 w& z* v, w) H
左边为电烙铁接口航空插座GX12-5,中间为3位LED数码管,
; W& R) p' ], D0 y右边为编码器(20脉冲一圈)。$ w# ]+ I6 K L# {
9 _+ [. @0 S8 K/ j0 ^$ h
0 q- p9 T7 X# C+ t
. |: J% J- F' X3 t9 S1 a$ D
* y0 C$ i2 r' e! K8 A l! U d% ?
! T) s% h2 f/ z5 @2 k' z2 |- `# E7 T3 U. u4 b
使用STC-ISP的串口助手调试, 可以使用STC-ISP里的串口绘图观察曲线 或 7段数码管观察温度, 或者使用文本显示参数.* B) h' `& M1 U. O
串口设置:115200,8,N,1.
7 X! _# {7 f+ M$ h9 _: N# j7 W/ M; e- _% u" K: K" g U* e0 d. y& w( d
本程序演示使用STC8H系列mcu的ADC测量热电偶和NTC温度,+ W2 p* t1 L# N$ r
经过PID处理后,软件PWM控制MOSFET控制PT12电烙铁加热,达到恒温目的.) q3 x) i c9 k) N3 x% }
程序默认串口绘图观察3条曲线:! T6 w; s9 F' C! X
1、目标温度(单位度)。/ x% X' t' L& v. b
2、当前温度(单位度)。1 V: u3 M) q& T$ B
3、输出PWM的值。
- S/ m' t7 s. s& N7 l' T3 ?
, y9 @8 q1 u+ ?0 ^; ~) @PID整定就是根据具体的项目中的温升速度、散热速度,调整PID采样周期、比例增益、积分增益、微分增益、积分上下限。* f! f; k1 A, V' [8 {
PID温控可以只用PI(微分增益设置为0)即可达到稳定,本利测试时微分增益为0.' \; Q! S, x7 t# I1 E D
PID整定是一件繁琐的事,要有耐心,并且要深入理解PID的行为表现。
; P8 A6 L9 `: P8 [* A$ F特别提醒:想要升温快,则就会有过冲,升温越快过冲越大。" l, Y# \3 g! ]6 a0 n' Q
) g0 I2 E# y2 f+ @- h5 p* W( f/ y4 Q u% b
串口发送单字符命令:
. |( t$ J7 B2 B" B0: 不打印信息.# e! e3 C" I$ _2 g9 S" f
1: 打印绘图曲线。
6 p' G5 z5 g B- }6 p1 Z9 A) ~2: 打印7段数码管显示温度。
& o1 ?3 `9 R& S! k" U5 L3: 使用文本返回设置温度、当前温度、NTC温度、热电偶温度+ G( {: j9 k8 o4 b( R( c) l0 n
! v4 j! e& p5 D' F7 x- |; c
串口发送数字字符串设置采样时间、目标温度、pGain、iGain、dGain,数据之间逗号分隔:
- _( j' ~* Q* d0 ^150,100,120,0,
/ x: u( s e# w0 A+ n150: 目标温度, 单位度.
' ?9 T5 Y7 E- v# R0 Z7 ^. b100: pGain比例增益
& i7 C- k, D& |7 p* g6 ?" j120: iGain积分增益, 1对应为0.001
3 u* }; Y# X6 F2 u 0: dGain微分增益0 m1 R4 i: |2 f5 u7 o0 f5 K8 L
上电后先显示设置温度2秒,之后显示当前实际温度,此时电烙铁没有启动。
3 z3 c! I. q* a. ~! D- n4 n按一下编码器,开始加热,再按一下编码器,停止加热。
( C4 [! k- U! {: z4 P# y顺时针转动编码器,设置温度升高,最高温度400度。$ V# j/ P! W9 K8 w% j
逆时针转动编码器,设置温度降低,最低温度 40度。
% f: u4 H, u1 w# J0 d转动编码器第一个脉冲只切换到显示设定温度模式,设定温度不变。3 T. M0 i# t( u; K ~* m
设置温度时,停止转动编码器2秒后恢复显示实际温度,并保存设置的温度,每次上电后会恢复这个设置的温度。
# B) ]& h; o; j1 i" q% R输出PWM时,数码管旁边的独立的一个LED会指示PWM输出,周期200ms,亮的时间等于PWM占空比。
: e. k: f, I' v' B本例子的PID参数是在24V、烙铁头为T12-K时调试出来的,不同厂家的烙铁头可能会有差异,电压低比较多时,
5 B2 S% x7 ~' Z1 Y$ uPID参数可能不合适,实际使用24~14V都可以,14V时升温会慢好多,达25~30秒。# @5 N$ H9 |8 ?# G7 ?& J
使用过程中检测到震动开关动作,重新定时5分钟,当没有使用烙铁,检测不到震动开关动作超过5分钟,
7 Z" Q B: W# b# K1 n' k就停止加热,要重新加热,按一下编码器重新启动加热,用户可以修改程序用震动开关动作来启动加热。8 l, y5 d' {* T0 C% ?* v/ _2 X
! r/ _0 X+ g' R$ u4 l- ~, D
加热过程中,检测到震动开关动作,则个位数码管的小数点闪烁一下。
' ^- N! G. A% m& s1 W( U9 k7 h24V输入,不加热时电流25~35mA,加热时最大电流2.8A。9 I2 j5 F( N* J3 Z6 Z. Y. N1 Z
4 P6 j- R$ c+ ]5 r; L6 H+ [
9 P) o7 `$ i. \9 K3 i& v
5 h# F0 U' b2 r
9 {; J, H+ `/ `0 M$ v
" n- x! v G1 Q8 q: A. m4 c: v
|
|