T12焊台控制器制作教程 | T12烙铁 | PID增量式算法恒温控制 | 运算放大器-热电偶电压采集 | OLED屏幕显示-SPI通信 | 旋转编码器EC11用户操作
前言
购买T12烙铁的相关配件已经1年多了,期间也尝试了一些开源的T12控制器,但都没有成功,要么是配套资料少,要么是英文的,其中51和arduino的居多,STM32的较少。求人不如求己,索性自己开发一个吧!现把制作过程和工作原理记录一下。
项目开源地址:https://github.com/Cai-Zi/STM32_T12_Controller
Gitee:https://gitee.com/Cai-Zi/STM32_T12_Controller
PCB:https://oshwhub.com/caisheng/T12han-tai-kong-zhi-qi
QQ群:1091996634,密码:J20
Bibilibi:蔡子CaiZi
1. 元件清单
(1)T12烙铁头(焊贴片用刀头,焊插件用尖头)

(2)烙铁手柄(笔者买的907手柄)、硅胶线(5线)、烙铁支架(带NTC电阻10k、震动开关)、航插(5线)

(3)24V4A开关电源,给烙铁供电
https://item.taobao.com/item.htm?id=560319416660

(4)DC-DC降压模块,24V转5V,给控制板供电
https://item.taobao.com/item.htm?id=536347025767

(5)旋转编码器
https://item.taobao.com/item.htm?id=532637569029

 
(6)OLED显示屏(7脚SPI)
https://item.taobao.com/item.htm?id=562145367495

(7)STM32F103C8T6最小系统板

(8)IRF9540 MOS管P沟道,驱动电烙铁的
https://item.taobao.com/item.htm?id=522575402372

(9)SS8050三极管

(10)肖特基二极管(用来续流)

(11)运算放大器AD823

(12)3.3v稳压管
https://item.taobao.com/item.htm?id=580234927158

(13)18v稳压管
https://item.taobao.com/item.htm?id=580243199645

(14)电解电容100uF(用来稳压)

 
(15)独石电容0.1uF(用来滤波),又称104电容

 
(16)有源蜂鸣器5V的(接电即响)

(17)470Ω、1k、51k、10k、100k电阻若干

(18)500k可调电阻
https://item.taobao.com/item.htm?id=522572774132

(19)ST-LINK V2下载器
调试STM32性价比极高,可烧写程序,可断点调试

现在你的购物车已经满了,清空叭,等待元件的期间可以看看原理图,练习一下焊接技巧。
2. 焊接及原理图


滑动变阻器RP2和R34的电阻和调整至400KΩ即可。
AD823也可以用这些来代替:LM6118, LM6218, LT1122, LT1201, LT1213, LT1215, OPA2132, OPA2134, OPA2227, OPA2604, TLE2072, TLE2142, TLE2227, MCP602
稳压二极管和肖特基二极管的封装如下,有黑线的那一侧和示意图的竖线对应。

ss8050的引脚对应关系如下,原理图中标注了bce

IRF9540N的引脚对应关系关系如下,原理图中标注了GDS。

AMS1117-3.3降压芯片的封装

开关电源和烙铁外壳一定要接地!!!注意用电安全!!!
温馨提醒:第一次通电可能不成功,时刻准备断电!!!
发现烙铁有烧红的趋势,就把220V电断开,这说明MOS管一直是导通的,仔细检查MOS管电路部分。

PCB V1.1


PCB V1.2


3. 烧写固件
固件下载地址:https://github.com/Cai-Zi/STM32_T12_Controller/releases/tag/v1.2
如果你的电脑安装了keil软件,那么编译工程再进行烧录即可,这里不再赘述,可参考笔者的这篇博客:
https://blog.csdn.net/weixin_42268054/article/details/106878860
如果你的电脑没有keil软件,又不打算开发调试源代码,那么这里推荐使用STM32 ST-LINK Utility软件。软件介绍、下载、安装、使用请参考strongerHuang的这篇博客:
https://blog.csdn.net/ybhuangfugui/article/details/52597133
先将ST-LINK下载器连接STM32开发板,接线如下:
                GND   电源地
                3V3     接3.3v
                SWCLK 接DCLK
                SWDIO 接DIO
