基于雙單片機(jī)的電烤箱溫度控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)生產(chǎn)生活中對(duì)溫度控制的高精度要求,利用雙單片機(jī)(SCM)作為硬件平臺(tái),融合無(wú)線傳輸技術(shù)、PWM波產(chǎn)生技術(shù),采用PID算法,設(shè)計(jì)了一種基于雙單片機(jī)的電烤箱溫度控制系統(tǒng)。采用多點(diǎn)測(cè)溫,提高溫度控制精度;利用無(wú)線傳輸芯片nRF24L01進(jìn)行兩單片機(jī)之間的通信,實(shí)現(xiàn)檢測(cè)和控制的分離。同時(shí)進(jìn)行鍵盤顯示電路設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)的輸入、顯示功能;進(jìn)行超限報(bào)警電路的設(shè)計(jì),防止溫度出現(xiàn)大的超調(diào)。經(jīng)過硬件結(jié)合軟件調(diào)試,整個(gè)系統(tǒng)運(yùn)行良好,很好的實(shí)現(xiàn)了溫度控制。
在生產(chǎn)生活過程中,控制對(duì)象各種各樣,溫度控制在生產(chǎn)過程中占有相當(dāng)大的比例,其關(guān)鍵在于測(cè)溫和控溫兩方面。由于單片機(jī)具有集成度高、功能強(qiáng)、體積小、價(jià)格低、抗干擾能力等優(yōu)于一般CPU的優(yōu)點(diǎn),因此,在要求高控制精度和低成本的工業(yè)測(cè)控系統(tǒng)中,通常采用單片機(jī)作為數(shù)字控制器取代模擬控制器。文獻(xiàn)中采用AD590作為溫度傳感器預(yù)設(shè)多組PID參數(shù)實(shí)現(xiàn)溫度控制;文獻(xiàn)采用單個(gè)87C51作為控制器,兼顧檢測(cè)、控制等任務(wù)實(shí)現(xiàn)溫度控制。此二者均采用AD590溫度傳感器進(jìn)行溫度測(cè)量,其外圍電路復(fù)雜、成本高且精確度低;針對(duì)這些問題,該論文采用數(shù)字傳感器克服其缺點(diǎn)。同時(shí)該論文采用雙單片機(jī)來實(shí)現(xiàn)控制,采用無(wú)線方式進(jìn)行信號(hào)傳輸,以滿足在特定使用環(huán)境下,實(shí)現(xiàn)遠(yuǎn)距離的控制。
1 溫度控制系統(tǒng)的整體設(shè)計(jì)
利用單片機(jī)實(shí)現(xiàn)對(duì)電烤箱的穩(wěn)定控制,其控制系統(tǒng)以單片機(jī)為控制核心,采用數(shù)字PID的控制算法實(shí)現(xiàn)自動(dòng)控制,達(dá)到控制溫度的恒定。將多個(gè)溫度傳感器置于電烤箱中,傳感器測(cè)得多個(gè)信號(hào),將這些信號(hào)加權(quán)平均之后與設(shè)定溫度值的給定電壓進(jìn)行比較,采用PID算法,得到控制信號(hào),來驅(qū)動(dòng)執(zhí)行器動(dòng)作,達(dá)到理想結(jié)果。圖1為系統(tǒng)的總體結(jié)構(gòu)框圖。
系統(tǒng)選擇STC89C52RC作為主控芯片,既滿足大內(nèi)存、高速率和通用性的要求,又遵循經(jīng)濟(jì)節(jié)約的原則。利用檢測(cè)到的信號(hào)和給定溫度值對(duì)應(yīng)的信號(hào)之間的偏差,采用PID算法得到控制信號(hào),再通過處理放大去驅(qū)動(dòng)執(zhí)行器。而為了能實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,設(shè)計(jì)采用雙單片機(jī),利用無(wú)線模塊進(jìn)行數(shù)據(jù)傳送,達(dá)到遠(yuǎn)程顯示、控制和超限報(bào)警等功能。
2 溫度控制系統(tǒng)的硬件設(shè)計(jì)
系統(tǒng)的硬件設(shè)計(jì)主要包括測(cè)溫接口電路、無(wú)線傳輸接口電路、按鍵和顯示電路和超限報(bào)警電路的設(shè)計(jì),其系統(tǒng)兩個(gè)單片機(jī)及其外圍電路圖分別如圖2和3所示。
2.1 測(cè)溫接口電路設(shè)計(jì)
采用數(shù)字溫度傳感器DS18B20進(jìn)行溫度采集。為提高精度,使用四個(gè)傳感器通過軟件求取平均值。4個(gè)DS18B20可以接到一個(gè)I/O口上,但需要使用獨(dú)立電源;由于該系統(tǒng)I/O口充足,其連接采用一個(gè)傳感器對(duì)應(yīng)一個(gè)I/O口的方式,如圖2所示。若需要更多傳感器,可以考慮采用多個(gè)傳感器對(duì)應(yīng)一個(gè)I/O口的連接方式。
2.2 無(wú)線傳輸接口電路設(shè)計(jì)
采用nRF24L01芯片實(shí)現(xiàn)無(wú)線傳輸,其主要引腳排列如圖4所示。各引腳具體功能如下:CE為發(fā)射和接收的使能端;CSN為SPI的使能端;SCK為SPI時(shí)鐘輸入;MOSI為SPI數(shù)據(jù)主輸從入端;MISO為SPI數(shù)據(jù)主入從輸端;IRQ為中斷輸出;VCC為電源端,接3.3 V直流電源。
2.3 按鍵和顯示電路設(shè)計(jì)
2.3.1 按鍵接口電路設(shè)計(jì)
設(shè)計(jì)一共接4個(gè)按鍵。其中3個(gè)是用到的,另外一個(gè)按鍵用于功能擴(kuò)展。其中3個(gè)按鍵的功能分別為:切換鍵、加一鍵和減一鍵,切換鍵用做顯示所測(cè)溫度與設(shè)定溫度值顯示的切換,加一鍵和減一鍵用來改變?cè)O(shè)定值。
2.3.2 顯示接口電路設(shè)計(jì)
采用4位共陽(yáng)極LED數(shù)碼管,它們分別顯示溫度值的百位、十位、個(gè)位和小數(shù)點(diǎn)后一位。若要顯示設(shè)定值。需要按下切換按鍵即可。共陽(yáng)數(shù)碼管需要接上驅(qū)動(dòng)電路,從該電路接到單片機(jī)的I/O口P1.0、P1.1、P1.2、P1.3上,這四位分別是四位數(shù)碼管的片選口,通過此四位決定是哪位數(shù)碼管進(jìn)行顯示。數(shù)碼管的a~dp通過電阻接到單片機(jī)的P0口上,通過P0口接收需要顯示數(shù)字的段碼,從而實(shí)現(xiàn)數(shù)字的顯示。
2.4 超限報(bào)警電路設(shè)計(jì)
當(dāng)溫度超過設(shè)定范圍時(shí),系統(tǒng)能夠及時(shí)報(bào)警。系統(tǒng)采用蜂鳴器進(jìn)行報(bào)警,即將蜂鳴器接在單片機(jī)的I/O口P2.7上,當(dāng)出現(xiàn)超限時(shí),將P2.7口置高電平,蜂鳴器報(bào)警。
2.5 硬件技術(shù)介紹
2.5.1 nRF24L01芯片
該芯片有不同的工作狀態(tài),可以通過設(shè)置CE和狀態(tài)寄存器來選擇它的工作狀態(tài)。工作狀態(tài)如表1所示。配置為發(fā)射模式的nRF24L01將會(huì)利用增強(qiáng)式ShockBurst技術(shù)來發(fā)射數(shù)據(jù)包。發(fā)送設(shè)備在發(fā)完數(shù)據(jù)后將自動(dòng)轉(zhuǎn)為接收狀態(tài)等待接收方的應(yīng)答信號(hào)。若發(fā)送設(shè)備未接收到應(yīng)答信號(hào),它將自動(dòng)重發(fā)這包數(shù)據(jù)(自動(dòng)重發(fā)開啟的情況下)直到接收這包數(shù)據(jù)或重發(fā)次數(shù)超過了在寄存器SETUP_RETR_ARC設(shè)置的所允許的最大重發(fā)次數(shù)。如果是第二種情況,它將在STATUS寄存器里的MAX_RT位反應(yīng)出來,并且給出中斷。當(dāng)nRF24L01收到應(yīng)答信號(hào)時(shí),它將認(rèn)為該包數(shù)據(jù)成功發(fā)送到接收方,并把這包數(shù)據(jù)從發(fā)射堆棧中消除,同時(shí)IRQ變低,STATUS寄存器里德中斷標(biāo)志位TX_DS置高。
3 溫度控制系統(tǒng)的軟件設(shè)計(jì)
整個(gè)系統(tǒng)由主從單片機(jī)控制,主單片機(jī)擔(dān)負(fù)著檢測(cè)和處理溫度、傳送溫度、執(zhí)行PID算法和產(chǎn)生PWM等等的控制任務(wù),從單片機(jī)主要實(shí)現(xiàn)控制鍵盤輸入、接收主單片機(jī)傳過來的溫度并顯示以及報(bào)警等功能。
3.1 主單片機(jī)程序設(shè)計(jì)
主單片機(jī)主程序主要包括系統(tǒng)的初始化和調(diào)用子程序。系統(tǒng)的初始化包括初始化IO口、變量定義以及nRF24L01的初始化配置等。主單片機(jī)主要的功能就是檢測(cè)溫度值并傳送給從單片機(jī),同時(shí)接收從單片機(jī)傳過來的設(shè)定值,并進(jìn)行PID運(yùn)算,產(chǎn)生PWM波。由此可設(shè)計(jì)主程序的流程圖如圖5所示。
3.2 從單片機(jī)程序設(shè)計(jì)
從單片機(jī)需要實(shí)現(xiàn)的功能有:按鍵輸入設(shè)定值、顯示從主單片機(jī)傳送過來的溫度值、將設(shè)定值傳送給主單片機(jī)以及超限報(bào)警功能,從單片機(jī)的程序包括:主程序、按鍵掃描子程序、顯示子程序和雙機(jī)通信程序等。其主程序的流程圖如圖6所示。
3.3 PID算法設(shè)計(jì)
增量式:PID算法如公式(1)
如果單純用PID算法,可能會(huì)出現(xiàn)很大的超調(diào),所以在設(shè)計(jì)軟件時(shí),可以加上上下限,當(dāng)偏差值小于下限值時(shí),執(zhí)行器不動(dòng)作;當(dāng)偏差值大于上限值時(shí),就將令偏差值等于最大值來計(jì)算;只有當(dāng)偏差值在上下限區(qū)間內(nèi),系統(tǒng)才會(huì)按照PID算法執(zhí)行。下列程序?yàn)镻ID輸出值程序。
4 結(jié)論
按照上述方法設(shè)計(jì)的硬件電路和程序,經(jīng)過實(shí)際調(diào)試,整個(gè)系統(tǒng)運(yùn)行良好,很好地實(shí)現(xiàn)了對(duì)鍋爐溫度的控制。該方法以雙單片機(jī)作為硬件平臺(tái),將無(wú)線傳輸技術(shù)、PWM波產(chǎn)生技術(shù)等加入到設(shè)計(jì)之中,實(shí)現(xiàn)了一種高精度、性能穩(wěn)定溫控方案。為今后工業(yè)上不同對(duì)象的溫度控制提供了參考依據(jù)和技術(shù)支持。