<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

采用PID算法的智能溫度控制器

芯航路IOT ? 來源:LONGSHEN1 ? 作者:LONGSHEN1 ? 2023-12-08 13:57 ? 次閱讀

一、功能說明

采用PT100精密測溫電阻作為溫度傳感器,將其采集到的溫度數據傳輸至單片機進行轉換,再由單片機進行PID控制,生成相應的PWM信號,該信號被SSR接收并轉換為對發熱片的輸出。該系統通過PID輸出的PWM信號來精確控制發熱片的溫度,同時通過控制加熱頻率來實現與發熱片環境的熱平衡,確保系統溫度的穩定性。此外,還配備了一個環境溫度傳感器,以便在PT100溫度受環境影響而發生變化時進行相應的補償。

二、硬件設計

2.1 原理框圖

wKgaomVpdhGAZR_GAAJ0hmJqAQQ212.png

2.2 各功能框圖說明

2.2.1 MCU最小系統

該MCU采用了宏晶科技的STC8A8K64D4 LQFP64封裝,以下是其主要特點:

wKgZomVpdlaARk74AAD4kFK7TNk037.png

STC8A8K64D4具備內置的高精度時鐘單元和硬件復位電路,因此在使用時無需外部時鐘電路和復位電路,有助于降低成本。

在單片機電源輸入部分增加一個100nF的旁路電容,其主要功能包括:

1、濾除電源上的高頻噪聲。

2、儲能,當負載需要瞬時電流時,電容率先為其提供電流,減小電源產生的波動。

3、給高頻信號提供最近的低阻抗回流路徑,減少對其他芯片電源的干擾。

wKgZomVpdquARXyHAAGXfBumIWY795.png

2.2.2 電源電路

電源電路采用220V交流電轉5V直流電的電源模塊,或者可以通過外部適配器直接提供5V直流電。該電源模塊具有低紋波噪聲、過載保護、短路保護以及過熱保護等功能,以確保系統的穩定性和可靠性。電路圖描述如下:

wKgaomVpdtGARgF9AADjeQSk_hA554.png

R8 - 壓敏電阻,主要用在電路承受過壓時進行電壓鉗位,吸收多余的電流以保護后級敏感元件。

P2 - 220V交流輸入。

P1 - 保險絲的作用是過載保護,當電流異常升高到一定程度時,保險絲會熔斷切斷電流,從而保護電路中的電線或防止短路引起火災。

U8 - 220V交流電轉5V直流電的電源模塊。

TV1 - 通過利用該器件的非線性特性,將過電壓鉗制到一個較低的電壓值,實現對后級電路的保護。

C5/C6 - 主要用于濾除由電源輸出的直流電壓中所含的雜波和噪聲,并將其平滑處理為一個穩定的直流電壓輸出。

F1 - 可以使用0歐姆電阻進行短接,或者采用自恢復保險絲,這是一種具有自恢復特性、可反復使用的非線性過流保護器件。

2.2.3 按鍵電路

按鍵電路采用點觸按鍵,當用戶按下按鍵時,電路會檢測到按鍵的接觸,并產生低電平信號,從而觸發相應的操作。電路圖描述如下:

wKgaomVpduWAIhXSAAB-7iEZsI4588.png

KEY1/KEY2/KEY3 - 點觸按鍵,點觸按鍵的工作原理:按鈕與觸點機械作用,按下按鈕,彈簧收縮,觸點接觸導電條,電路接通;松開按鈕,彈簧恢復原狀,觸點離開導電條,電路斷開。

C7/C8/C9 - 在點觸按鍵上連接一個下拉電容,其主要作用是消除按鍵抖動。當按鍵被按下時,電容會首先充電,從而抑制了按鍵的機械性抖動,這樣就能夠確保單片機程序正確地識別和分辨當前的電平狀態。

2.2.4 PT100采集電路

PT100鉑電阻溫度傳感器,其阻值隨著溫度的變化而呈現相應的變化。為了準確測量PT100的阻值,電橋采集電路是必不可少的工具。該電路由四個電阻組成,其中一個是PT100,其他三個電阻則為已知固定電阻。當PT100的溫度發生改變時,其阻值也會隨之改變,從而打破了電橋的平衡狀態,導致電橋輸出一個微小的電壓信號。這個電壓信號經過放大電路的放大后,將被轉換成數字信號并傳遞給單片機進行處理。電路圖描述如下:

wKgZomVpdviAUBCEAADPg-u0u_U730.pngwKgaomVpdwSAT-S6AAE-a3E6x14588.png

2.2.5 DS18B20電路

