自動化101 李新 10423070_第1頁
自動化101 李新 10423070_第2頁
自動化101 李新 10423070_第3頁
自動化101 李新 10423070_第4頁
自動化101 李新 10423070_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、溫控自動電風(fēng)扇的設(shè)計Automatic temperature control fan信息工程學(xué)院專業(yè):自動化101姓名:李新學(xué)號:10423070摘 要本文的目的是提高風(fēng)扇的性能,改變轉(zhuǎn)速為實現(xiàn)溫度的自動控制或手動控制,并顯示速度和室溫,硬件設(shè)計主要是使用三極管驅(qū)動繼電器控制風(fēng)扇電機、LCD顯示、溫度傳感器測溫。單片機編程實現(xiàn)轉(zhuǎn)速自動隨溫度的變化,并顯示溫度和轉(zhuǎn)速,為了更方便地使用,該系統(tǒng)還設(shè)計了手動調(diào)整轉(zhuǎn)速的功能。 關(guān)鍵詞:單片機 溫度傳感器 液晶顯示AbstractThis paper aims to improve the performance of the fan, the spe

2、ed to achieve automatic control of temperature or manual control ,and shows speed and room temperature.Hardware design is mainly use triode driving relay to control the fan motor,and LCD to display as well as temperature sensor to measure.MCU programming for the fan speed automatically changes with

3、temperature, and show that the temperature and speed, in order to be more convenient to use, the system is also designed to manually adjust the speed function. Keywords: MCU temperature sensor LCD 傳統(tǒng)的風(fēng)扇是只高,中,低三個風(fēng)速擋,并且是人工開關(guān),還不知室溫是多少,該用哪個擋。而這個設(shè)計是一新技術(shù),在電子行業(yè),單片機上早已經(jīng)廣泛的應(yīng)用。而這個是單片機電路板和溫度探測相結(jié)合,將其應(yīng)用于家用電風(fēng)扇的轉(zhuǎn)速

4、精確控制上,能夠有良好的表現(xiàn)。溫控電風(fēng)扇是采用多擋全自動變頻器,使得對電風(fēng)扇各擋風(fēng)量的調(diào)節(jié)更加細(xì)化,使得電風(fēng)扇的控制更具人性化,同時它也具有全自動、控制簡單、智能化、制作容易。在日常生活中,單片機得到了越來越廣泛的應(yīng)用。它體積小、重量輕、集成度高、抗干擾能力強、性價比高,尤其適合應(yīng)用于小型的自動控制系統(tǒng)中。電風(fēng)扇起停的自動控制,能夠解決夏天人們晚上熟睡時,由于夜里溫度下降而導(dǎo)致受涼,或者從睡夢中醒來親自開關(guān)電風(fēng)扇的問題,具有重要的現(xiàn)實意義。本系統(tǒng)由溫度傳感器DS18B20、單片機、LCD1602液晶顯示、繼電器及其它外圍器件組成。使用價格低廉且性能較好到的AT89S52單片機作組要控制器,通過

5、修改程序可方便實現(xiàn)系統(tǒng)的升級,系統(tǒng)的框圖結(jié)構(gòu)如圖1所示。 圖1 系統(tǒng)框圖1硬件電路設(shè)計1.1 電源模塊 電源電路采用LM7805集成穩(wěn)壓器作為穩(wěn)壓器件,用最常見的接法,220V交流電壓經(jīng)過整流濾波后送給LM7805穩(wěn)壓,在輸出端接有10uf電容來進(jìn)一步濾除高頻紋波,得到比較穩(wěn)定且紋波小得5v電壓。電路如圖2所示:圖2 電源電路1.2液晶顯示模塊顯示模塊主要是由單片機控制LCD液晶顯示器實現(xiàn)的。1602液晶是工業(yè)字符型液晶,能夠同時顯示1602即32個字符(16列2行),引腳如圖3所示。   圖3 1602引腳圖1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多