打开软件,点击该按钮进行连接;

 
点击Target》Program...;

 
点击Browse,打开焊台的hex文件,点击Start进行烧写;

 
看到提示信息即说明烧写完成。

4. 使用说明
已完成的功能包含设置温度、自动休眠、自动关机、蜂鸣器开关、恢复默认设置;
在home页面时,短按旋转编码器设置加热开关,长按进入菜单,旋转设置加热温度;

在菜单页面时,短按进入选择,再短按退出,旋转设置参数,长按退出菜单。

睡眠温度为100℃,最小设置温度为150℃,最大设置温度为400℃,建议焊接温度:300-380°C;
标准模式下,烙铁控制的温度为显示的温度;强力模式下,烙铁控制的温度比显示的温度高50℃;
PWM更新频率为390Hz,细分数为255;
使用分段式PID:温差>100℃时,全速加热;温差30~100℃时,激进的PID;温差<30℃时,保守的PID;
读者可自行使用万用表的温度计校准分度表:使用USB-TTL串口下载器和串口调试助手(115200bps)读取100℃、200℃、300℃、420℃时的ADC值;
串口下载器和蓝色板之间的连接:
GND   电源地
                3V3     接3.3v
                RXD    接PA9
                TXD     接PA10

然后更改main.h文件中的TEMP100、TEMP200、TEMP300、TEMP420即可。

5. 工作原理
这一部分是为了让读者能够理解控制原理,不想深究的话可以忽略哈~
5.1 T12烙铁头

T12官方原理图,其发热丝是一种材料,中间导线又是另外一种导线。结合点就是热电偶,也就是测温点。
下面大概说明下热电偶,说说这个烙铁头是怎么测温的。
热电偶是一种感温元件。它直接测量温度,并把温度信号转换成热电动势信号, 通过电气仪表转换成被测介质的温度。热电偶测温的基本原理是两种不同成份的材质导体组成闭合回路,当两端存在温度梯度时,回路中就会有电流通过,此时两端之间就存在电动势——热电动势,这就是所谓的塞贝克效应(Seebeck effect)。两种不同成份的均质导体为热电极,温度较高的一端为工作端,温度较低的一端为自由端。
通过分析就可以知道,发热丝本身即是发热体,也是热偶的工作端。
参考:https://www.geek-workshop.com/forum.php?mod=viewthread&tid=72
5.2 热电偶与热电势的计算
鲁迅说过:欲控之,必测之。(鲁迅:我没说过这话,不过听着在理!)
我们先来测量烙铁的温度,再用PID进行闭环控制它的温度,实现恒温。
六种热电偶分度表:S型/K型/B型/E型/J型/T型
https://www.doc88.com/p-276403097011.html
实验得到20℃时的热电势约为0.11mV,80℃时的热电势约为0.60mV,根据各个类型的分度表,可以确定烙铁头的热电偶似乎属于S型。

https://tech.hqew.com/fangan_1628934

常用热电偶的拟合多项式系数,对应温度计算公式为:T=A0*U^0+A1*U^1+...+Ai*U^i;其中U为测得的电动势(V),T为热电偶两端的温度(℃)。

但是经过自己使用万用表的温度计测得热电压,得到温度-电压的关系如下图,发现烙铁的热电偶和S型不符!还好两者在小区间内基本是线性关系,那就只能使用自己测量的电压值了。

