关于红外传感器应用——遥控技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于红外传感器的应用——遥控技术
红外线遥控是一种利用红外遥控系统来控制被控对象的系统.整个系统由数字电路和模拟电路两个部分组成,也是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。红外遥控是利用波长为0.76μm-1.5μm之间的近红外线来传递控制信号的。
它具有以下特点:
1.由于为不可见光,因此,对环境影响很小。红外线的波长远小于无线电波的波长,所以,红外遥控不会干扰其它家用电器,也不会影响近邻的无线电设备。
2.红外线为不可见光,具有很强的隐蔽性和保密性,因此在防盗,警戒等安全保卫装置中也得到了广泛的应用。
3.红外线遥控的遥控距离一般为几米至几十米或更远一点。
4.红外线遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点,特别是室内遥控的优先遥控方式。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。
它在技术上的主要优点是:
1.无需专门申请特定频率的使用执照;
2.具有移动通信设备所必需的体积小、功率低的特点;
3.传输速率适合于家庭和办公室使用的网络;
4.信号无干扰,传输准确度高;
它的缺点是:由于它是一种视距传输技术,采用点到点的连接具有方向性,两个设备之间如果传输数据,中间就不能有阻挡物;而且通讯距离较短,此外红外LED 不是一种十分耐用的器件。
设计任务及性能指标
1、设计任务
利用单片机及外围接口电路设计一个红外遥控控制及调制电路,实现对小电机风扇进行调速。
2、性能指标
通过红外遥控器开启或关闭小风扇,以及对风扇进行调速控制,当调到最高速或最低速时,蜂鸣器鸣叫。
红外仪器介绍
1、红外遥控器
通用红外遥控器发射发射红外码,利用四个按键控制开启,关闭,增速,减速。
红外线遥器图
2 、红外接收头
接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
接收器对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图所示。
GND
VCC
OUT
红外接收头
① 脉冲信号输出接,直接接单片机的IO 口。
② GND接系统的地线(0V);
③ Vcc接系统的电源正极(+5V)。
硬件设计
(1)单片机最小系统
(2)红外接收电路
(3)小电机风扇电路
(4)蜂鸣器电路
源程序部分#include
#define uchar unsigned char
#define uint unsigned int
sbit Rec=P3^2;//红外接口
sbit SPK=P3^7;//蜂鸣器接口
uint num,t;
uchar pwm,i,j,hwx;
void delay(uint t) //普通延迟
{
uchar x,y;
for(x=t;x>0;x--)
{
for(y=110;y>0;y--);
}
}
void start_SPK() //蜂鸣器工作函数{
uchar m;
for(i=2000;i>0;i--)
{
SPK=!SPK;
m=50;
while(m--);
}
}
void init_T1() //定时器初始化{
TMOD=0x11;
TH1=(65536-500)/256;
TL1=(65536-500)%256;
EA=1;
ET1=1;
TR1=1;
TR0=1;
}
void add() //累加函数{
if(pwm!=0x20)
{
pwm=pwm+2;
delay(5);
}
else start_SPK();
}
void sub() //累减函数{
if(pwm!=0x00)
{
pwm=pwm-2;
delay(5);
}
else start_SPK();
}
void off() //关闭函数{
TR1=0;
P1=0x00;
delay(5);
}
void on() //打开函数
{
if(TR1==0)
{
TR1=1;
pwm=16;
P1=0xff;
delay(5);
}
}
void changeIO() //空函数
{
}
void Ir_work(void)//红外键值翻译程序
{
switch(hwx)//判断数码值
{
case 0x04:add();break;//++++++++++
case 0x05:sub();break;//----------
case 0x00:off(); break;//关闭
case 0x02:on();break; //打开