實驗13傳感器之溫度篇_第1頁
實驗13傳感器之溫度篇_第2頁
實驗13傳感器之溫度篇_第3頁
實驗13傳感器之溫度篇_第4頁
實驗13傳感器之溫度篇_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗十三 傳感器之溫度篇 傳感器實驗十三溫度傳感器 13.1 實驗簡介 1.4.1 溫度傳感器是最早開發,應用最廣的一類傳感器。溫度傳感器的市場份額大大超過了其他的傳感器。從17世紀初人們開始利用溫度進行測量。在半導體技術的支持下,本世紀相繼開發了半導體熱電偶傳感器、PN結溫度傳感器和集成溫度傳感器。與之相應,根據波與物質的相互作用規律,相繼開發了聲學溫度傳感器、紅外傳感器和微波傳感器。溫度傳感器是五花八門的各種傳感器中最為常用的一種,現代的溫度傳感器外形非常得小,這樣更加讓它廣泛應用在生產實踐的各個領域中,也為人們的生活提供了無數的便利和功能。溫度傳感器有四種主要類型:熱電偶、熱敏電阻、電阻

2、溫度檢測器(RTD)和IC溫度傳感器。IC溫度傳感器又包括模擬輸出和數字輸出兩種類型。13.2 實驗目的1、 通過該實驗項目,學生能夠了解溫度傳感器的硬件電路和工作原理;2、 通過該實驗項目,學生能夠學會編寫溫度傳感器的程序。13.3 實驗內容1、 編寫一個溫度傳感器采集程序;2、 將采集到的溫度作簡單的處理;3、 用按鍵KEY1控制ZIGBEEN是否發送數據。 13.4 實驗設備13.4.1 硬件部分1、 ZIGBEE調試底板一個;電源開關電源傳感器C端口指示燈 2J-LINK接口ZigBee_DEBUG復位鍵節點按鍵撥碼開關ZigBe按鍵紅外發射指示燈1ZigBee復位鍵可調電阻傳感器A端

3、口傳感器B端口圖13-1 ZIGBEE調試底板2、 20PIN轉接線一條和帶USB的J-Link仿真器一個;20PIN轉接線,另一端接轉接板方口USB線,另一端連接電腦上電指示燈圖13-2 J-Link仿真器10PIN轉接線接口3、 轉接板一個; 20PIN轉接線接口串口接口圖 13-3 轉接板4、 912V電源適配器2個;圖13-4 電源適配器5、 帶普通USB線的ZIGBEE仿真器一個; 10PIN轉接線 普通USB線電源(上)和狀態指示燈圖13-5 ZIGBEE仿真器6、 智能網關一臺;ZigBee模塊組合接口USB下載數據線顯示屏SD卡電源及開關開關按鈕圖13-6 智能網關7、 ZIG

4、BEE模塊兩個;圖 13-7 ZIGBEE 模塊8、 溫度傳感器一個和10PIN的轉接線一條。 圖13-8 溫度傳感器和10PIN轉接線13.4.2 軟件部分1、 Keil uVision4 集成開發環境;2、 JLINK仿真器驅動; 13.5 實驗設備13.5.1 溫度傳感器(DS18B20)介紹1、 DS18B20的數字溫度計提供9位至13位攝氏溫度測量,并具有報警功能,使用非易失性用戶可編程上限和下限觸發點。DS18B20的通信使用單總線,只需要一個數據線(與地面)用于中央微處理器的通信。它的工作溫度范圍為-55°C至+135°C之間,在范圍為-10°C至+

5、85°C上精確到±0.5以上。此外,DS18B20的可以直接以數據線(“寄生電源”)作為電源線驅動,省去了外部供應電源。每個DS18B20都有一個唯一的64位串行代碼,這使得多個DS18B20s可以在同一總線上運作。因此,它是簡單的使用一個微處理器控制了大面積分布的許多DS18B20s。HVAC環境控制,建筑物內的溫度監測系統,設備或機械,過程監測和控制系統等方面的應用都得益于此功能的應用。2、 DS18B20特性a、 獨特的單總線接口,只需要一個通信端口引腳b、 每個設備都有一個唯一的64位串行代碼存儲在板載ROM上c、 多點功能簡化了分布式溫度傳感應用d、 不需要外部元