6、出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣。該液晶主要是顯示測得的風(fēng)扇轉(zhuǎn)速與室內(nèi)溫度,AT89S52單片機利用DS18B20采集溫度、光電對管測速,從而它處理后利用液晶顯示。顯示屏的亮暗程度可通過電位器R2調(diào)節(jié),由于單片機是通過P0口與1602實現(xiàn)的數(shù)據(jù)轉(zhuǎn)換,故而需要增加上拉電阻,液晶電路如圖4所示。圖4 液晶顯示電路1.3測溫模塊溫度采集主要由DS18B20實現(xiàn),它是單線數(shù)字溫度傳感器,可應(yīng)用于多種場合。該系統(tǒng)設(shè)計用到的DS18B20可用于鍋爐測溫,機房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫等各種非極限溫度場合。它具有耐磨耐碰,體積小,使用方便

7、等特點,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。它的測溫電路簡單,只需與單片機I/O口直接相連即可,電路如圖5所示。圖5 溫度采集電路1.4測速模塊該模塊主要用光電對管實現(xiàn)的,它內(nèi)部結(jié)構(gòu)就是一個發(fā)光二極管和一個光敏三極管,分為反射式和直射的,都是通過集聚光線來控制光敏三極管的導(dǎo)通與截止,其主要原理是光電轉(zhuǎn)換。光電對管中發(fā)光二極管不斷向光敏三極管發(fā)光,產(chǎn)生電信號,而風(fēng)扇轉(zhuǎn)動一次會遮擋二者一段時間,通過電路把電信號傳給單片機后計算出遮擋時間,即可測出風(fēng)扇轉(zhuǎn)速。測速電路主要通過運放對光電對管的處理達(dá)到的,電路如圖6所示,其中R3可以調(diào)節(jié)測量靈敏度,在風(fēng)扇中粘有黑膠帶用于測量。圖6 風(fēng)扇測速電路1.

8、5電機控制模塊該模塊主要由人工控制和溫度控制兩部分組成。其中控制電機的繼電器選用HG4098。當(dāng)系統(tǒng)選擇利用溫度控制轉(zhuǎn)速時,將撥碼開關(guān)K1關(guān)閉即可。這時系統(tǒng)在工作時,在DS18B20檢測溫度后,送由單片機處理,從而控制三個控制速度檔的繼電器。這樣就達(dá)到了溫度自動控制風(fēng)扇轉(zhuǎn)速的功能,其中溫度范圍的控制由程序?qū)崿F(xiàn)。當(dāng)系統(tǒng)選擇手動控制速度檔時,只需將K1打開即可。而撥碼開關(guān)的其它三個開關(guān)就是控制三個速度檔的調(diào)節(jié)。在設(shè)計撥碼開關(guān)時,由于單片機的P2口的內(nèi)部結(jié)構(gòu),也就是它在空置的情況下處于高電平,故而將撥碼開關(guān)的公共端接地,這樣單片機只要能夠檢測到低電平即可。該模塊的電路如圖7所示。 圖 7 電機控制電

9、路1.6 系統(tǒng)總原理圖 通過以上分析可知本系統(tǒng)是主要由電源模塊、液晶顯示模塊、測速模塊等組成,經(jīng)過軟件調(diào)試和硬件調(diào)試后,在室內(nèi)環(huán)境中可以使用,該系統(tǒng)的總原理圖如圖8所示。圖 8 系統(tǒng)總原理圖2軟件流程設(shè)計系統(tǒng)的各個模塊起不同的功能,經(jīng)分析后得該系統(tǒng)的程序流程圖,如圖9所示。其中各個模塊的流程在此省略,只將各個模塊的大體鏈接畫出,程序見附錄A程序1.1所示。圖9 軟件流程圖 3誤差分析 在硬件和軟件調(diào)試后,測得了倆組關(guān)于風(fēng)扇轉(zhuǎn)速與溫度、風(fēng)扇轉(zhuǎn)速與撥碼開關(guān)的數(shù)據(jù),如表1.1所示,經(jīng)撥碼開關(guān)驗證,該數(shù)據(jù)是正確的,從而知設(shè)計可靠。 表1.1 溫度控制速度數(shù)據(jù)溫度()23.2024.6425.7826.