DS18B20電路主要采集環境溫度,在PT100溫度控制中,環境溫度的變化會對溫度測量產生影響,因此需要進行溫度補償。有效地消除環境溫度對溫度測量的影響,提高溫度測量的精度。DS18B20是一種數字溫度傳感器,它可以通過1-Wire協議與單片機通信,實現溫度的測量。在電路設計中,需要將DS18B20連接到單片機的IO口,并使用電橋采集電路來測量溫度電路圖描述如下:

wKgaomVpdxqALtqHAABQYv2C8bI303.png

R3 - DS18B20是一款單總線溫度傳感器,其數據線采用漏極開路方式,因此它只能輸出低電平而無法輸出高電平。為了保持信號的穩定性,需要借助外部強上拉電阻來拉高電平。

C4 - 濾波電容

2.2.6 繼電器控制電路

單片機智能調控PWM信號,精細控制發熱片溫度,同時自動調節加熱頻率,與環境溫度完美匹配,實現智能熱平衡。

wKgaomVpdy-ARlIVAACcmhYQS4Y684.png

R1 - 串聯電阻的作用是限制電流,使得電路中的元器件不會因為電流過大而被損壞。

R5 - 三極管下拉電阻的作用是為了保證三極管在初始狀態下處于穩定關斷的狀態。

Q1 - 單片機GPIO驅動能力有限,繼電器和電磁閥等大功率負載超出其IO驅動能力。繼電器控制端為電磁線圈(電感),關斷時產生自感電壓易燒壞單片機,因此需通過三極管控制繼電器。

D1 - 二極管的作用是吸收繼電器線圈斷電時產生的自感電壓,防止三極管被高電壓損壞。

C2 -電容在電路中的作用是緩解繼電器線圈電流的突變,避免產生過高的感應電動勢,從而保護電路中的其他元器件免受電壓沖擊。

2.2.7 蜂鳴器電路

蜂鳴器是一種可以發出聲音的電子元件,通過PWM(脈沖寬度調制)控制技術來調節聲音的大小。為了實現對蜂鳴器的控制,我們需要使用三極管。三極管是一種半導體器件,具有電流放大作用,可以將微弱的信號放大成較大的電流,從而實現對蜂鳴器的有效控制。

wKgaomVpd0mAd0kNAACgKCRMTQs852.png

R2 - 串聯電阻的作用是限制電流,使得電路中的元器件不會因為電流過大而被損壞。

R7 - 三極管下拉電阻的作用是為了保證三極管在初始狀態下處于穩定關斷的狀態。

Q2 - 蜂鳴器的工作電流通常較大,單片機的I/O口無法直接驅動,但AVR可以驅動小功率蜂鳴器。因此,需要使用三極管來控制蜂鳴器的通斷。

D1 - 二極管的作用是吸收蜂鳴器斷電時產生的自感電壓,防止三極管被高電壓損壞。

C2 -蜂鳴器回路上并聯電容的作用是為了保護蜂鳴器,讓其兩端的電壓不能突變,吸收浪涌電壓。

2.2.8 LED電路

wKgaomVpd1eAbdr1AABbIuzJlmM440.png

R9/R12/R14 - 限流電阻的作用是限制電流,保護LED不被過電流損壞。

2.2.9 數碼管顯示電路

TM1640是一種專門用于驅動控制LED(發光二極管顯示器)的電路,其內部集成了MCU數字接口、數據鎖存器以及LED驅動等電路。該電路主要應用于電子產品LED顯示屏的驅動。從硬件角度來看,單片機的GPIO驅動能力相對有限,而數碼管需要的驅動電流較大,基本達到了單片機驅動電流的極限。在軟件方面,數碼管的驅動需要實時掃描,如果直接使用單片機進行驅動,需要編寫較為復雜的程序,如果程序任務較多,其他任務占用時間較長,數碼管不能實時掃描,數碼管容易閃爍。因此,使用TM1640電路可以有效地解決這些問題,使得LED顯示屏的驅動更加簡單、穩定和可靠。

wKgZomVpd3GAM5YTAAE7O9xyb-k612.pngwKgZomVpd32AZwd4AAEsm_Xvxd0173.png

R10/R11 - 使用TM1640芯片時,需要連接CLK和DIN引腳到單片機的GPIO口,并加上上拉電阻,以確保數據傳輸穩定。

C10/C11 - 在TM1640芯片的電源處加上濾波電容,是為了讓電路中的元器件不會受到電源噪音的影響,這樣可以讓電路更加穩定。

三、軟件設計

3.1 程序框圖

wKgZomVpd5qAMkJFAAOmmIrihRo453.png