6、件e、 數據線可供電電源電壓范圍是3.0V至5.5Vf、 測量溫度從-55°C至+135°C(-67°F至+257°F)g、 從-10°C至+85°C間的精度是±0.5°Ch、 溫度計分辨率是用戶可選擇的9至13位i、 溫度轉換到13位溫度值需要750ms(最大)j、 用戶可定義的非易失(NV)報警設置k、 報警搜索命令識別和地址的設備,其溫度超出編程限制(溫度報警條件)l、 可在8引腳SO,8引腳SOP,3引腳TO-92封裝m、 與DS1822的軟件兼容n、 應用包括恒溫控制,工業系統,消費類產品,溫度計或任何熱

7、敏感系統13.5.2 溫度傳感器工作原理電路中用到,溫度傳感器電路、單片機系統、狀態顯示系統構成。其基本工作原理:經過信號放大電路,溫度傳感器電路將感受到的溫度模擬量轉換為數字量輸出至單片機系統, 經AD轉換由狀態顯示系統進行顯示。溫度傳感器工作框圖如圖13-9:單片機系統狀態顯示系統溫度傳感器電路圖13-9 電路工作框圖13.5.3 溫度傳感器的硬件電路圖電路中,溫度傳感器電路如圖13-10。圖13-10 溫度傳感器原理圖13.6 實驗步驟1、 燒好ZIGBEE和智能網關程序。(如果沒有動傳感器ZIGBEE和網關的程序,那么此步驟可以跳過;如果動了,詳細下載過程可參考“傳感器實驗之環境搭建.

8、doc”文檔,這里恕不贅述。)2、 將溫度傳感器接到傳感器A端口。可以在圖13-1所示中找到傳感器A端口的位置,對應原理圖上的J4,如圖13-10所示,切勿把傳感器位置裝錯了。3、 按原理圖,連接好外圍硬件,如圖13-11所示。(這個連接過程當中很多的卡槽,千萬別把卡槽卡裝反了,不然很容易燒壞J-Link。)ZIGBEEN調試底板和ZIGBEEN模塊轉接板,這樣類似的卡槽千萬別裝反了,不然可能燒壞J-Link電源傳感器鏈接20PIN連接線10PIN連接線J-Link,左邊直接用USB線連接電腦圖13-11 外圍硬件連接示意圖4、 將仿真器USB連接入PC 機,插好電源,并打開開發實驗箱上的電源

9、開關和啟動按鈕,跳到網關顯示界面,然后點擊功能鍵進入,如13-12圖所示。 點擊這進入功能界面圖 13-12 網關顯示界面5、 找到傳感器實驗圖標如圖13-13所示,點擊進入傳感器實驗顯示界面如13-14圖所示。圖13-13 傳感器實驗顯示程序圖 13-14 網關傳感器顯示界面6、 新建一個文件夾命名為“溫度傳感器”,并在該文件夾下創建一個“RVMDK“文件夾(存放工程用);7、 然后在“RVMDK”文件夾下新建一個“OBJ”文件夾(用來存放編譯輸出信息); 8、 在“傳感器實驗/實驗例程/實驗13 傳感器之溫度篇/code”文件夾下找到“rsc”文件夾,把它復制到到“溫度傳感器”文件夾下,即

10、與“RVMDK”文件夾并列;9、 啟動Keil Vision4;10、 單擊菜單欄的“Project”,選擇“New uVision Project”,新建一個工程,命名為“TEMP”;11、 保它存在剛建立好的“溫度傳感器”里面的“RVMDK“文件夾下;12、 右鍵“Target 1”,選擇“Manage Components”選項;13、 把“Target 1”修改為“TEMP”,把Source Group1”改命為“Starup”并創建六個Groups,分別是“user”“usart”“lib”“led”“sensor”“key”。如圖5-16所示;14、 然后給每個Group分別在添加

11、好對應的.c文件,(.c文件在剛剛復制過來的“rsc”文件夾里面),添加完成圖13-15所示;圖13-15 文件示意圖15、 單擊工具欄的“Rebuid”圖標,直到編譯沒有警告和錯誤,如果有就根據警告和錯位。進行修改程序;16、 點擊工具欄的“Target Options”,選擇“Output”,把輸出文件位置設置在“OBJ”下,并且設置有hex輸出;17、 點擊工具欄的“Target Options”配置好J-Link;18、 打開ZIGBEE地板上的電源開關,點擊“LOAD”進行程序燒寫驗證;(以上詳細建工程過程可以參考實驗二)19、 驗證:雙手緊握溫度傳感器探測頭,觀察顯示屏上狀態的變化