10、9227.0229.1230.2832.42速度()0781110111314但是由于光電對管會由于光照強度而發(fā)生測量的不精確,故而風(fēng)扇轉(zhuǎn)速的測量有時會出現(xiàn)不準(zhǔn)確的現(xiàn)象,預(yù)計可以利用交流耦合設(shè)計的思想解決此問題。4 結(jié)論AT89S52單片機體積小,重量輕,抗干擾能力強,對環(huán)境要求不高,價格低廉,可靠性高,靈活性好。利用單片機實現(xiàn)的自動溫控電風(fēng)扇系統(tǒng),性能可靠,成本較低,適合大眾消費,有利于提高人們的睡眠質(zhì)量,有重要的應(yīng)用價值。其中溫度的準(zhǔn)確采集、繼電器控制是實現(xiàn)本系統(tǒng)的關(guān)鍵。電路和程序稍作修改,還可以實現(xiàn)其他一些功能,比如大棚溫度控制、電動機溫度檢測、自動定時鬧鐘、家庭電器自動控制系統(tǒng)等,系統(tǒng)

11、移植性強參考文獻(xiàn):1李長云.C語言程序設(shè)計.北京:國防工業(yè)出版社.20112周潤景, 徐宏偉, 丁莉編著.單片機電路設(shè)計、分析與制作.北京:機械工業(yè)出版社.20103付少波,付蘭芳主編.傳感器及其應(yīng)用電路.北京:化學(xué)工業(yè)出版社.20114周杏鵬. 傳感器與檢測技術(shù). 北京:清華大學(xué)出版社.2010 附錄A(程序)程序1.1#include<reg51.h>#include"intrins.h"sbit RS=P10; /1602 kongzhiduansbit EN=P12;sbit RW=P11;sbit DQ=P13; /18B20cewenduansbit

12、 speed1=P20;sbit speed2=P21;sbit speed3=P22;sbit stop=P24;sbit button1=P25;sbit button2=P26;sbit button3=P27;#define uchar unsigned char#define uint unsigned intvoid Init18B20(void); /初始化void Write18B20(uchar ch);/寫數(shù)據(jù)unsigned char Read18B20(void);/讀數(shù)據(jù) void Delay15(uchar n); void Delay10ms(uint delay

13、_num);void Display(void);void sudu(uint temp3 ); void sudu2(); Code uchar decimalH=00,06,12,18,25,31,37,43,50,56,62,68,75,81,87,93;code uchar decimalL=00,25,50,75,00,25,50,75,00,25,50,75,00,25,50,75;uint ResultTemperatureH ,ResultTemperatureLH,ResultTemperatureLL;/整數(shù),小數(shù)高位,小數(shù)低位 */uint ResultSignal;ui

14、nt temp;/*/測速/float f=0;/uchar LED0_data,LED1_data,LED2_data,LED3_data;uchar i=0;/*顯示模塊*/延時函數(shù)void delay_1us(void) /1us延時函數(shù) _nop_(); void delay_nus(unsigned int n)/N us延時函數(shù) unsigned int i=0; for(i=0;i<n;i+) delay_1us(); void delay_1ms(void) /1ms延時函數(shù) unsigned int i; for(i=0;i<1140;i+); void dela

15、y_nms(unsigned int n) unsigned int i=0; for(i=0;i<n;i+) delay_1ms(); /*/寫指令函數(shù)void write_command(unsigned char com) delay_nus(10); /delay RS=0; EN=1; P0&=0x00;/清高四位 P0=com;/寫高四位 EN=0; /寫數(shù)據(jù)函數(shù)void write_data(unsigned char datas) delay_nus(10); RS=1; EN=1; P0&=0x00; P0=datas; EN=0;/初始化LCD1602

16、函數(shù)void LCD_init(void) P0=0xff;/設(shè)為輸出 write_command(0x38);/8位顯示-對應(yīng)功能設(shè)置指令 write_command(0x0c);/顯示開-對應(yīng)開關(guān)顯示控制指令 write_command(0x01);/清屏-對應(yīng)清屏指令 delay_nms(2); /delay void LCD_set_addr(unsigned char x,unsigned char y) /x:015,y:01 if(y) write_command(0xc0+x); /第二行顯示 else write_command(0x80+x); /第一行顯示/寫字符函數(shù)vo

17、id LCD_write_char(unsigned char X,unsigned char Y, unsigned char datas) /列x=015,行y=0,1 LCD_set_addr(X,Y); /寫地址 write_data(datas); /寫字符串函數(shù)void LCD_write_string(unsigned char X,unsigned char Y, unsigned char *s) /列015,行y=0,1 LCD_set_addr(X,Y); /寫地址 while(*s) write_data(*s);s+; /*/*測溫模塊*/讀溫度數(shù)據(jù)unsigned

