版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科生畢業(yè)論文(設(shè)計(jì))</p><p> 系(院)物理與電子工程學(xué)院 專業(yè) 電子信息工程 </p><p> 論文題目 溫控電風(fēng)扇 </p><p> 學(xué)生姓名 </p><p> 指導(dǎo)教師 </p><p><b
2、> (姓名及職稱)</b></p><p> 班 級(jí) </p><p> 學(xué) 號(hào) </p><p> 完成日期:2013 年 3 月</p><p><b> 溫控風(fēng)扇</b></p><p> [摘要]溫控風(fēng)扇系統(tǒng)采用51系列
3、單片機(jī)STC89C52作為主控器,利用DS18B20數(shù)字溫度傳感器采集實(shí)時(shí)溫度,經(jīng)單片機(jī)處理后通過(guò)達(dá)林頓管ULN2003來(lái)驅(qū)動(dòng)直流風(fēng)扇的電機(jī)。根據(jù)采集的實(shí)時(shí)溫度,實(shí)現(xiàn)了風(fēng)扇的自起自停。溫控風(fēng)扇系統(tǒng)擁有自動(dòng)和手動(dòng)兩種模式來(lái)調(diào)節(jié)風(fēng)速,同時(shí)系統(tǒng)還設(shè)有5個(gè)不同檔位,以及通過(guò)ST188反射式紅外光電傳感器檢測(cè)風(fēng)扇轉(zhuǎn)速,并在LCD1602液晶屏上顯示溫度及檔位。</p><p> [關(guān)鍵詞]DS18B20 自動(dòng)調(diào)速 自啟自
4、停</p><p><b> 引言</b></p><p> 隨著社會(huì)經(jīng)濟(jì)的發(fā)展,科技也是日益進(jìn)步,越來(lái)越多的產(chǎn)品趨向智能化、自動(dòng)化,這不僅是未來(lái)發(fā)展的趨勢(shì),同時(shí)也是節(jié)約資源所必須的。所以無(wú)論是什么產(chǎn)品,都盡量的提高能源利用率,響應(yīng)可持續(xù)發(fā)展國(guó)策。</p><p> 現(xiàn)代社會(huì)中,風(fēng)扇被廣泛的運(yùn)用在各個(gè)領(lǐng)域,傳統(tǒng)的風(fēng)扇設(shè)計(jì),僅需通電就可使用
5、,不論是有沒(méi)有人在場(chǎng)使用、環(huán)境溫度是高是低的情況下都只會(huì)機(jī)械性地以一恒定轉(zhuǎn)速轉(zhuǎn)動(dòng),這種不合理的設(shè)計(jì)不僅浪費(fèi)資源而且使用也不方便。而現(xiàn)階段智能風(fēng)扇可以根據(jù)環(huán)境溫度的高低自行改變轉(zhuǎn)速,可以自起自停,同時(shí)也可以滿足人們手動(dòng)調(diào)節(jié)風(fēng)扇轉(zhuǎn)速,使人們使用起來(lái)更方便。</p><p> 這樣的溫控風(fēng)扇系統(tǒng),不僅在公共場(chǎng)合、工廠等地適用,而且在家居生活中也適用,特別是它的人性化設(shè)計(jì),不僅滿足了人們對(duì)于風(fēng)扇的需求,也便捷了人們手動(dòng)
6、換擋的繁瑣,此系統(tǒng)設(shè)計(jì)成本也低,便于推廣。它的設(shè)計(jì)為現(xiàn)代社會(huì)人們的生活帶來(lái)了諸多便利,在提高人們的生活質(zhì)量、生產(chǎn)效率的同時(shí)并在一定程度上達(dá)到環(huán)保節(jié)能的功效。</p><p><b> 1 整體方案設(shè)計(jì)</b></p><p> 1.1 系統(tǒng)整體設(shè)計(jì)</p><p> 設(shè)計(jì)的整體思路是:利用溫度傳感器DS18B20檢測(cè)環(huán)境溫度并直接輸出數(shù)字
7、溫度信號(hào)給單片機(jī)STC89C52進(jìn)行處理,在LCD1602數(shù)碼管上顯示當(dāng)前環(huán)境溫度值以及檔位,DS18B20檢測(cè)到的當(dāng)前環(huán)境溫度可精確到小數(shù)點(diǎn)后一位,同時(shí)采用PWM脈寬調(diào)制方式來(lái)改變直流風(fēng)扇電機(jī)的轉(zhuǎn)速,最后再通過(guò)ST188測(cè)試風(fēng)扇轉(zhuǎn)速。系統(tǒng)中設(shè)有自動(dòng)調(diào)速和手動(dòng)調(diào)速兩種模式。系統(tǒng)結(jié)構(gòu)框圖如圖1-1:</p><p> 圖1-1 系統(tǒng)結(jié)構(gòu)框圖</p><p><b> 1.2 方
8、案論證</b></p><p> 1.2.1 單片機(jī)選擇</p><p> 方案一:采用STC89C52作為系統(tǒng)的控制器。STC89C52是一種高性能、低功耗CMOS8位微控制器,具有8K系統(tǒng)可編程Flash存儲(chǔ)器。該單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可通過(guò)軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并有體積小、功耗低、技術(shù)成熟和成本低等優(yōu)點(diǎn)。</p><
9、;p> 方案二:MC9S12XS128是”飛思卡爾”公司推出的S12系列微控制器中的一款增強(qiáng)型16位微控制器。其集成度高,片內(nèi)支援豐富,接口模塊包括SPI、SCI、I2C、A/D、PWM等[2]。它在汽車電子、工業(yè)控制、中高擋機(jī)電產(chǎn)品等應(yīng)用領(lǐng)域具有廣泛的用途,但由于成本價(jià)高,編程操作工序復(fù)雜,體積還較大。</p><p> 基于以上分析擬訂方案一,由STC89C52作為控制核心,對(duì)檢測(cè)信號(hào)進(jìn)行處理和顯示
10、、電機(jī)控制。</p><p> 1.2.2 溫度傳感器選擇</p><p> 方案一:DS18B20數(shù)字溫度傳感器。DS18B20是美國(guó)DALLAS半導(dǎo)體公司繼DS1820之后新推出的一種改進(jìn)型智能溫度傳感器。該器件溫度分辨力極高,而且在對(duì)溫度進(jìn)行實(shí)時(shí)采集后直接輸出數(shù)字量,簡(jiǎn)化了系統(tǒng)程序設(shè)計(jì)。又由于該溫度傳感器采用先進(jìn)的單總線技術(shù),與單片機(jī)的接口變得非常簡(jiǎn)潔,抗干擾能力強(qiáng),誤差較小。
11、 </p><p> 方案二:熱敏電阻。通過(guò)熱敏電阻感應(yīng)外界溫度,采集會(huì)數(shù)據(jù)后通過(guò)模數(shù)轉(zhuǎn)換模塊AD0809進(jìn)行轉(zhuǎn)換后送入單片機(jī)進(jìn)行處理。由于隨著外界的溫度升高,熱敏電阻并不是呈線性變化,采集后會(huì)有誤差,而且程序上處理麻煩。再者,功耗較大、占用空間大,不符合設(shè)計(jì)要求。</p><p> 基于以上分析擬訂方案一,用DS18B20作溫度采集模塊。</p><p
12、> 1.2.3 電機(jī)驅(qū)動(dòng)模塊選擇</p><p> 方案一:采用多個(gè)三極管驅(qū)動(dòng)。三極管的主要特性是放大,三極管組成的級(jí)數(shù)愈多,放大的倍數(shù)愈大。而且三極管成本價(jià)又低,體積小,不需要任何程序處理。但是,一個(gè)三極管放大的倍數(shù)不能達(dá)到驅(qū)動(dòng)電機(jī)的理想效果,設(shè)計(jì)中至少要2個(gè)以上,而且三極管易溫漂,這樣一來(lái)電路參數(shù)比較繁瑣,參數(shù)易變。</p><p> 方案二:采用達(dá)林頓管ULN2003驅(qū)動(dòng)
13、。ULN2003具有帶負(fù)載能力強(qiáng)、溫度范圍寬、電流增益高、工作電壓高的特點(diǎn),常用于各種電磁閥、步進(jìn)電機(jī)、伺服電機(jī)等功率較大的器件上。且不用設(shè)計(jì)任何電路參數(shù)。</p><p> 方案三:采用LM298驅(qū)動(dòng)電機(jī)。LM298內(nèi)部含有2個(gè)H橋,可以實(shí)現(xiàn)電機(jī)四種不同的轉(zhuǎn)動(dòng)方式,并且驅(qū)動(dòng)的效果較ULN2003效果好。但是在程序的編寫(xiě)上要比后者復(fù)雜,電路組成也相對(duì)復(fù)雜些,加之成本又高于ULN2003,故舍去掉。</p&
14、gt;<p> 基于以上分析擬訂方案二,采用達(dá)林頓管ULN2003作為信號(hào)處理模塊。</p><p> 1.2.4 顯示模塊選擇</p><p> 方案一:采用四位LED七段數(shù)碼管。數(shù)碼管具有:低損耗、低能耗、低壓、耐老化、壽命長(zhǎng),對(duì)外界的環(huán)境要求較低。同時(shí),數(shù)碼管顯示信息少,動(dòng)態(tài)掃描占用太多CPU資源等。</p><p> 方案二:采用液晶顯
15、示屏LCD1602。液晶顯示屏具有輕薄短小、功耗小、無(wú)輻射危險(xiǎn),平面直角顯示以及影象穩(wěn)定不閃爍,畫(huà)面效果好,可視面積大,顯示信息量大、抗干擾能力強(qiáng)等特點(diǎn)[10]。</p><p> 基于以上分析擬訂方案二,采用液晶顯示屏LCD1602作顯示器。</p><p> 1.2.5 測(cè)速模塊選擇</p><p> 方案一:采用紅外對(duì)管ST188測(cè)速。ST188是采用高
16、發(fā)射功率紅外光電二極管以及高靈敏度光電晶體管組成,檢測(cè)距離可調(diào)整,范圍大,4-13mm 即可用, 采用的是非接觸檢測(cè)方式,連接電路簡(jiǎn)單。同時(shí)結(jié)合LM393電壓比較器,在因?yàn)槭止ぶ谱鞯拇a盤(pán)影響測(cè)量精度的情況下有所改善。</p><p> 方案二:采用光碼盤(pán)測(cè)速。測(cè)速原理和ST188一樣,其測(cè)速的精度比ST188測(cè)速精度較高,但是其成本相對(duì)較高,安裝也沒(méi)有ST188方便。在此系統(tǒng)中,也完全不用高精度測(cè)速。</
17、p><p> 基于以上分析擬定方案一,采用ST188作為測(cè)速模塊。</p><p> 1.3 系統(tǒng)各模塊最終方案</p><p> 根據(jù)以上分析,結(jié)合器件和設(shè)備等因素,確定如下方案:</p><p> ?。?)采用STC89C52單片機(jī)作為中央控制器,分別對(duì)DS18B20、LCD液晶顯示、模式選擇、ST188、PWM波產(chǎn)生進(jìn)行控制。<
18、/p><p> ?。?)速度檢測(cè)模塊選擇ST188進(jìn)行速度測(cè)量。</p><p> ?。?)顯示模塊采用LCD1602,實(shí)時(shí)顯示溫度、檔位、轉(zhuǎn)速。</p><p> (4)采用ULN2003芯片驅(qū)動(dòng)直流電機(jī)。</p><p> 2 硬件的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 2.1 系統(tǒng)硬件模塊介紹</p>&
19、lt;p> 溫控風(fēng)扇系統(tǒng)主要是通過(guò)DS18B20采集外界實(shí)時(shí)溫度后經(jīng)單片機(jī)處理風(fēng)扇電機(jī)的轉(zhuǎn)速,達(dá)到理想溫控效果。系統(tǒng)總體分為:?jiǎn)纹瑱C(jī)最小系統(tǒng)、電源電路、溫度采集電路、顯示電路、電機(jī)驅(qū)動(dòng)電路等部分。系統(tǒng)電路原理圖和PCB圖如圖2-1和圖2-2所示:</p><p> 圖2-1 系統(tǒng)電路原理圖</p><p><b> 圖2-2 PCB圖</b></p&
20、gt;<p> 2.2 單片機(jī)最小系統(tǒng)</p><p> 溫控風(fēng)扇系統(tǒng)是以單片機(jī)STC89C52來(lái)作為最小系統(tǒng)的控制器。STC89C52具有以下標(biāo)準(zhǔn)功能:2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,8K字節(jié)Flash, 32位I/O口線,256字節(jié)RAM,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),片內(nèi)晶振及時(shí)鐘電路,看門(mén)狗定時(shí)器,全雙工串行口。電路原理如圖2-3所示。</p><p> 圖2
21、-3 單片機(jī)最小系統(tǒng)原理圖</p><p> STC89C52單片機(jī)的40個(gè)引腳中有2個(gè)專用于主電源引腳,2個(gè)外接晶振的引腳,4個(gè)控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。</p><p><b> 2.3 電源電路</b></p><p> 由于直流電機(jī)驅(qū)動(dòng)模塊中,需要用到12V的電壓,所以其決定了系統(tǒng)中的供電需要12V
22、及以上的電源供電。單片機(jī)是系統(tǒng)的控制核心,需要單獨(dú)的5V電源供電?;谏显V情況,對(duì)于需要得到不同的電壓值,采用三段集成穩(wěn)壓芯片LM7812和LM7805來(lái)實(shí)現(xiàn)。綜上所述,電源模塊電路圖如圖2-4所示:</p><p><b> 圖2-4 電源電路</b></p><p> 2.4 溫度傳感器電路</p><p> 系統(tǒng)的設(shè)計(jì)中,采用了DS
23、18B20來(lái)采集溫度,它直接可以把所檢測(cè)到的溫度短時(shí)間內(nèi)轉(zhuǎn)化成數(shù)字。</p><p> 2.4.1 DS18B20簡(jiǎn)介</p><p> 具有負(fù)壓特性,即當(dāng)電源極性接反時(shí),傳感器不會(huì)因?yàn)榘l(fā)熱而燒毀,但是不能正常工作;用戶可以自設(shè)定非易失性報(bào)警的上下限值;有支持多點(diǎn)組網(wǎng)的功能,多個(gè)DS18B20可并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)的測(cè)溫;通過(guò)編程可實(shí)現(xiàn)9~12位數(shù)字讀數(shù)的方式,溫控風(fēng)扇系統(tǒng)采用
24、了該器件系統(tǒng)默認(rèn)的12位表示方式,對(duì)應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃、0.0625;可以用數(shù)據(jù)線來(lái)供電,電壓范圍為:+3.0~ +5.5 V;測(cè)溫范圍為:-55 ~+125 ℃,固有測(cè)溫的分辨率為0.5 ℃,并且可在1S內(nèi)把溫度變換成數(shù)字;在使用中不需要任何的外圍元件;DS18B20溫度傳感器只有三根外引線:?jiǎn)尉€數(shù)據(jù)傳輸總線端口DQ ,外供電源線VCC,共用地線GND;獨(dú)特的單線接口方式當(dāng)DS18B20和微處理器連
25、接的時(shí)候僅需要一條線即可以實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。其具體電路接線圖如圖2-5所示。</p><p> 圖2-5 溫度傳感器電路</p><p> 2.4.2 溫度存儲(chǔ)方式以及溫度的計(jì)算</p><p> DS18B20用9位存儲(chǔ)溫度值,負(fù)溫度S=0,正溫度S=1,最高位為符號(hào)位,例如FF92H為-55℃,如圖2-6所示:</p>
26、<p> 圖2-6 DS18B20溫度存儲(chǔ)方式</p><p> DS18B20用12位存儲(chǔ)溫度值,負(fù)溫度S=0,正溫度S=1,最高位為符號(hào)位,例如FC90H為-55℃,如圖2-7所示:</p><p> 圖2-7 DS18B20溫度存儲(chǔ)方式</p><p> 2.5 顯示模塊電路</p><p> LCD1602是工業(yè)字
27、符型液晶,能夠同時(shí)顯示16×2即32個(gè)字符。LCD1602模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已存儲(chǔ)包括:日文假名、常用的符號(hào)、英文字母的大小寫(xiě)和阿拉伯?dāng)?shù)字等160個(gè)不同的點(diǎn)陣字符和圖形。</p><p> LCD1602與單片機(jī)連接電路如圖2-8所示,其中15腳和16腳是液晶顯示器的對(duì)比度調(diào)整端,接地電源的時(shí)候?qū)Ρ榷茸罡?,接正電源的時(shí)候?qū)Ρ榷茸钊?,一般在?shí)際使用時(shí)可通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度
28、,在此圖中為Proteus中的仿真圖未接電位器。由于單片機(jī)內(nèi)部P0口沒(méi)有上拉電阻,輸出的電平不能直接負(fù)載液晶,需要人為在電路中接入上拉電阻,將P0口電平拉高后,再驅(qū)動(dòng)負(fù)載。</p><p> 圖2-8 LCD1602與單片機(jī)連接電路</p><p> 2.6 電機(jī)驅(qū)動(dòng)電路</p><p> 在溫控風(fēng)扇系統(tǒng)設(shè)計(jì)中,涉及到風(fēng)扇電機(jī)的調(diào)速,但是單片機(jī)的I/O口輸出的
29、功率不足以驅(qū)動(dòng)直流電機(jī),所以需要外加驅(qū)動(dòng)電路來(lái)實(shí)現(xiàn)此項(xiàng)功能。在前面的方案論證中選擇了達(dá)林頓管體系芯片ULN2003作為驅(qū)動(dòng)芯片,此芯片外接電路十分簡(jiǎn)單,不需要額外的輔助器件,單片機(jī)I/O口輸出經(jīng)過(guò)ULN2003輸出就能直接拖動(dòng)起電機(jī)。電路圖如圖2-9所示。</p><p> 圖2-9 電機(jī)驅(qū)動(dòng)電路</p><p> 2.7 速度檢測(cè)電路</p><p> 溫控
30、風(fēng)扇的速度檢測(cè)是由ST188來(lái)實(shí)現(xiàn)的,設(shè)計(jì)中采用ST188使系統(tǒng)形成反饋,和系統(tǒng)驅(qū)動(dòng)電動(dòng)機(jī)產(chǎn)生的轉(zhuǎn)速進(jìn)行調(diào)整,從而實(shí)現(xiàn)更好的控制。</p><p> ST188 采用的是非接觸檢測(cè)方式,其外形圖和內(nèi)部電路如圖2-10所示:</p><p> 圖2-10 ST188外形圖和內(nèi)部電路</p><p> 如圖2-10,左邊是光電二極管的外形圖,由發(fā)射二極管和接收管組
31、成,右圖為內(nèi)部的電路示意圖。A、K是紅外發(fā)射二極管的正負(fù)極,C、E是接收管的正負(fù)極。只要A極接高電平、K極接低電平,紅外發(fā)射管就能發(fā)出紅外線。就可以在傳感器加上外圍電路來(lái)檢測(cè)接收管的信號(hào),進(jìn)而確定是否接受到反射回來(lái)的紅外線。在此設(shè)計(jì)中,電機(jī)上安裝一個(gè)圖有黑、白兩種顏色的碼盤(pán),當(dāng)紅外線照射的在黑線上的時(shí)候,由于黑色是吸收光線的,所以反射回去的光很少,而使得三極管收到的光較弱;而當(dāng)紅外線照射到白線的時(shí)候,由于白色能夠反射大部分的光,所以三極
32、管收受到的光就較強(qiáng)。兩種光的強(qiáng)弱就能夠使得檢測(cè)電路輸出不同的電壓,這個(gè)電壓被送入LM393電壓比較器,在LM393中與電位器調(diào)節(jié)出的電壓進(jìn)行比較形成脈沖,該脈沖作用于單片機(jī)的P3_5口,通過(guò)單片機(jī)的內(nèi)部定時(shí)/計(jì)數(shù)器計(jì)數(shù),最終計(jì)算出風(fēng)扇的轉(zhuǎn)速。</p><p> 3 軟件的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 系統(tǒng)的運(yùn)行程序采用C語(yǔ)言編寫(xiě),采用模塊化設(shè)計(jì),整體程序由主程序和、溫度采集、PWM波、
33、液晶顯示以及電機(jī)控制等子程序模塊組成。</p><p> 3.1 主程序流程圖</p><p> 主程序?qū)Ω髂K進(jìn)行初始化,而后調(diào)用溫度采集、模式選擇、產(chǎn)生PWM波、顯示模塊。主程序流程圖如圖3-1所示:</p><p> 圖3-1 系統(tǒng)主程序流程圖</p><p> 3.2 溫度采集子程序</p><p>
34、 3.2.1 DS18B20的工作流程</p><p> 單片機(jī)控制DS18B20溫度傳感器完成溫度轉(zhuǎn)換工作要經(jīng)過(guò)三個(gè)步驟:初始化、ROM操作指令、存儲(chǔ)器操作指令。單片機(jī)所用的系統(tǒng)頻率為12MHz。根據(jù)DS18B20數(shù)字溫度傳感器進(jìn)行初始化時(shí)序、讀時(shí)序和寫(xiě)時(shí)序分別可編寫(xiě)成3個(gè)子程序:初始化子程序、寫(xiě)子程序、讀子程序。流程圖如圖3-2所示:</p><p> 圖3-2 DS18B20部分
35、流程圖</p><p> 3.2.2 ROM與存儲(chǔ)器操作命令</p><p> 在DS18B20的使用中運(yùn)用到了一些指令,具體指令如表3-1所示:</p><p> 表3-1 ROM與存儲(chǔ)器操作命令</p><p> 3.3 PWM波子程序</p><p> 由于需要電機(jī)產(chǎn)生不同的轉(zhuǎn)速,所以則需要不同的PWM
36、波來(lái)驅(qū)使電機(jī)以不同轉(zhuǎn)速轉(zhuǎn)動(dòng)。PWM波是一種不同頻率的方波,所以在設(shè)計(jì)時(shí)采用定時(shí)器來(lái)產(chǎn)生不同頻率的PWM波。程序大致過(guò)程可以分為系統(tǒng)中斷模塊初始化和定時(shí)器產(chǎn)生所需要的PWM波,流程圖如圖3-3所示:</p><p> 圖3-3 生成PWM波流程圖</p><p> PWM的周期設(shè)為40ms ,PWM的低電平時(shí)間為40ms,定時(shí)器T0選擇工作方式1,設(shè)定PWM的單位時(shí)間為1s。</p
37、><p><b> 3.4 顯示子程序</b></p><p> 為了讓系統(tǒng)有一個(gè)有好的界面,在系統(tǒng)設(shè)計(jì)時(shí),采用了LCD1602作為顯示器件。在液晶屏上顯示了系統(tǒng)設(shè)計(jì)的名稱、實(shí)時(shí)的溫度值、電機(jī)的轉(zhuǎn)速和當(dāng)前溫度下風(fēng)扇所處的檔位。部分指令如表3-2所示:</p><p> 表3-2 LCD1602部分指令</p><p>
38、 3.5 速度檢測(cè)程序</p><p> 3.5.1 ST188反射式紅外光電傳感器</p><p> 速度檢測(cè)使用的是ST188反射式紅外光電傳感器,檢測(cè)不同檔位時(shí)電機(jī)的轉(zhuǎn)速。流程圖如圖3-4所示:</p><p> 圖3-4 速度檢測(cè)流程圖</p><p> 上圖為速度檢測(cè)的流程圖,ST188設(shè)為每200ms讀一次數(shù),即每200
39、ms記錄由于風(fēng)扇ST188所檢測(cè)到的脈沖數(shù),然后再對(duì)于計(jì)時(shí)的變量清零,再顯示出脈沖數(shù),最后又返回主程序。</p><p> 3.5.2 PID控制</p><p> PID是一個(gè)閉環(huán)的控制算法,溫控風(fēng)扇系統(tǒng)就是由ST188檢測(cè)轉(zhuǎn)速反饋給單片機(jī)形成反饋。</p><p> ?。?)PID是個(gè)由比例(P)、積分(I)、微分(D)構(gòu)成的控制算法,但是并不是必須同時(shí)都具
40、備這三種算法,可以是:P控制、PI控制、PD控制、PID控制。</p><p> 比例(P),可以反應(yīng)系統(tǒng)的當(dāng)前的誤差,當(dāng)系數(shù)大時(shí)可以加快調(diào)節(jié)來(lái)減小誤差,但是如果系數(shù)過(guò)大就會(huì)使得系統(tǒng)的穩(wěn)定性下降,使系統(tǒng)輸出存在有穩(wěn)態(tài)誤差。</p><p> 積分(I),反應(yīng)出系統(tǒng)誤差的累計(jì),可以消除系統(tǒng)的穩(wěn)態(tài)誤差,積分作用的強(qiáng)弱取決于時(shí)間的積分,時(shí)間越長(zhǎng)積分作用越弱。它使控制器輸出的穩(wěn)態(tài)誤差進(jìn)一步的減
41、小直至0為止,而與上面的比例控制結(jié)合后可以使得系統(tǒng)達(dá)到穩(wěn)定后無(wú)穩(wěn)態(tài)誤差。</p><p> 微分(D),可以反應(yīng)系統(tǒng)誤差的變化率,它能夠預(yù)測(cè)出誤差變化的趨勢(shì),能夠超前的控制,可以改善系統(tǒng)的動(dòng)態(tài)性能,它的缺點(diǎn)是對(duì)于噪聲有放大作用,所以不能過(guò)多的進(jìn)行微分調(diào)節(jié),且微分控制不能夠單獨(dú)使用,需要和另外兩種控制結(jié)合使用形成PD或是PID控制。</p><p> ?。?)PID有三種常用的算法,分別是
42、:位置式算法、增量式算法、微分先行式算法。溫控風(fēng)扇系統(tǒng)采用的是位置式PID算法:將測(cè)到的速度與理想中的速度進(jìn)行比較得到一個(gè)偏差ek,且算出這次的偏差和上次偏差的差eek,給定一個(gè)值,當(dāng)偏差大于這個(gè)值時(shí),則給滿的占空比進(jìn)行加速;當(dāng)偏差小于這個(gè)值并大于0時(shí),則根據(jù)ek及eek來(lái)調(diào)整占空比進(jìn)行加速;若這個(gè)偏差為負(fù)時(shí),則電機(jī)停止轉(zhuǎn)動(dòng)。具體流程如圖3-5所示:</p><p> 圖3-5 PID控制算法流程圖</p
43、><p> 3.6 系統(tǒng)開(kāi)發(fā)軟件</p><p> 系統(tǒng)編程采用KEILC51軟件。Keil C51是美國(guó)Keil Software公司開(kāi)發(fā)的51系列兼容單片機(jī)C語(yǔ)言的軟件開(kāi)發(fā)系統(tǒng),與單片機(jī)匯編語(yǔ)言相比,C語(yǔ)言語(yǔ)句簡(jiǎn)單靈活,編寫(xiě)的函數(shù)模塊可移植性強(qiáng),因而易學(xué)易用,效率高。隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用高級(jí)語(yǔ)言的發(fā)展,單片機(jī)的開(kāi)發(fā)軟件也在不斷發(fā)展,Keil軟件是目
44、前使用較多的MCS-51系列單片機(jī)開(kāi)發(fā)的軟件。系統(tǒng)使用界面如圖3-6所示</p><p> 圖3-6 KEIL 使用界面圖</p><p> 4 軟件測(cè)試和硬件測(cè)試</p><p><b> 4.1 軟件測(cè)試</b></p><p> 軟件的測(cè)試中,結(jié)合于Proteus仿真軟件完成,根據(jù)之前的各模塊進(jìn)行初始化設(shè)置
45、,在編寫(xiě)程序前,要先對(duì)各個(gè)模塊分別進(jìn)行調(diào)試,并編寫(xiě)各部分的子程序。測(cè)試DS18B20時(shí),首先要檢測(cè)初始化時(shí)否完成,再檢測(cè)轉(zhuǎn)換的溫度是否正確,因?yàn)镈S18B20是讀一個(gè)字節(jié)寫(xiě)一個(gè)字節(jié);測(cè)試PWM時(shí)同過(guò)示波器觀察產(chǎn)生的波形是否正常,也可通過(guò)示波器觀測(cè)編碼器產(chǎn)生的波形是否正常,有無(wú)丟失脈沖的現(xiàn)象也可由示波器觀測(cè)到;還要測(cè)試LDC1602的顯示,剛開(kāi)始的時(shí)候設(shè)置的掃描太快導(dǎo)致最后顯示是數(shù)字在不停的閃爍,后來(lái)把掃描時(shí)間改成較長(zhǎng)時(shí)間后則可以清楚的顯
46、示,然后就是觀察采到的數(shù)據(jù)是否正常,黑線是否穩(wěn)定。系統(tǒng)測(cè)試仿真圖如圖4-1所示:</p><p> 圖4-1 Proteus仿真圖</p><p><b> 4.2 硬件的測(cè)試</b></p><p> 4.2.1 硬件實(shí)物圖</p><p> 首先是對(duì)硬件電路的電源部分,傳感器部分以及驅(qū)動(dòng)部分進(jìn)行調(diào)試,電源部分
47、的調(diào)試主要看其輸出電壓是否滿足要求;穩(wěn)壓芯片是否正常工作,一個(gè)穩(wěn)壓芯片輸出12V電壓,一個(gè)輸出5V電壓;給一個(gè)恒定PWM占空比,觀察電機(jī)是否會(huì)轉(zhuǎn);用萬(wàn)用表檢測(cè)從單片機(jī)輸出的電流通過(guò)ULN2003后是否有擴(kuò)大;以及LCD1602的顯示是否正常顯示,如果顯示不正常則需要更換對(duì)比度調(diào)節(jié)的電阻。</p><p> 根據(jù)設(shè)計(jì)要求,最后制作的硬件實(shí)物如圖4-2、圖4-3所示:</p><p> 圖
48、4-2 硬件實(shí)物圖</p><p> 圖4-3 硬件實(shí)物圖</p><p> 4.2.2 數(shù)據(jù)測(cè)試結(jié)果</p><p> 經(jīng)過(guò)數(shù)十次的調(diào)試,并仔細(xì)檢查硬件電路的完整性,完成了系統(tǒng)設(shè)計(jì)要求,達(dá)到了溫度檢測(cè)范圍的要求,并使檢測(cè)結(jié)果精確到了0.1℃,風(fēng)扇能夠自啟自停,并自帶5個(gè)不同檔位的風(fēng)速。同時(shí)系統(tǒng)還設(shè)置了手動(dòng)模式,可以手動(dòng)對(duì)于風(fēng)速的調(diào)整,也可以根據(jù)現(xiàn)場(chǎng)實(shí)時(shí)溫度自
49、動(dòng)調(diào)整風(fēng)速得到理想中的風(fēng)速。實(shí)驗(yàn)實(shí)測(cè)圖如圖4-4和圖4-5所示:</p><p> 圖4-4 實(shí)驗(yàn)實(shí)測(cè)圖</p><p> 圖4-5 實(shí)驗(yàn)實(shí)測(cè)圖</p><p> 實(shí)測(cè)結(jié)果如表4-1所示:</p><p><b> 表4-1 測(cè)試結(jié)果</b></p><p> 如上表所示,總共檢測(cè)了1
50、1次,其中可以了解到:手動(dòng)模式共有5個(gè)檔位,調(diào)節(jié)檔位就是調(diào)節(jié)PWM波的占空比,當(dāng)占空比越大時(shí)風(fēng)扇轉(zhuǎn)動(dòng)得越快,當(dāng)占空比為0時(shí),風(fēng)扇停止轉(zhuǎn)動(dòng);自動(dòng)模式共有4個(gè)檔位,自動(dòng)模式是根據(jù)檢測(cè)環(huán)境的溫度來(lái)自動(dòng)調(diào)節(jié)風(fēng)扇的轉(zhuǎn)速,當(dāng)溫度大于20℃時(shí)風(fēng)扇開(kāi)始轉(zhuǎn)動(dòng),在20℃-26.5℃、27℃-32℃、33℃-39℃、大于40℃時(shí)分別為1到4檔,而當(dāng)溫度小于20℃時(shí)風(fēng)扇自動(dòng)停止轉(zhuǎn)動(dòng)。</p><p><b> 5 結(jié)論<
51、;/b></p><p> 設(shè)計(jì)從節(jié)能、經(jīng)濟(jì)、實(shí)用的角度出發(fā),以STC89C52單片機(jī)來(lái)控制一個(gè)簡(jiǎn)易溫控風(fēng)扇系統(tǒng)。上文詳細(xì)的介紹了整個(gè)制作過(guò)程中的方案論證、硬件原理、軟件控制流程。在整個(gè)制作過(guò)程,在導(dǎo)師的細(xì)心指導(dǎo)以及同學(xué)的幫助下經(jīng)過(guò)不懈的努力,終于完成了對(duì)溫控風(fēng)扇的設(shè)計(jì),實(shí)現(xiàn)了溫度精確檢測(cè),風(fēng)扇的自起自停,手動(dòng)、自動(dòng)調(diào)節(jié)風(fēng)扇轉(zhuǎn)速,同時(shí)可以檢測(cè)速度功能的設(shè)計(jì)。</p><p> 查
52、找了元器件的資料,設(shè)計(jì)出了具體電路,并確定了主要參數(shù),再根據(jù)單片機(jī)課程知識(shí),對(duì)軟件部分的理解,畫(huà)出了程序流程圖,最后完成了原理圖的繪制,完成了整個(gè)設(shè)計(jì)。在設(shè)計(jì)的過(guò)程中,也遇到了很多的問(wèn)題,如在風(fēng)扇電機(jī)驅(qū)動(dòng)方面,開(kāi)始時(shí)沒(méi)有找到一個(gè)合適的方案來(lái)實(shí)現(xiàn)目標(biāo),先是自己在網(wǎng)上找了一些三極管驅(qū)動(dòng)電機(jī)電路,但最終沒(méi)有實(shí)現(xiàn),后又改為達(dá)林頓管來(lái)驅(qū)動(dòng),并得到了較好的效果。在電機(jī)驅(qū)動(dòng)PWM脈沖產(chǎn)生的過(guò)程中,由于以前單片機(jī)定時(shí)中斷學(xué)習(xí)不好,在此次設(shè)計(jì)中遇到了不少
53、麻煩,最終在查閱了相關(guān)書(shū)籍后總算做出來(lái)了。還有這次是第一次接觸使用溫度傳感器,對(duì)DS18B20的工作模式和一些時(shí)序更是一無(wú)所知,連資料上的時(shí)序也讀不懂,在經(jīng)過(guò)咨詢同學(xué)后現(xiàn)在終于做出來(lái)了。</p><p> 這一次的課題具有很強(qiáng)的綜合性,它不但涉及到模擬部分和數(shù)字部分的設(shè)計(jì),還要將單片機(jī),物理等若干課程相結(jié)合,并需要自己查找大量的資料才能完成此次設(shè)計(jì)。其實(shí)這個(gè)設(shè)計(jì)在很多方面還有待提高,但由于時(shí)間以及資金的問(wèn)題而有
54、所局限。</p><p> 通過(guò)這樣一次畢業(yè)設(shè)計(jì),有了一次電子電路設(shè)計(jì)的全新體驗(yàn)。通過(guò)查找資料,設(shè)計(jì),繪圖等,在實(shí)踐過(guò)程中,學(xué)到了不少知識(shí),增強(qiáng)了自學(xué)能力,同樣加深了對(duì)電子學(xué)科的認(rèn)識(shí)。</p><p><b> [參考文獻(xiàn)]:</b></p><p> [1] 李全利.遲榮強(qiáng).單片機(jī)原理及接口技術(shù)[M].北京:高等教育出版社,2004.1
55、</p><p> [2] 卓晴.黃開(kāi)勝,邵貝貝.學(xué)做智能車----挑戰(zhàn)“飛思卡爾”杯[M].北京:北京航空航天大學(xué)出</p><p><b> 版社,2006</b></p><p> [3] 張偉等.Protel DXP 高級(jí)應(yīng)用.北京. 人民郵電出版社,2002 </p><p> [4] 華成英.童詩(shī)白.
56、模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2007.4</p><p> [5] 龔尚福.朱宇.微機(jī)原理與接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,2007.1</p><p> [6] 孫傳友.孫曉斌.感測(cè)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2008.5</p><p> [7] 王柏盛.李萬(wàn)慶,賀洪江.C程序設(shè)計(jì)[M].北京:高等教育出版社,20
57、05.12</p><p> [8] 閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2006.5</p><p> [9] 夏路易.石宗義.電路原理圖與電路板設(shè)計(jì)教程[M].北京:北京希望電子出版社,2002.6</p><p> [10]鄧興成.單片機(jī)原理與實(shí)踐指導(dǎo).北京:機(jī)械工業(yè)出版社,2009.9</p><p> Bas
58、ed on the single chip microcomputer temperature control fan design</p><p> [Abstract] The temperature control fan system adopts 51 series Micro controller STC89C52 as master controller, using DS18B20 digita
59、l temperature sensors to collect real-time temperature, the single-chip microcomputer treatment through the Darlington tube UL2003 to drive fan motors. Use the real-time temperature collection, we realize the fan since t
60、he stop, automatic and manual regulating fan speed function, at the same time also has five different gear wind and in the LCD1602 display on the LCD</p><p> [Key words] DS18B20 Automatic speed Control s
61、ince the stop</p><p><b> 附錄:源程序</b></p><p> ******************主程序************************</p><p> #define word unsigned int</p><p> #define byte unsigne
62、d char</p><p> #include "at89x51.h"</p><p> #include "lcd1602.c"</p><p> #include "ds18b20.c"</p><p> #include "pwm.c"</p
63、><p> unsigned int yy=0;</p><p> byte c[4];</p><p><b> word s=0;</b></p><p> char Num=0;</p><p> void key();</p><p> void main(
64、)</p><p><b> {</b></p><p><b> P1=0;</b></p><p> LCD_Initial(); </p><p> system_Ini(); </p><p> GotoXY(0,0);</p><
65、;p> Print("PWM_ON:");</p><p><b> while(1)</b></p><p><b> {</b></p><p> GotoXY(7,0);</p><p> LCD_Write(1,(40-PWM_DOWN)/10+'
66、;0');</p><p> LCD_Write(1,(40-PWM_DOWN)%10+'0');</p><p> if(P2_0==0) </p><p><b> {</b></p><p> GotoXY(13,1);</p><p> Print(&qu
67、ot;M:0");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> GotoXY(13,1);</p><p> Print("M:1
68、");</p><p><b> }</b></p><p> GotoXY(0,1);</p><p> Print("T");</p><p> LCD_Write(1,(s/100)%10+'0');</p><p> LCD_Wri
69、te(1,(s%100/10)%10+'0');</p><p> LCD_Write(1,'.'); </p><p> LCD_Write(1,s%10+'0');</p><p> Print("C");</p><p> GotoXY(9,1);&l
70、t;/p><p> Print("N:");</p><p> LCD_Write(1,Num+'0'); </p><p> GotoXY(10,0); </p><p> LCD_Write(1,yy/100+'0');</p><p>
71、; LCD_Write(1,yy%100/10+'0');</p><p> LCD_Write(1,yy%10+'0');</p><p><b> key();</b></p><p><b> } </b></p><p><b>
72、 }</b></p><p> void key()</p><p><b> {</b></p><p> if(P2_0==1) </p><p><b> { </b></p><p> if(P2_1==0)</p><
73、p><b> {</b></p><p> while(P2_1==0); </p><p><b> Num++;</b></p><p> if(Num>=6) Num=0;</p><p> switch(Num)</p><p><b&
74、gt; {</b></p><p> case 0: PWM_DOWN=40;break; </p><p> case 1: PWM_DOWN-=8;break; </p><p> case 2: PWM_DOWN-=4;break;</p><p> case 3: PWM_DOWN-=4;break;</p
75、><p> case 4: PWM_DOWN-=2;break;</p><p> case 5: PWM_DOWN-=2;break;</p><p> default:break;</p><p> } </p><p> } </p><p>
76、;<b> }</b></p><p> if(P2_0==0) </p><p> { if(s>200&&s<800)</p><p><b> {</b></p><p> PWM_DOWN=40-(s/10)+10;</p><p
77、><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> PWM_DOWN=40;</p><p><b> }</b></p><p> if(s
78、<200&&s>=0) { Num=0;} </p><p> if(s>=200&&s<250) { Num=1;} </p><p> if(s>=250&&s<300) { Num=2;}</p><p> if(s>=300&&s
79、<350) { Num=3;}</p><p> if(s>=340&&s<400) { Num=4;}</p><p> if(s>=400) { PWM_DOWN=10;Num=5;} </p><p><b> } </b></p><p&g
80、t;<b> }</b></p><p> //////////////////////////////////////////////////////////////DS18B20 ///////////////////////////////////////////////////</p><p> sbit DQ=P2^3;</p><
81、p> void Init_DS18B20(void)</p><p><b> {</b></p><p> unsigned char x=0;</p><p> DQ = 1; </p><p> delay(8); </p><p> DQ = 0; &
82、lt;/p><p> delay(80);</p><p> DQ = 1; </p><p> delay(14);</p><p> x = DQ; </p><p> delay(50);</p><p><b> }</b></p&
83、gt;<p> unsigned char ReadOneChar(void)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)&
84、lt;/p><p><b> {</b></p><p><b> DQ = 0; </b></p><p><b> dat>>=1;</b></p><p><b> DQ = 1; </b></p><p>&
85、lt;b> if(DQ)</b></p><p> dat|=0x80;</p><p> delay(10);</p><p><b> }</b></p><p> return(dat);</p><p><b> }</b></p&
86、gt;<p> void WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i=0;</p><p> for (i=8; i>0; i--)</p><p><b> {</b
87、></p><p><b> DQ = 0;</b></p><p> DQ = dat&0x01;</p><p><b> delay(5);</b></p><p><b> DQ = 1;</b></p><p><b
88、> dat>>=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> unsigned int ReadTemperature(void)</p><p><b> {</b><
89、/p><p> unsigned char a=0;</p><p> unsigned char b=0;</p><p> unsigned int t=0;</p><p> float tt=0;</p><p> Init_DS18B20();</p><p> WriteOn
90、eChar(0xCC);</p><p> WriteOneChar(0x44); </p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); </p><p> WriteOneChar(0xBE); </p><p> a=ReadOneChar();
91、</p><p> b=ReadOneChar();</p><p><b> t=b;</b></p><p><b> t<<=8;</b></p><p><b> t=t|a;</b></p><p> tt=t*0.062
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能溫控調(diào)速電風(fēng)扇畢業(yè)論文
- 智能電風(fēng)扇畢業(yè)論文
- [畢業(yè)論文]溫控自動(dòng)風(fēng)扇系統(tǒng)論文
- 畢業(yè)論文--電風(fēng)扇搖頭機(jī)構(gòu)設(shè)計(jì)
- 電風(fēng)扇罩注射模設(shè)計(jì)【畢業(yè)論文】
- 2017畢業(yè)論文-智能電風(fēng)扇的設(shè)計(jì)
- 智能電風(fēng)扇畢業(yè)論文--基于單片機(jī)的智能落地電風(fēng)扇的設(shè)計(jì)
- 風(fēng)扇畢業(yè)論文--基于51單片機(jī)的智能溫控風(fēng)扇
- 畢業(yè)論文--單片機(jī)電風(fēng)扇控制系統(tǒng)
- 語(yǔ)音識(shí)別電風(fēng)扇控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 智能電風(fēng)扇控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的溫控風(fēng)扇設(shè)計(jì)畢業(yè)論文
- 電風(fēng)扇葉注塑模設(shè)計(jì)【畢業(yè)論文+cad圖紙全套】
- 畢業(yè)論文--單片機(jī)的電風(fēng)扇自動(dòng)控制號(hào)
- 畢業(yè)論文--基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
- 基于單片機(jī)的智能溫控風(fēng)扇設(shè)計(jì)-畢業(yè)論文
- 電風(fēng)扇畢業(yè)設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的智能電風(fēng)扇的設(shè)計(jì)
- 畢業(yè)論文(設(shè)計(jì))基于單片機(jī)的溫控風(fēng)扇的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論