清華校內智能車競賽指導文件6-5紅外尋跡模塊指南_第1頁
清華校內智能車競賽指導文件6-5紅外尋跡模塊指南_第2頁
清華校內智能車競賽指導文件6-5紅外尋跡模塊指南_第3頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、6-5 紅外尋跡模塊介紹工程物理系學生科協技術部September 23, 2017Contents12前言22234原理圖介紹2.12.22.3. . . . . . . . . . . . . . . . . . . . . .發射接收一體的紅外對管LM393 比較器 . . . . . . . . . . . . . . . . . . . . . . . . . . . .104 電容 (0.1uf). . . . . . . . . . . . . . . . . . . . . . . . . . .34紅外模塊使用方法45代碼57789函數應用舉例5.15.25.3調用 IR_I

2、nit() 函數來初始化紅外傳感器模塊 . . . . . . . . . . .刷新 8 個紅外模塊的狀態 . . . . . . . . . . . . . . . . . . . . . .啟用紅外模塊中斷 . . . . . . . . . . . . . . . . . . . . . . . . . .1/1前言這個文檔旨在介紹代碼中紅外尋跡模塊部分的使用方法,同時為大家講解紅外尋跡模塊的工作原理。2原理圖介紹Figure 1: 紅外模塊原理圖紅外模塊的原理圖如圖1所示,下面開始逐個分析圖中的元件。2.1發射接收一體的紅外對管無色透明為發射管,通電后能夠產生人眼不可見紅外光(拍照可

3、見);黑色部分為接收管,的電阻會隨著接收到紅外光的多少而變化:由于黑色吸光,當紅外發射管照射在黑色物體上時反射回來的光就較少,接收管接收2 of 9到的紅外光就較少,表現為電阻大;當照射在白色表面時發射的紅外線就比較多,表現為接收管的電阻較小。2.2LM393 比較器Figure 2: 比較器比較器有兩個輸入端和一個輸出端,兩個輸入端一個稱為同相輸入端,用“+”號表示,另一個稱為反相輸入端,用“”表示。用作比較兩個電路時,任意一個輸入端加一個固定電壓作參考電壓(也叫門限電壓),另一端則直接接需要比較的信號電壓。當“+”端電壓高于“”端電壓時,輸出正電源電壓,當 “”端電壓高于“+”端電壓時,輸

4、出負電源電壓(注意,此處所說的正電源電壓和負電源電壓是指接在比較器正負極的電壓)。可以簡單理解為:= 1, if V+ VV00, if V V+如原理圖所示,將紅外接收端的電壓信號傳遞給 LM393 的同相輸入端“+”,這個變化的電壓信號與電壓比較器的反相輸入端“-”的基準電壓相比較,當同相端“+”的電壓大于反相端“-”的電壓時,電壓比較器的輸出端“DO”輸出電壓,當同相端“+”電壓小于反相端“-”端電壓時,電壓比較器的輸出端“DO”輸出低電平電壓,此時開關指示燈亮。在照射到黑色物體時,接收管的電阻值很大,同相輸入端“+”電壓升高,使同相端“+”電壓大于反相端“-”端電壓,電壓比較器的輸出端

5、 DO 輸出高3 of 9電平電壓,此時開關指示燈不亮。在照射到白色物體時,接收管的電阻值很小,同相輸入端“+”電壓降低,使同相端“+”電壓小于反相端“-”端電壓,電壓比較器的輸出端 DO 輸出低電平電壓,此時開關指示燈亮。接在反相端“-“端的電位器 VR1 用于調節該端的電位電壓,這個電壓也就是電壓比較器輸入的閥值翻轉電壓 V-。調節紅外模塊的靈敏度時,僅需調節電位器來改變 V-的值。使用時,通常將模塊置于白色賽道上,微調電位器,當開關指示燈從熄滅剛好變為即可。(注:一、運算放大器(簡稱“運放”)和比較器在電路圖上的符號相同,如上圖,要結合其他信息加以區分。簡單講,比較器是運放的開環應用,但

6、比較器是針對電壓門限比較而設計的,要求的比較門限要精確,一般情況下,用運放作比較器達不到滿幅輸出,而且翻轉速度變慢(從 ns 變為 us 級),所以盡量不要用運放作比較器。二、運放可以接入負反饋電路,而比較器不能。所以不能用比較器替換運放。)2.3104 電容 (0.1uf)104 電容并聯在電源兩段,作用是給電源濾波,大致原則為:系統頻率越高,用的電容越小。一般 10MHz 的用 104(0.1 F),100MHz 的系統用 103(0.01 F)。另外,為了濾除高頻干擾,提高電源穩定性,一般都要給每個并聯一個104 的電容,并且越靠近位置越好。3紅外模塊使用方法分析完紅外模塊的原理,現在可

7、以開始研究它如何使用了。其實也非常簡單,通過之前的原理分析,知道:在照射到黑色物體時,輸出端 DO 輸出電壓;在照射到白色物體時,輸出端 DO 輸出低電平電壓。要想判斷紅外模塊照射到的是黑色物體還是白色物體,用單片機檢測一下D0 是還是低電平就好了。4 of 9但是需要注意的是,紅外尋跡模塊實際只能識別模塊正下方的一小塊區域是黑還是白,所以將它安裝在合適的位置和高度是非常重要的。考慮到大家的設計可能不同,沒有給大家設計紅外模塊支架,而是希望大家自己去設計,交底板上預留的大量的 3mm 安裝孔是用來連接支架和底板的。給制作。4代碼#include ” IR . h”/ 包含頭文件 IR . h/

8、 宏定義 : 編輯源代碼時 ,OUTPUT_H可以用 White 替換,/OUTPUT_L可以用 Black 替換,#define White#define BlackOUTPUT_HOUTPUT_L/HW_GPIO. h 第395 、396 行定義OUTPUT_H為1 ,OUTPUT_L為0/ 見IR . h 第15 行, 把0 改為1 , 則啟用中斷 , 否則默認不使用中斷 / 使用中斷 , 則函數定義如下 :#i f USEIRQ/*函數名 : IR_Init ()功能描述 : 紅外初始化函數參數: 無返回: 無*/void IR_Init ()GPIO_InitTypeDef gpio

9、_ir ; gpio_ir . GPIO_PTx=PTD;gpio_ir . GPIO_Pins=GPIO_Pin0_7 ;/ 定義結構體變量 gpio_ir , 參見HW_GPIO. h 第422 4/ 選擇D端口的07 八個引腳 , 見Port_Use . t x t 第2841 行gpio_ir . GPIO_PinControl=IRQC_ET; / 邊沿觸發外部中斷 , 見HW_GPIO. h 第416 行gpio_ir . GPIO_Dir=DIR_INPUT ; gpio_ir . GPIO_Output=White ;gpio_ir . GPIO_Isr=IR_isr ;/GP

10、IO 方向為 “ 輸入”/ 輸出/ 調用紅外中斷回調函數 , 見IR . c 第3040 行/ 初始化 gpio_ir , 見HW_GPIO. c 第29 117 行LPLD_GPIO_Init( gpio_ir ) ;5 of 9LPLD_GPIO_EnableIrq( gpio_ir ) ; / 使能GPIO 外部中斷 , 見HW_GPIO. c 第119 154 行/*函數名 : IR_isr ()功能描述 : 紅外中斷回調函數 , 選手可以修改參數: 無返回: 無*/void IR_isr ()for (IR_si =0; i 8; i+)/紅外狀態e i =LPLD_GPIO_Inp

11、ut_b(PTD, i ) ; /HW_GPIO. c 第353 374 行#else/ 不使用中斷 , 則定義函數如下 :/*函數名 : IR_Init ()功能描述 : 紅外初始化函數參數: 無返回: 無*/void IR_Init ()GPIO_InitTypeDef gpio_ir ; gpio_ir . GPIO_PTx=PTD;gpio_ir . GPIO_Pins=GPIO_Pin0_7 ;/ 定義結構體變量 gpio_ir , 參見HW_GPIO. h 第422 487 行/ 選擇D端口的07 八個引腳 , 見Port_Use . t x t 第2841 行6 of 9gpio

12、_ir . GPIO_Dir=DIR_INPUT ;gpio_ir . GPIO_Output=White ;/GPIO 方向為 “ 輸入”/ 輸出LPLD_GPIO_Init( gpio_ir ) ; / 初始化 gpio_ir , 見HW_GPIO. c 第29 117 行/*函數名 : IR_refresh ()功能描述 : 紅外刷新函數參數: 無返回: 無*/void IR_refresh ()for (IR_si =0; i 8; i +)e i =LPLD_GPIO_Input_b(PTD, i ) ;/紅外狀態/HW_GPIO. c 第353 374 行#endif55.1函數應

13、用舉例調用 IR_Init() 函數來初始化紅外傳感器模塊voidOverall_Init_All ()motor_Initialize Motor ( ) ; OLED_Init ( ) ;UART_Init ( ) ;MPU6050_init ( ) ;7 of 9CCD_init ( ) ; Led_Init ( ) ;Button_Init ( ) ; Timer_Init ( ) ; IR_Init ( ) ;Encoder_Init ( ) ;其中,Overall_Init_All() 調用 IR_Init() 來初始化紅外傳感器模塊。需要注意的是,所有模塊的初始化函數都已經被包含

14、在 Overall_Init_All()中,只需要調用一次 Overall_Init_All() 就能完成全部的初始化工作。5.2刷新 8 個紅外模塊的狀態刷新紅外狀態的函數已經封裝好,為 IR_refresh(), 調用一次,當前當前 8 個紅外模塊的狀態就會保存在全局變量數組 IR_svoid main ( void )Overall_Init_All ( ) ; / 初始化全部模塊e 中。Draw_Startup ( ) ;while (1 )/ 顯示屏顯示 “ 工程物理系學生科協 ”IR_refresh ( ) ;a , b , i =0;while ( IR_s if ( i =8)

15、 a=0 ,b=0else / 調用 IR_refresh () 函數紅外狀態e i =White)&( i 8) i=i +1;/ 全白, 則a=0, b=0motor_DirControlAB ( a , b ) ;/ 控制AB電機方向8 of 9上述代碼只是紅外刷新函數的一個簡單示例,其實在主循環中持續刷新紅外的狀態是不明智的。這樣會占用大量的運算資源,甚至會導致其他模塊的工作異常,比較規范的使用方法是在定時中斷中調用紅外模塊刷新函數,再根據紅外模塊的狀態執行相應的策參照重要的輔助功能函數中對于定時中斷的介紹。5.3啟用紅外模塊中斷用條件編譯為選手準備好了另一種紅外方案啟用紅外模塊中斷。要啟用紅外模塊中斷,首先要完成重要的第一步:將 IR.h 中的 #define USEIRQ 0 改為 #define USEIRQ 1紅外模塊中斷為上下沿觸發中斷,也就是說 8 個紅外模塊中任意一個的狀態發生

溫馨提示

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

評論

0/150

提交評論