18、char Read18B20(void) unsigned char ch; unsigned char q ; for(q=0;q<8;q+) ch=ch>>1; DQ=0; _nop_(); DQ=1; _nop_();_nop_();_nop_();_nop_(); if(DQ=1) ch=ch|0x80; else ch=ch&0x7f; Delay15(3); DQ=1; return (ch);/寫指令void Write18B20(uchar ch) uchar i; for(i=0;i<8;i+) DQ=0; Delay15(1); DQ=ch&

19、amp;0x01; Delay15(3); DQ=1; ch=ch>>1; _nop_(); /初始化void Init18B20(void) DQ=0; Delay15(33);/至少延時480us DQ=1; Delay15(10);/至少延時100us /延時子程序void Delay15(uchar n) do _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); n-; while(n); vo

20、id Delay10ms(uint delay_num) uchar i; while(delay_num-) for(i=0;i<125;i+) ; /溫度顯示void Display(void) uint i,j,q; LCD_init(); write_command(0x01); write_command(0x01); delay_nms(2); q=ResultTemperatureH/100; i=(ResultTemperatureH%100)/10; j=ResultTemperatureH-(i*10+q*100); temp=q*100+i*10+j; if(Res

21、ultSignal) LCD_write_string(0,0,"T:- . "); else LCD_write_string(0,0,"T:+ . "); LCD_write_char(3,0,i|0x30); LCD_write_char(4,0,j|0x30); LCD_write_char(6,0,(ResultTemperatureLH/10)|0x30); LCD_write_char(7,0,(ResultTemperatureLH%10)|0x30);/*/*測速模塊*/*定時器初始化*/void initime() TMOD=0x51

22、; /T1計數(shù)器,T0定時器,方式1 TL0=(65536-10000)%256; TH0=(65536-10000)/256; TL1=0; TH1=0; ET0=1; EA=1;/速度顯示display(uint f) uint a=0,b=0,c=0; f=f/3.14; a=f/100; b=(f%100)/10; c=f-(a*100+b*10); delay_nus(50); LCD_write_string(0,1,"speed:"); LCD_write_char(6,1,a|0x30); LCD_write_char(7,1,b|0x30); LCD_wr

23、ite_char(8,1,c|0x30); LCD_write_string(9,1,"r/s");timer()interrupt 1 using 2 i=i+1; if(i=100) i=0; f=(TH1*256+TL1); TL1=0; TH1=0; TL0=(65536-10000)%256; TH0=(65536-10000)/256;void sudu(uint temp3) if( (temp3<26)&&(temp3>23)|(temp3=26) speed1=0; speed2=0; speed3=1; else if(tem

24、p3<30)&&(temp3>26) speed1=0; speed2=1; speed3=0; else if(temp3>30)|(temp3=30) speed1=1; speed2=0; speed3=0; else speed1=0; speed2=0; speed3=0; void sudu2() if(button1=0)&&(button2=1)&&(button3=1) speed1=0; speed2=0; speed3=1; else if( (button2=0 ) &&(button3=1) ) speed1=0; speed2=1; speed3=0; else if(button3=0) speed1=1; speed2=0; speed3=0; else speed1=0; speed2=0; speed3=0; main() uint i; uint TemH,TemL,delay; speed3=0;/速度初始化 speed2=0; speed1=0; Init18B20(); initime(); TR0=1; TR1=1; RW=0; button1=1;/按鍵初始值 bu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論