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);
}
评论
查看更多