4.傳感器應(yīng)用3光敏_第1頁
4.傳感器應(yīng)用3光敏_第2頁
4.傳感器應(yīng)用3光敏_第3頁
4.傳感器應(yīng)用3光敏_第4頁
4.傳感器應(yīng)用3光敏_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、3、 光敏傳感器前言:這一節(jié)我學(xué)習(xí)傳感器部分內(nèi)容中的光敏傳感器,這一類型的傳感器跟前面溫濕度的傳感器最大的區(qū)別就是控制簡單,只有硬件電路搭好了,給 CC2530 的 IO 口一個(gè)高低電平就是反映外界情況。所以很方便。用起來就傳感器介紹:電倍增管、光敏電阻、光敏三極管、能電池、紅外線傳感器、紫外線擊接合處就會產(chǎn)生電流。圖 1 光敏電阻實(shí)現(xiàn):網(wǎng)蜂二代 ZigBee 開發(fā)1傳感器、光纖式光電傳感器、色彩傳感器、CCD 和 CMOS 圖像傳感器等。它的敏感波長在可見光波長附近,包括紅外線波長和紫外線波長。光傳感器不只局限于對光的探測,它還可以作為探測元件組成其他傳感器,對許多非電量進(jìn)行檢測,只要將這些

2、非電量轉(zhuǎn)換為光信號的變化即可。光傳感器是目前產(chǎn)量最多、應(yīng)用最廣的傳感器之一,它在自動(dòng)控制和非電量電測技術(shù)中占有非常重要的地位。最簡單的光敏傳感器是光敏電阻,當(dāng)光子沖光敏傳感器是最常見的傳感器之一,它的種類繁多,主要有:光電管、光圖 2網(wǎng)蜂物聯(lián)網(wǎng) ZigBee 開發(fā)圖 3 光敏傳感器硬件電路2實(shí)驗(yàn)現(xiàn)象:光敏電阻電路通過檢測外界光線的情況,將信息通過 LCD12864 顯示和串口打印出來。實(shí)驗(yàn)講解:像前面?zhèn)鞲衅骼桃粯?,先?shí)現(xiàn)機(jī)程序里檢測光敏電阻電路的檢測。然后在協(xié)議棧里添加相應(yīng)的代碼。一:在 機(jī)上完成對光敏電阻電路的驅(qū)動(dòng)。打開配套程序下機(jī)文件夾光敏傳感器下的工程文件,看到函數(shù)如下:/*/*/*/

3、*Zigbee 學(xué)習(xí)例程/*例程名稱:光線檢測/*建立時(shí)間:2012/10*/*/*描述:通過光敏電阻檢測外界光線,通過 LED1 指示*/1.1.#include 2.3.2.#define uunsigned #define uchar unsignedchar4.5.6./定義控制 LED 燈的端口 #define LED1 P1_0 #define LIGHT P2_0/LED1 為 P1.0 口控制/光敏電阻為 IO 口為 P2.07.8.9./函數(shù)void voidDelayms(u);/延時(shí)函數(shù)/初始化 LED1/光敏初始化/按鍵掃描程序InitLed(void); LightI

4、nit();10. void11. uchar LightScan ();12. /*13.延時(shí)函數(shù)14. */15. void Delayms(u16. xms)/i=xms即延時(shí) i 毫秒17. ui,j;18. for(i=xms;i0;i-)for(j=587;j0;j-);19. 20. /*LED 初始化函數(shù)321. */22. void InitLed(void)23. P1DIR |= 0 x01; /P1_0 定義為輸出LED1 = 1;/LED1 燈熄滅24. 25. /*光敏電阻初始化函數(shù)26. */27. void LightInit()28. P2SEL P2DIR

5、P2INP&= &= &=0X01;0X01;0 x01;/設(shè)置 P20 為普通 IO 口/ 在 P20 口,設(shè)置為輸入模式/打開 P20 上拉電阻,不影響29. 30. /*i.按鍵檢測函數(shù)31. */32. uchar LightScan(void)33. if(LIGHT=0)Delayms(10); if(LIGHT=0)return 1;/有按鍵按下return 0;/無按鍵按下34. 35. /*主函數(shù)36. */37. void main(void)38. 39.40.41.InitLed(); LightInit(); while(1)if(LightScan()LED1=1;

6、/調(diào)用初始化函數(shù)/按鍵改變 LED 狀態(tài)/有光,LED1 滅掉4elseLED1=0;/無光,LED1 點(diǎn)亮42. 來看主函數(shù):第 3940 行:進(jìn)行一些初始化工作。第 4142 行:判斷外界光線情況,通過 LED1 指示。上面的代碼實(shí)現(xiàn)了當(dāng)有光線時(shí)候 LED1 滅掉,沒有光線的時(shí)候 LED1 亮。實(shí)驗(yàn)現(xiàn)象如圖 4 所示:圖 4二:將程序添加到協(xié)議棧代碼中光敏電阻電路是對 IO 口電平的檢測。所以在協(xié)議棧里檢測程序比較簡單。只需要配置好 IO 口,然后周期性檢測就可以了。1)打開例程 SleApp.eww 工程,打開 SleApp.c 文件。先初始化P2.0 引腳。設(shè)為輸入模式。/*光敏電阻電

7、路初始化*/P2SEL P2DIR P2INP&= &= &=0X01;0X01;0 x01;/設(shè)置 P2.0 為普通 IO 口/ 在 P2.0 口,設(shè)置為輸入模式/打開 P2.0 上拉電阻5圖 52)利用周期性點(diǎn)播的定時(shí)器作為光線信息時(shí)間,將到的給協(xié)調(diào)器。并通過 LCD 顯示和串口打印。協(xié)調(diào)器只做串口打印。0.5 秒采集一次。/ Send Message Timeout#define SLEAPP_SEND_PERIODIC_MSG_TIMEOUT 500/ Every 0.5 seconds3)終端每 0.5 秒執(zhí)行點(diǎn)播函數(shù)一次,面紅色代碼。在點(diǎn)播函數(shù)里判斷 IO 口。加入下voiduSl

8、eApp_SendPoToPoMessage(void )8 L;if(LIGHT=1)L=1;/有光線HalUARTWrite(0,no HalLcdWriteString(lightn,9);/串口No Light, HAL_LCD_LINE_3 ); /LCDelseL=0;/沒有光線HalUARTWrite(0,got Lightn,10);/串口HalLcdWriteString( Got Light, HAL_LCD_LINE_3 );/LCDif ( AF_DataRequest( &Po_To_Po_DstAddr,6&S S 1,&L, &SleApp_epDesc,LEAPP_PO_TO_PO_CLUSTERID,leApp_TransID,AF_DISCV_ROUTE, AF_DEFAULT_RADIUS )=afSus_SUCS)else/Erroroccurredinrequestto send.圖 64)協(xié)調(diào)器接收函數(shù)出來。數(shù)據(jù)讀出來然后判斷。通過串口打印傳感器信息caseSLEAPP_PO_TO_PO_CLUSTERID:if(pkt-cmd.Data0)HalUARTWrite(0,no lightn,9);/沒光線 elseHalUARTWrite(0,got lightn,10); /有光線 break;7圖 7實(shí)驗(yàn)現(xiàn)象:程序

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論