1 from pylab import *
2 x=[10*i for i in range(0,38)]
3 y=[0,55,113,150,189,384,576,731,908,1102,
4 1239,1482,1668,1863,2100,2206,2508,2731,3046,3163,
5 3408,3658,3954,4146,4389,4688,4937,5213,5495,5653,
6 5714,5913,6009,6180,6690,6956,7325,7565]
7 mpl.rcParams['font.sans-serif'] = ['SimHei'] # 添加这条可以让图形显示中文
8 plt.plot(x, y, 'r-', color='#4169E1', alpha=0.8, linewidth=1)
9 plt.xlabel('温度[℃]')
10 plt.ylabel('电压[uV]')
11 plt.title('温度-电压曲线')
12 plt.show()
5.3 运算放大器电路
由于热电偶的热电压只有几mV,无法直接使用单片机的ADC采样,需要放大其电压值,所以使用运算放大器。
非反相闭环放大器如下图(我们用的就是这样的连接)。假设这个闭环放大器使用理想的运算放大器,则因为其开环增益为无限大,所以运算放大器的两输入端电压差几乎为零,其输出与输入电压的关系式如下:
Vout = ((R2 / R1) + 1) * Vin

参考:http://www.elecfans.com/baike/bandaoti/bandaotiqijian/20100309184249.html
5.4 增量式PID算法
PID的定义:
P:Proportion(比例),就是输入偏差乘以一个常数。
I:Integral(积分),就是对输入偏差进行积分运算。
D:Derivative(微分),对输入偏差进行微分运算。
其中,输入偏差=读出的被控制对象的值-设定值。
P用于控制调节力度,P越大,调节作用越激进,P调小会让调节作用更保守;
D的作用就是让物理量的速度趋于0,只要这个量具有了速度,D就向相反的方向用力,尽力刹住这个变化。D参数越大,向速度相反方向刹车的力道就越强。
I 的作用就是,减小静态情况下的误差,让受控物理量尽可能接近目标值。I 在使用时还有个问题:需要设定积分限制。防止在刚开始加热时,就把积分量设得太大,难以控制。
5.4.1 常用的PID模型
PID控制并不一定要三者都出现,也可以只是PI、PD控制,关键决定于控制的对象。比如我们要控制一个人,让他以PID的控制方式来行走110步后停下来。
(1)P控制
比例控制就是让他按照一定的比例走,然后停下。比如比例系数为108,则走一次就走了108步,然后就不走了。P比例控制是一种最简单的控制方式,控制器的输出与输入误差信号成比例关系。但是仅有比例控制时系统输出存在稳态误差。比如上面的只能走到108,无论怎样都走不到110。
(2)PI控制
比例-积分控制就是按照一定的步伐走到112步然后回头接着走,走到108步位置时,然后又回头向110步位置走。在110位置处来回晃荡几次,最后停在110步的位置。说明:在积分I控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统来说,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差的影响取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大,从而使稳态误差进一步减小,直到等于0。因此,比例+积分(PI)控制器可以使系统在进入稳态后无稳态误差。
(3)PD控制
比例-微分控制就是按照一定的步伐走到一百零几步后,再慢慢地走向110步的位置靠近,如果最后能精确停在110步的位置,就是无静差控制;如果停在110步附近(如109步或111步位置),就是有静差控制。在微分控制D中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,原因是存在较大惯性组件(环节)或滞后组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差作用的变化“超前”,即在误差接近于零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入“比例P”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势。这样,具有比例+微分的控制器就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例P+微分D(PD)控制器能改善系统在调节过程中的动态特性。
5.4.2 PID算法结构
来点公式吧~
PID算法的数学模型为:

其中,Kp为比例参数,Ek为本次的偏差值,Sk为积分成分,Dk为微分成分。
积分成分

其中T为采样周期(s), Ti为积分时间(s)。
微分成分

其中Td为微分时间(s)。
在实际应用中,PID算法具体分两种:一种是位置式PID算法,一种是增量式PID算法。
a)位置式PID算法表达式:

Out即为本次运算的结果,利用Out可以去驱动执行机构输出对应的控制信号,例如温度控制就可以控制PWM的宽度,电磁阀就可以改变电磁线圈电流以改变阀门开度,或者是可控硅的导通角度等;这种PID算法计算出的结果(Out值)表示当前控制器应该输出的控制量,所以称为位置式(直接输出了执行机构应该达到的状态值)。
b)增量式PID算法表达式:

