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電壓,一定要接地!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM