4.23.1概述
人的眼睛能看到的可見光按波長從長到短排列,依次為紅、橙、黃、綠、青、藍、紫。其中紅光的波長范圍為0.62~0.76μm;紫光的波長范圍為0.38~0.46μm。比紫光光波長更短的光叫紫外線,比紅光波長更長的光叫紅外線最廣義地來說,傳感器是一種能把物理量或化學量轉變成便于利用的電信號的器件,紅外傳感器就是其中的一種。隨著現代科學技術的發展,紅外線傳感器的應用已經非常廣泛。
4.23.1.1紅外接收頭工作原理
紅外接收頭一般是接收、放大、解調一體頭,一般紅外信號經接收頭解調后,數據“0”和“1”的區別通常體現在高低電平的時間長短或信號周期上,單片機解碼時,通常將接收頭輸出腳連接到單片機的外部中斷,結合定時器判斷外部中斷間隔的時間從而獲取數據。重點是找到數據“0”與“1”間的波形差別。
3條腿的紅外接收頭一般是接收、放大、解調一體化,接收頭輸出的是解調后的數據信號,單片機里面需要相應的讀取程序。具體詳細的使用參數和時序請參考官方技術手冊。
4.23.1.2在STM32實驗系統中紅外系統的組成
在我們是試驗中使用的是紅外線遙控器。因為紅外線遙控器已經被廣泛的使用在各類型的家電產品上,它的出現給使用電器提供了很多的便利。紅外線系統一般由紅外發射裝置和紅外接收設備兩大部分組成。紅外發射裝置又可由鍵盤電路、紅外編碼芯片、電源和紅外發射電路組成。紅外接收設備可由紅外接收電路、紅外解碼芯片、電源和應用電路組成。通常為了使信號更好的被發射端發送出去,經常會將二進制數據信號調制成脈沖信號,通過紅外發射管發射。常用的有通過脈沖寬度來實現信號調制的脈寬調制(PWM)和通過脈沖串之間的時間間隔來實現信號調制(PPM)兩種方法。
1、常用的紅外發光二極管其外形和發光二極管LED相似,發出紅外光。管壓降約1.4v,工作電流一般小于20mA。為了適應不同的工作電壓,回路中常常串有限流電阻。
一些彩電紅外遙控器,其紅外發光管的工作脈沖占空比約為1/3-1/4;一些電器產品紅外遙控器,其占空比是1/10。減小脈沖占空比還可使小功率紅外發光二極管的發射距離大大增加。常見的紅外發光二極管,其功率分為小功率(1mW-10mW)、率(20mW-50mW)和大功率(50mW-100mW以上)三大類。紅外發光二極管由紅外輻射效率高的材料(常用砷化鎵GaAs)制成PN結,外加正向偏壓向PN結注入電流激發紅外光。光譜功率分布為中心波長830~950nm,半峰帶寬約40nm左右。
2、紅外接收頭的種類很多,如右圖所示。引腳定義也不相同,一般都有三個引腳,包括供電腳,接地和信號輸出腳。根據發射端調制載波的不同應選用相應解調頻率的接收頭。具體的選型要參考廠家選型手冊。
紅外接收頭內部放大器的增益很大,很容易引起干擾,因此在接收頭的供電腳上須加上濾波電容,一般在22uf以上。有的廠家建議在供電腳和電源之間接入330歐電阻,進一步降低電源干擾。
4.23.1.3紅外發光二極管簡易測試
高亮度LED、紅外LED、光電三極管外形是一樣的,非常容易搞混,因此需要通過簡易測試將它們區分出來。用指針式萬用表(1k擋)黑表筆接陽極、紅表筆接陰極(應采用帶夾子的表筆)測得正向電阻在20~40kΩ;黑表筆接陰極、紅表筆接陽極測得反向電阻大于500kΩ以上者是紅外發光二極管。透明樹脂封裝的可用目測法:有圓形淺盤的極是負極。若正向電阻在200kΩ以上(或指針微動),反向電阻接近∞者是普通發光二極管。若黑表筆接短腳,紅表筆接長腳,遮住光線時電阻大于200kΩ,有光照射時阻值隨光線強弱而變化(光線強時,電阻小),這是光電三極管。
4.23.1.4紅外遙控常用的載波頻率
紅外遙控常用的載波頻率為38kHz,這是由發射端所使用的455kHz陶振來決定的。在發射端要對晶振進行整數分頻,分頻系數一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遙控系統采用36kHz、40kHz、56kHz等,一般由發射端晶振的振蕩頻率來決定。紅外遙控的特點是不影響周邊環境、不干擾其它電器設備。由于其無法穿透墻壁,故不同房間的家用電器可使用通用的遙控器而不會產生相互干擾;電路調試簡單,只要按給定電路連接無誤,一般不需任何調試即可投入工作;編解碼容易,可進行多路遙控。4.23.2數據格式熟悉數據格式是編程的基礎。下面我們著重說明紅外發射和接收的數據格式。在同一個遙控電路中通常要使用實現不同的遙控功能或區分不同的機器類型,這樣就要求信號按一定的編碼傳送,編碼則會由編碼芯片或電路完成。對應于編碼芯片通常會有相配對的解碼芯片或包含解碼模塊的應用芯片。在實際的產品設計或業余電子制作中,編碼芯片并一定能完成我們要求的功能,這時我們就需要了解所使用的編碼芯片到底是如何編碼的。只有知道編碼方式,我們才可以使用單片機或數字電路去定制解碼方案。l載波波形使用455KHz晶體,經內部分頻電路,信號被調制在37.91KHz,占空比為3分之1。調制頻率(晶振使用455KHz時)fCAR=1/Tc=fOSC/12≈38KHz(fOSC是晶振頻率)占空比=T1/Tc=1/3
數據格式
數據格式包括了引導碼、用戶碼、數據碼和數據碼反碼,編碼總占32位。數據反碼是數據碼反相后的編碼,編碼時可用于對數據的糾錯。注意:第二段的用戶碼也可以在遙控應用電路中被設置成第一段用戶碼的反碼。
使用455KHz晶振時各代碼所占的時間
位定義用戶碼或數據碼中的每一個位可以是位‘1’,也可以是位‘0’。區分‘0’和‘1’是利用脈沖的時間間隔來區分,這種編碼方式稱為脈沖位置調制方式,英文簡寫PPM。
按鍵輸出波形uPD6121G按鍵輸出有二種方式:一種是每次按鍵都輸出完整的一幀數據;另一種是按下相同的按鍵后每發送完整的一幀數據后,再發送重復碼,再到按鍵被松開。重復碼
單一按鍵波形
連續按鍵波形
4.23.3實驗目的
通過我們選用的紅外遙控器發射鍵盤值數據碼,大黃蜂實驗板上集成了VS838一體接收頭接收遙控器發來的鍵盤值編碼,經過CPU處理后送至USB-RS232串口輸出至計算機顯示。
4.23.4硬件設計
利用實驗板上集成的VS838紅外接收電路,通過程序設計把接收到的紅外線鍵盤編碼打印輸出到計算機顯示。硬件設計見圖4.23.1紅外線發送原理圖;圖4.23.2紅外線接收原理圖。
紅外線發送控制是CPU的第59管腳直接控制,控制三極管Q6的通斷頻率來使紅外發光二極管(IrDA)發光。
紅外線接收控制與CPU的第2管腳相連接,接收到的紅外編碼直接發送到CPU,CPU通過程序解碼。
4.23.5軟件設計
1、main.c文件
/**************************************************************************************************
#include “timer.h”
#include “IR1.h”
void RCC_Configuration(void);
void GPIO_Normal_Config(void);
extern u8 gdata;//LED的狀態0/1//只能聲明,不能定義
int main(void) {
SystemInit();//初始化系統,使得系統頻率為72M
systick_init();//配置Systick,使得1ms產生中斷
RCC_Configuration();//GPIO使能
GPIO_Normal_Config();//GPIO初始化
IR_Init();//紅外初始化
while(1) {
switch(gdata) {
case 1:
delay_ms(10);
GPIO_SetBits(GPIOA,GPIO_Pin_8);//輸出高電平紅外信號指
break;
case 0:
delay_ms(10);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);//輸出低電平
break;
}
}
}
void RCC_Configuration(void) {
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA,ENABLE);
}
評論
查看更多