《(电路解析)远程IR发射器电路.docx》由会员分享,可在线阅读,更多相关《(电路解析)远程IR发射器电路.docx(6页珍藏版)》请在优知文库上搜索。
1、电子设备中最常用的传感器之一就是红外传感器。红外传感器可以检测一个物体的热能和移动。在红外光谱中,所有的物体都会发射某种热辐射。这些辐射是肉眼不可见的,且只能由红外传感器感知或探测到。一个红外传感器由发射红外线的红外发射器和检测红外线的红外接收器(光电二极管)组成。通常,一个寻常红外LED的红外辐射距离为210cm,探测角度为35。而使用了本文中的电路后,我们可以见红外辐射的发射距离提高至100cm。这意味着我们可以用远程红外发射器电路多次提高红外传输距离。此处我们用了多个红外LED来提高该距离。所需元器件CD4047红外LEDX3三极管BC547和BC557MOSFETBS170电位计(IO
2、kQ)电容(100uFx1;470pFx1)电阻(IOkQX2;2k1;221)9V电源输入电路图CD4047CD4047是低功耗的常见IC之一。它提供了单稳态和非稳态两种运行法师。且输入电压范围很广(3V到18V),而直流输入可达IOmA,且工作温度范围在-55C到+125C之间。这里,我们用该IC来生成一个振荡方波输出,其频率由电阻R3和电容Cl决定。你可以用该IC来生成时钟脉冲。该IC多用于逆变电路,从直流中生成交流。引脚图C R RC COMMON Astable Astable T6-Trigger VSS 14VDDOSC OutRetriggerEXT RESET+ Trigge
3、rCD4047的引脚配置MOSFETBS710该元件一般用来减少通态电阻,从而提供更加快速可靠的开关性能。BS170可用于最大50OmA直流应用中。对于小型伺服电机控制,电力MoSFET栅极驱动和其它低电压和低电流的开关应用来说,BS170都可以发挥最大作用。BS170的漏源和栅源电压最大为60V,工作和存储温度范围在-55到+150。引脚图Drain引脚配置远程红外发射器电路的工作原理该电路可以帮助我们提高红外线的传输距离。我们使用三个红外LED串联来提升其辐射功率。一个电阻和电容分别与引脚2和引脚1外界,同时两者均与4047的引脚3相连。该RC组合生成了一个具有特定振荡频率的输出。随后,该
4、输出传入三极管QI和Q2的基极。IC4047产生了38kHz频率的信号,接近红外和射频的远程控制频率。然后,通过将该信号用作载波,从而改变输入信号或数据。因此,我们可以在该频率下得到一个大范围的输出。同时,4047可以用来为MOSFET和三极管生成振荡波。MoSFETBSI70用于提高电路效率。MoSFET起到开关的作用,并减少功率损耗。三极管的功率损耗比MoSFET大,所以我们此处用的是MOSFET0100uF的电容则用于避免开关下的波形波动。同时在导通时提供额外的电荷。同时,NPN(BC547)和PNP(BC557)三极管组成的达林顿管用于避免栅极驱动输入的失真。因为MOSFET在栅源引脚
5、上会有比较大的电容值。三个红外LED与MOSFET的漏极相连。当MOSFET的栅极收到信号时,电流由漏极流往源极,LED开始发射更大范围的红外线。因此红外接收器可以在更远的范围内感知到红外线。IR红外遥控发射器和接收器模块一、IR协议简介IR红外通信是最常用的无线通信方法之一,因为它易于使用且价格合理。波长比可见光长的红外光不在人类视觉范围内。这就是为什么它是无线通信的好选择。当您按下电视控制器上的按钮时,控制器上的LED会持续打开和关闭,并使调制的红外信号从控制器发送到电视。该信号在解调后执行。IR接收器模块用于接收IR信号。这些模块工作频率为3.8KHzo当传感器未以工作频率暴露在任何光线
6、下时,VOUT输出的值等于VS(电源)。当暴露在38kHz红外光下时,此输出将为零。二、红外遥控接收模块该模块有两部分组成:一是如下图所示的接收器这些接收器虽然形状、样式各异,但都有3个引脚,分别用于连接正极5V、GND和输出信号,因此在电路中非常容易使用它们。0Signal0+vGND另一部分是发射器,也就是一个红外遥控器。二、基本工作原理发记器采用红夕发光二级管发射红外光波;接收器由红外接收二极管、三极管或硅光电池组成,它们将发射器发射的红外光接收转换为相应的电信号。根据NEC协议,就可以解出按了什么键。四、NEC编码红外遥控器采用了NEC编码规则:NEC载波频率为38Khz引导码:9ms
7、高电平+4.5ms低电平0码:0.56ms高电平+0.56ms低电平1码:0.56ms高电平+1.68ms低电平结束码:0.56ms高电平数据帧格式:引导码+识别码+识别码反码+键值+键值反码+结束码重复帧格式:9ms高电平+2.25ms低电平+结束位+结束码,总共HOms左右整个完整数据格式:引导码+识别码+识别码反码+键值+键值反码+结束码+一段空闲时间+9ms高电平+2.25ms低电平+结束位+结束码+重复码循环高位在前,即首先收到的是高位的数据。五、利用程序找出各个按键的编码1、电路连接红外接收模块:S连接数字端口7。2、安装IRremote.h打开“项目”导入库”-“管理库”,搜索“
8、IRremote”,选择由ShilTiff开发的库,安装。、这里重点强调:安装时一定选择2.8.0这个版本的数据库,否则接收的按键值将会是FFFFFFFFo不相信我的话,可以亲自体会一下安装最新数据库的按键值,我也是在网上找了很多论坛才解决的问题。3、代码#includeIRreCVlR(7);/创建一个接收器,名称IR,引脚接7decode_resultsJG;创建变量JG,用来存储结果的地址voidsetup()Serial.begin(9600);IR.enableIRIn();开启红外接收voidloop()if(IR.decode(&JG)/&JG表示获取JG的地址Serial.pr
9、intln。GValgHEX);以十六进制形式输出JG变量的值IR.resume();接收器恢复接收状态delay(500);4、实验效果通过串口监视器,我们可以观察到红外遥控器各按键的值。以下是数字按键19的值:输出串口监视器X消息(按回车将消息发送到“COM3”上的“ArduinoUno”)FF30CFFF18E7FF7A85FFlOEFFF38C7FF5AA5FF42BDFF4AB5FF52AD08:24:36.70508:24:37.70608:24:38.71008:24:39.70608:24:40.72208:24:42.20708:24:43.20808:24:44.20708:24:45.192为了编程方便,我把红外遥控器的按键值列表出来:按键值CH-FFA25DCHFF629DCH+FFE21DPREVFF22DDNEXTFF02FDPLAYPAUSEFFC23D-FFEOlF+FFA857EQFF906FOFF68971OO+FF9867200+FFB04F1FF30CF2FFl8E73FF7A854FFlOEF5FF38C76FF5AA57FF42BD8FF4AB59FF52AD