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