3.2 各功能模塊說明

3.2.1 主函數

主函數采用單片機時間片輪詢法的程序架構,用于在不使用操作系統的情況下實現多任務的并發執行。它的基本原理是利用定時器中斷來劃分時間片,每個時間片對應一個任務,通過任務標志和任務函數來控制任務的運行和切換。

單片機時間片輪詢法的主要步驟有:

定義任務結構體,包含任務函數、任務運行標志、任務計時器和任務計時器初值等成員。

定義任務數組,初始化各個任務的結構體,并指定任務的運行間隔時間。

編寫定時器中斷服務函數,用于實現時間輪片的功能。在每個時鐘節拍中,逐個檢查任務的計時器是否為零,如果為零,則置任務運行標志為1,同時恢復計時器初值;如果不為零,則計時器減一。

編寫任務處理函數,用于在主循環中執行各個任務。在每個循環中,逐個檢查任務的運行標志是否為1,如果為1,則調用任務函數,并清除運行標志。

編寫主函數,進行系統的初始化和任務的處理。

時間片輪詢法流程圖

wKgZomVpd66ARrJ1AACEvrXI8cs555.png

定時中斷服務函數每間隔1ms中斷一次,在中斷中判斷各個任務的時間是否到0,如果定時值不為0,定時器減一,直到為零。為0后定時器重新賦值間隔時間,并置任務執行標志。

wKgZomVpd8aAbp5tAACLfmbbHbA661.png

在main函數里面判斷任務執行標志,并執行響應函數。

wKgaomVpd96ATyaIAABofa6wYYA647.png

3.2.2 按鍵模塊

機械式按鍵在按下或釋放時,會因機械彈性作用產生抖動,持續時間約為5-10ms。在此期間檢測按鍵的通與斷可能導致判斷出錯,需要采取消抖措施。如下圖,消抖方法分為硬件消抖和軟件消抖,硬件消抖就是在按鍵上并聯一個電容,利用電容的充放電特性對抖動過程中產生的電壓毛刺進行平滑處理,從而實現消抖。軟件消抖可以采用延時或者循環檢測的方式去掉后沿抖動。

wKgZomVpd_GAH-9SAAK8_pqsHC8533.png

該程序采用狀態機方式處理點觸按鍵,根據不同按鍵狀態執行不同操作,實現更靈活高效的控制方式。狀態機設計可精確處理每個按鍵動作,確保操作準確可靠。

狀態機的四要素

現態:狀態機當前狀態。

觸發條件:改變當前狀態的發生條件。

動作:狀態改變產生相應的動作。

次態:狀態機激活觸發條件后跳轉到的下一狀態。

wKgaomVpeAaAB9E3AAIJXJZ0WM8722.pngwKgZomVpeBiAfD2MAAMCi7xJj4M148.png

3.2.3 PT100采集模塊

PT100采集模塊使用了一種高效且可靠的方法來獲取溫度值。該模塊通過查表的方式得到實際溫度值,將采集到的電壓信號轉換成電阻值,然后根據這個電阻值查詢預先設定的表格,從而得到準確的溫度讀數。這種方法不僅簡化了處理過程,而且提高了測溫的精度和響應速度。

wKgZomVpeCuAMbULAADJRQR0uH0591.png

3.2.4 PID算法

該程序采用了增量式PID算法進行控制。增量式PID算法是一種常用的控制算法,其顯著特點在于將積分環節的累積作用進行了替換,從而避免了積分環節對計算性能和存儲空間的過多占用。該算法根據當前誤差和上一次誤差的差值來計算控制量的增量。該算法由三個組成部分:比例環節、積分環節和微分環節。比例環節根據當前誤差計算出比例輸出,積分環節根據當前誤差和歷史誤差的累加值計算出積分輸出,微分環節根據當前誤差和歷史誤差的差值計算出微分輸出。雖然增量式PID算法具有響應速度快的優點,但需要保存上一次的誤差值,因此容易受到累計誤差的影響。

wKgaomVpeG6AbH2hAABtX0UYwoo869.pngwKgaomVpeE2AGj3nAADtQHr29fY858.png

工業控制領域,PID參數的調試是非常重要的。PID控制器是一種常用的控制算法,它根據誤差信號和過去的狀態來調整控制輸出,以實現對于特定過程的精確控制。

通過串口調試PID參數,可以實現對控制系統的精細調整,以達到更好的控制效果。在進行串口調試時,需要使用特定的工具或軟件,以便向控制系統發送命令并接收反饋信息。

wKgaomVpeIaAXElcAAKtobHBBqM649.png