12、;20、 驗證完畢后,退出J-Link仿真界面,關閉Keil Vision4軟件;關閉硬件電源,撿收好硬件設備,并整理桌面;21、 實驗完畢。 13.7 實驗步驟13.7.1 程序是否能運行和編譯成功如圖13-16所示為編譯成功圖:圖 13-16編譯通過截圖13.7.2 用手握住溫度傳感器模塊,觀察顯示屏上顯示的溫度值是否發生變化1、 圖13-17所示為溫度沒改變之前溫度傳感器在網關上的顯示:圖 13-17 傳感器狀態顯示2、 圖13-18所示為溫度沒改變之后溫度傳感器在網關上的顯示:圖 13-18 傳感器狀態顯示 13.8 實驗部分參考程序解析(完整程序見源程序文件)13.8.1 IO口初始

13、化u8 DS18B20_Init(void)RCC->APB2ENR |= 1<<3; /使能PORTB口時鐘 /* 把PORTB.7配置成 推挽輸出*/GPIOB->CRL&=0X0FFFFFFF; GPIOB->CRL|=0X30000000; GPIOB->ODR|=1<<7; /輸出1DS18B20_Rst();return DS18B20_Check(); 分析:GPIOB->CRL&=0X0FFFFFFF使得GPIOB 的CRL的最高四置零,然后GPIOB->CRL|=0X30000000處理之后,使得GP

14、IOB的CRL的最高四位置變成00 11。端口配置寄存器:GPIOx_CRL13.8.2 IO方向設置#define DS18B20_IO_IN() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=8u<<28;#define DS18B20_IO_OUT() GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=3<<28;分析:3<<28,就是把3左移28位 然后再與上面的寄存器 或運算,并賦值給寄存器。13.8.3 讀取溫度傳感器寄存器數據u8 DS18B20_Read_By

15、te(void) / read one byte u8 i,rdat;DS18B20_IO_OUT(); /IO方向設置DS18B20_DQ_SET;delay_us(5);for (i=1;i<=8;i+) rdat>>=1;DS18B20_DQ_CLR;delay_us(5);DS18B20_DQ_SET;delay_us(5);DS18B20_IO_IN();if(DS18B20_DQ_IN)rdat|=0x80;elserdat&=0x7f;DS18B20_IO_OUT();delay_us(35);DS18B20_DQ_SET; return rdat;分析

16、:PB7設置為推挽式輸出模式,先將電平拉高5s,然后拉低5s,之后設置為上拉輸入,等待5s,當前PE0引腳電平即為數據位,最后延時35s,重新拉高電平,準備下一個數據位接收,所有位接收完畢則退出,具體電平變化可參考DS18B20.PDF中關于單總線操作章節。13.8.4 寫入溫度傳感器寄存器數據void DS18B20_Write_Byte(u8 dat) u8 j;DS18B20_IO_OUT();DS18B20_DQ_SET; for (j=1;j<=8;j+) DS18B20_DQ_CLR;delay_us(5); if (dat&0x01) DS18B20_DQ_SET;

17、 else DS18B20_DQ_CLR;/ Write 0 delay_us(35);DS18B20_DQ_SET;delay_us(2);dat>>=1; 分析:PE0設置為推挽式輸出模式,先將電平拉高然后拉低5s,最后根據數據位設置PE0引腳電平,等待35s,最后恢復高電平,準備下一個數據位傳送,所有位傳送完畢則退出,具體電平變化可參考DS18B20.PDF中關于單總線操作章節。13.8.5 采集數據函數void DS18B20_Get_Temp(u8* data) u8 temp; u8 TL,TH;short tem; DS18B20_Start (); / ds1820

18、 start convert DS18B20_Rst(); DS18B20_Check(); DS18B20_Write_Byte(0xcc);/ skip rom DS18B20_Write_Byte(0xbe);/ readTemp TL=DS18B20_Read_Byte(); / LSB TH=DS18B20_Read_Byte(); / MSB 溫度正負 /初始化數值 data0 = 0;data1 = 0; data2 = 0;data3 = 0;data4 = 0; if(TH>7) TH=TH; TL=TL; temp=0;/溫度為負 else temp=1;/溫度為正 tem=TH;

溫馨提示

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

評論

0/150

提交評論