式中, E(k)为本次偏差值,E(k-1)为上次偏差值,E(k-2)为上上次偏差值。增量式PID的计算只需要最近3次的偏差(本次偏差,上次偏差,上上次偏差),不需要处理器存储大量的历史偏差值,计算量也相对较少,容易实现。
根据本系统控制对象为加热电阻两端电压,以及增量型较位置型算法有累加误差小、误动作影响小、计算量小和编程方便的特点,本系统选用PID增量型控制算法。
参考链接
https://blog.csdn.net/weixin_42068537/article/details/83684234
https://blog.csdn.net/weixin_44690490/article/details/113087363
5.4.3 PID参数的整定
参考链接
https://blog.csdn.net/weixin_42068537/article/details/83684234
https://blog.csdn.net/cp32212116/article/details/42033131
《PID整定理论与实践--冯少辉》
PID控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作﹔(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期﹔(3)在一定的控制度下通过公式计算得到PID控制器的参数。
根据经验,闭环响应曲线不平滑绝大部分都是微分时间太大导致的。因此推荐:Td<=Ti/4
为了减少需要整定的参数,首先可以采用PI控制器。为了保证系统的安全,在调试开始时应设置比较保守的参数,例如比例系数Kp不要太大,积分时间Ti不要太小,以避免出现系统不稳定或超调量过大的异常情况。给出一个阶跃给定信号,根据被控量的输出波形可以获得系统性能的信息,例如超调量和调节时间。应根据PID参数与系统性能的关系,反复调节PID的参数。
如果阶跃响应的超调量太大,经过多次振荡才能稳定或者根本不稳定,应减小比例系数、增大积分时间;如果阶跃响应没有超调量,但是被控量上升过于缓慢,过渡过程时间太长,应按相反的方向调整参数。
如果消除误差的速度较慢,可以适当减小积分时间,增强积分作用。
反复调节比例系数Kp和积分时间Ti,如果超调量仍然较大,可以加入微分控制,微分时间从0逐渐增大,反复调节控制器的比例、积分和微分部分的参数。
在PID公式中,常数系数Kp,Ti,Td等须不断调节,找到适合自己的控制对象的参数。这里有一个经典的经验试凑口诀:
参数整定找最佳, 从小到大顺序查。
先是比例后积分, 最后再把微分加。
曲线振荡很频繁, 比例度盘要放大。
曲线漂浮绕大弯, 比例度盘往小扳。
曲线偏离回复慢, 积分时间往下降。
曲线波动周期长, 积分时间再加长。
曲线振荡频率快, 先把微分降下来。
动差大来波动慢, 微分时间应加长。
理想曲线两个波, 前高后低四比一。
一看二调多分析, 调节质量不会低。
结束语
DIY有风险,操作需谨慎!安全第一,涉及到220V电压,一定要接地!!!
T12焊台控制器制作教程 | T12烙铁 | PID增量式算法恒温控制 | 运算放大器-热电偶电压采集 | OLED屏幕显示-SPI通信 | 旋转编码器EC11用户操作的更多相关文章
- J20航模遥控器开源项目系列教程(一)制作教程 | 基础版V1.0发布,从0到1
		我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/C ... 
- Mac系统U盘制作教程
		您可以将外置驱动器或备用宗卷用作安装 Mac 操作系统的启动磁盘. 以下高级步骤主要适用于系统管理员以及熟悉命令行的其他人员.升级 macOS 或重新安装 macOS 不需要可引导安装器,但如果您要在 ... 
- Dash文档制作教程
		前言 什么是Dash 面向程序员的文档库(Mac) 代码片段管理工具 这是强烈推荐给每天在各种API文档中摸爬滚打的程序员们的神器. 为什么要自己制作文档 官方的源中没有相关文档 文档在离线下体验更好 ... 
- 24个 HTML5 & CSS3 下拉菜单效果及制作教程
		下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ... 
- 10个优秀的 HTML5 & CSS3 下拉菜单制作教程
		下拉菜单是一个很常见的效果,在网站设计中被广泛使用.通过使用下拉菜单,设计者不仅可以在网站设计中营造出色的视觉吸引力,但也可以为网站提供了一个有效的导航方案.使用 HTML5 和 CSS3 可以更容易 ... 
- 10个实用的 CSS3 按钮效果制作教程
		人们往往喜欢那些有更多互动元素的网站,因此现在很多设计师专注于他们的 CSS3 技能.这是因为 CSS3 技能可以帮助他们在很大的程度上实现所需的吸引力.这里分享的10个优秀的 CSS3 按钮效果制作 ... 
- 20个漂亮 CSS3 按钮效果及优秀的制作教程
		在这篇文章中,我们编译了一组有用的 CSS3 动画按钮教程和引人注目的实验.正如我们都知道的,CSS3在网页设计方面是最重要和最关键的,可以使您的网站对访客更具吸引力和互动性.你可以学习这些教程和试验 ... 
- PPT制作教程:如何制作ppt
		PowerPoint(PPT)是专门用于制作演示文稿(俗称幻灯片).广泛运用于各种会议.产品演示.学校教学等.学会如何制作ppt,成为提升工作效 率的好帮手.PPT包含有很多的功能,我们可以根据个人喜 ... 
- WordPress主题制作教程5:循环
		wordpress循环分两种,一种是自定义循环,一种是默认循环. 自定义循环:根据指定参数进行实例化 调用所有页面,post_type值:page对应页面,post对应文章 <?php $arg ... 
随机推荐
- ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
			毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ... 
- Dapp开发petshop——truffle官方例程
			truffle-pet-shop pet-shop是truffle的官方例程. 之前参考https://learnblockchain.cn/2018/01/12/first-dapp/的中文教程,但 ... 
- MyBatis功能点一:二级缓存cache
			对于Mybatis缓存分作用域等维度区别一.二级缓存特点如下图: 分析缓存源码首先得找到缓存操作的入口:前面已经分析,sqlsesion.close()仅对一级缓存有影响,而update等对一/二级缓 ... 
- mysql视图,索引
			一.视图 View 视图是一个虚拟表,是sql语句的查询结果,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据,在使用视图时动态生成.视图的数据变化会影响到基表,基表的数据变化也会 ... 
- [LeetCode]1512. 好数对的数目
			给你一个整数数组 nums . 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 . 返回好数对的数目. 示例 1: 输入:nu ... 
- 认识 LLVM
			简介 LLVM是一套提供编译器基础设施的开源项目,是用 C++ 编写,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端.它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期. ... 
- ensp练习:防火墙安全策略配置
			一.实验目的:1. 了解华为防火墙安全策略.2. 掌握华为防火墙安全策略的配置.二.实验仪器:计算机.华为ensp模拟器.华为防火墙三.实验内容:在这里插入图片描述根据网络拓扑图如上(交换机不需要配置 ... 
- embarrass的writeup
			大家好,这次我要为大家带来都是攻防世界misc部分embarrass的writeup. 首先下载附件,是一个压缩包,解压后找到一个流量包.用wireshark打开,直接在搜索框中输入flag{ ... 
- Virtual Box 中的虚拟系统无法调整分辨率(无法自适应窗口大小)
			关于 Virtual Box 中安装好虚拟机后无法调整分辨率,即无法随 vbox 窗口大小自动调整内部虚拟机的屏幕. 网上找了百度了一遍,很多方法并不凑效,好在最后解决了,现将过程记录,以飨来者. 1 ... 
- 号外!号外!这个敏捷高效的大数据bi看板可以免费使用啦!
			随着信息革命的深入推进,数据已经成为国家基础性战略资源,各个行业开始重视数据分析,企业不同,数据分析需求当然不一样,如销售行业需要对商品进行销售分析:网站运营需要进行用户.渠道.流量等信息分析:制造行 ... 