四、資料獲取

具體源代碼和原理圖可以前往嘉立創-硬創社搜索“智能溫控器”。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6008

    文章

    44087

    瀏覽量

    623127
  • PID算法
    +關注

    關注

    2

    文章

    169

    瀏覽量

    24143
  • PID
    PID
    +關注

    關注

    35

    文章

    1448

    瀏覽量

    84168
  • 溫度控制器
    +關注

    關注

    1

    文章

    172

    瀏覽量

    33600
  • Pt100
    +關注

    關注

    9

    文章

    170

    瀏覽量

    68547
收藏 人收藏

    評論

    相關推薦

    基于PID算法溫度控制

    利用安芯一號單片機控制溫度加熱,軟件實現PID算法,利用溫度傳感
    發表于 11-04 15:34

    溫度控制器

    `51溫度控制器題目要求: 1.基本要求 A.溫度設定范圍為40~90℃,最小區分度為1℃,標定溫度≤1℃。 B.環境溫度降低時(例如用電
    發表于 05-25 22:31

    PID控制器開發筆記之一:PID算法原理及基本實現

    ,卻也需要下一定功夫。首先我們從PID算法最基本的原理開始分析和設計這一經典命題。PID算法的執行流程是非常簡單的,即利用反饋來檢測偏差信號,并通過偏差信號來
    發表于 04-21 16:58

    模糊PID控制算法如何控制勻速升溫

    ,誤差較小時采用模糊PID控制,實現了2種控制方法的優勢互補。 同時在此基礎上,給出了Fuzzy PID
    發表于 05-30 10:38

    如何設計基于FPGA的溫度模糊自適應PID控制器?

    溫度是工業生產過程中一個主要的被控參數。目前,大多采用常規PID控制器實現對溫度控制。
    發表于 11-04 06:01

    FOA優化算法整定PID控制器參數

    【Simulink】FOA優化算法整定PID控制器參數(五)—— 一階帶時延的被控對象目錄【Simulink】FOA優化算法整定PID
    發表于 08-30 06:46

    PID控制器的作用到底是什么

    文章目錄PID控制器1. 控制器1.1 電機速度控制系統1.2 溫度或水位控制系統1.3 小小總
    發表于 09-07 07:39

    基于單片機PID算法溫度控制系統設計資料分享

    恒溫控制器廣泛應用于工業需要溫度控制的地方,電子產品出貨前也要進行恒溫老化測試,溫度控制器必不可少,而
    發表于 11-10 07:30

    基于MBP算法PID控制器設計

    針對一般BP 算法存在的不足,提出一種改進的BP 算法,并將其應用于PID 控制器的參數設計中,并且克服了常規的PID
    發表于 08-07 09:42 ?18次下載

    pid算法_什么是pid算法

    PID控制器是一種最優控制。本文講述了增量式PID算法原理與數字PID
    發表于 01-01 11:58 ?1.1w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>算法</b>_什么是<b class='flag-5'>pid</b><b class='flag-5'>算法</b>

    溫度控制PID算法的C語言程序

    溫度控制PID算法的C語言程序,以前寫論文收集的一些資料
    發表于 06-06 10:00 ?62次下載

    PID控制器PID算法的研究

    PID 算法 在過程控制中,PID 控制器,一直是應用最為廣泛的一種自動控制器;
    發表于 11-21 17:03 ?28次下載

    采用基于BP神經網絡的PID控制方法實現反應釜溫度控制系統的設計

    常規PID控制算法對于大部分工業過程的被控對象控制效果良好,但是對于反應釜溫度的時間滯后問題,PID
    的頭像 發表于 06-18 08:14 ?4911次閱讀
    <b class='flag-5'>采用</b>基于BP神經網絡的<b class='flag-5'>PID</b><b class='flag-5'>控制</b>方法實現反應釜<b class='flag-5'>溫度</b><b class='flag-5'>控制</b>系統的設計

    溫度控制PID算法及C程序實現

    溫度控制PID算法j較為復雜,下面結合實際淺顯易懂的闡述一下PID控制理論,將
    發表于 05-31 16:31 ?104次下載

    基于單片機PID算法溫度控制系統設計(畢設)

    恒溫控制器廣泛應用于工業需要溫度控制的地方,電子產品出貨前也要進行恒溫老化測試,溫度控制器必不可少,而
    發表于 11-05 09:35 ?38次下載
    基于單片機<b class='flag-5'>PID</b><b class='flag-5'>算法</b><b class='flag-5'>溫度</b><b class='flag-5'>控制</b>系統設計(畢設)
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>