很多家电都用红外遥控,如电视机、机顶盒、空调、电风扇等。越来越多的遥控器反而给我们带来了更多的问题,有时找不到遥控器放哪儿了,或者混淆了都是麻烦,事实上对手机进行简单的改造,可以自制一个万能红外遥控器,来看看我们如何“掌控”家中电器的。

方案解析:红外遥控器发送数据时,是将二进制数据调制成一系列的脉冲信号用940nm波长的红外发射管发射出去,红外载波为频率38KHz的方波,红外接收端在收到38KHz的载波信号时会输出低电平,否则输出高电平,从而可以将“时断时续”的红外光信号解调成一定周期的连续方波信号,再经过一体化红外接收头解调便可以恢复出原数据信号。接收部分是用一体化红外接收头,它将红外接收二极管、放大、带通滤波、解调、整形等电路做在一起,当接收到此码时,单片机便会对编码分析并处理,从而实现对家用电器的控制。

本次采用的第二种方案是通过普通 MP3发出音频的0、1编码,然后用三极管放大并加载到由555时基电路发出的38K载波中,通过调幅实现遥控。

材料:940nm红外发射管、3.5mm耳机公头、NE555集成块、10K电阻、4.3K电阻、1.8nf电容、10nf电容、8050三极管、3.7V锂电池、洞洞板(万能电路板)、废旧耳机线。

工具:电烙铁、剪刀、热熔胶、胶带等。

软件:AdobeAudition CS6(windows平台)、遥控精灵(IOS平台)。

智能手机红外改造方案:软件+红外发射二极管

在智能手机上改造红外遥控功能其实很简单,我们通过3.5mm耳机插孔,制作一个可插拔的红外发射器,再通过软件完成红外遥控。

首先,准备一个3.5mm耳机插头,最好是带有金属尾罩的,这样焊接好红外发射管装在里面,只露出LED部分,不仅美观也能起到保护红外发射LED的作用。拧开3.5mm耳机插头金属尾罩部分,可以看到露出的三个焊接点,从后往前数它们分别是左声道、右声道和地线。

此次制作的红外遥控只需在左、右声道上焊接,首先把红外LED两个管脚分别剪成1cm和1.2cm(因为左右声道在一起发出的音频信号是交流信号,所以红外发光二极管会在交流的正半周期或负半周期被导通进行工作,不分正负极),然后用烙铁把红外LED的两极分别焊接在耳机插头的左右声道上就可以了。

把红外LED两极焊接在3.5mm插头的左右声道上

因为耳机插头是铜质,导热性很强,所以焊接时候不要用手捏着耳机插头进行焊接,以防烫伤,用木质夹子夹住再焊接就行了。铜质插头导热性强也导致局部焊点温度偏低,在焊接的时候我们可以把烙铁在焊点上多接触2、3秒,使得焊锡完全融化,避免虚焊发生。最后拧上3.5mm耳机插头的金属尾罩就制作完成了。

在苹果或安卓手机上下载《遥控精灵》软件,进入高级设置,ZAZA最大音量调至100%(音量增大可提高发射功率),再返回“遥控”——“添加”中选择对应品牌的设备,如果不知道什么设备也可以在匹配界面根据提示进行遥控器的匹配。

《遥控精灵》的使用界面比较直观容易上手

简易的红外发射头制作完成

非智能机及MP3改造方案:音频文件+38K红外发射

对于非智能手机或者是MP3/4有没有办法让它们实现红外遥控呢?答案是肯定有的。先用555制作一个38KHZ发生电路,再用音频信号加载在三极管的基极当做开关去控制38KHZ的发生和停止,从而控制红外LED发出有二进制码的38KHZ载波就行了。

STEP 1制作38KHZ发生电路

按照电路图在洞洞板上焊接NE555,由于元件很少,所以笔者直接用焊锡丝搭锡焊接出的电路,注意有些需要跳线的地方最好用漆包线之类的焊接,以防焊锡丝跳线短路。最后焊接音频线右声道接三极管基极,地线接三极管发射极(左声道不接)。

38KHZ发生电路图

焊接完成的38KHZ发生电路

STEP 2录制红外音频

打开Adobe Audition CS6软件,新建一个采样率为96000的音频文件,然后在麦克风的3.5mm插孔上插入一截废旧的耳机线,点“录音”红色按钮,接着随便说话制作一些噪声,如果屏幕下方有电平波动则说明笔记本电脑摄像头旁边的麦克风也同时工作了。为了在录制红外音频时最大程度的无干扰,必须将连接笔记本内置摄像头的排线拔掉。

拔掉笔记本内置摄像头排线,防止干扰

再次点击“录音”,音轨很平稳,无波动,说明内置麦克风失效,现在完全靠3.5mm插孔录音,接下来可以进行录制遥控器上的红外音频了。

用电烙铁把遥控器的红外发射管拆下来,电路板上原本给红外LED供电的两极分别焊接在废旧耳机线的左声道和地线上。

分别将地线和左声道焊接在遥控器电路板上,如果不能录音可以试着调换下地线与左声道线的顺序

点击“录音”,按动遥控器上的任意一个键,此时电脑屏幕上就会出现一小段波纹,这便是红外波形,停止录音,用鼠标滚轮放大刚才录下的红外波形,我们便能清楚的看到这个遥控器的引导码和地址码等。

麦克风抓到的红外音频

放大后能清晰的看到引导码和数据码等

振幅增益48DBI,提高音频输出电压

可以在一次录音中将遥控器所有的按键都依次按一遍,录下它们各自按键的红外音频,分别给每个键新建个音频文件进行保存,由于38KHZ的高频并不是由它发出,所以对采样率和位数没太大要求,一般8位就可以了。接下来你只需要将先前制作的38KHZ发生电路接在下载好红外音频文件的MP3上,点一下播放音乐便相当于按下遥控器对应的按键了。

保存红外音频文件为WAV或者是MP3格式

试用总结:借助Siri体验更智能

通过播放音频文件进行红外遥控基本适合所有的MP3、MP4等数码产品,在使用前记得将耳机音量调到最大,这样从3.5mm耳机孔出来的电压才足够导通三极管基极从而产生38KHZ的载波,一般红外发射LED对着所要遥控的红外接收头遥控,能达到6、7米远的遥控距离。

当然,你也可以把它与苹果Siri联系起来,做成声控式红外遥控器。把音频文件命名成一个特定的名字,比如“蓝色”,然后用苹果助手将音频导入到苹果手机中,对着siri说:“播放蓝色”,过几秒钟,被遥控的蓝色灯就会亮起来了。不过你必须在文件名前加上“播放”两个字,否则Siri会提示通讯录中找不到蓝色。每次只能对着说“播放开空调”、“播放关闭电视机”等比较别扭的语句了,不过这样声控加电还是挺有意思的。

对着Siri说播放蓝色呼吸

过一会单片机控制的小灯会乖乖变成蓝色缓慢的呼吸灯

手机遥控器,3.5mm耳机接口红外遥控改造解析的更多相关文章

  1. 基于STM32的红外遥控重点解析

    本文有两个内容:一.红外遥控协议的的讲解:二.解码程序解析(参考正点原子的代码) 红外的介绍.优点.缺点就不给大家说了,进入正题 一.红外遥控协议的的讲解 红外遥控的编码目前广泛使用的是:NEC Pr ...

  2. 基于Arduino、STM32进行红外遥控信号接收

    catalogue . 遥控器原理简介 . 红外遥控原理 . 常见红外遥控器红外线信号传输协议 . 遙控器的发展 . 实验过程 . 攻击面 . 基于STM32实现红外信号解码 1. 遥控器原理简介 0 ...

  3. arduino红外遥控库IRremote的IRsend类sendRaw函数溢出问题及其解决方法

    最近在调试红外遥控格力空调,在论坛中学到了不少东西.参考: (1)<解决问题系列(4)——红外编码分析利器使用> (2)<315Mhz模块传输替代315Mhz遥控器> 调试环境 ...

  4. 51单片机tea5767收音机 红外遥控 自动搜台 存台 DIY

    先看效果图: 显示 频道CH , 频率 100.0Mhz 欢迎信息,1602 内置日文平假名, 正好用来显示博主名称. 焊接前,已经万能面包板上试验成功. 焊接完成以后,1602 的D0 - D7 接 ...

  5. 基于FPGA的红外遥控解码与PC串口通信

    基于FPGA的红外遥控解码与PC串口通信 zouxy09@qq.com http://blog.csdn.net/zouxy09 这是我的<电子设计EDA>的课程设计作业(呵呵,这个月都拿 ...

  6. 设计模式——适配器模式(type-c转3.5mm耳机口)

    本文首发于cdream的个人博客,点击获得更好的阅读体验! 欢迎转载,转载请注明出处. 本文简述适配器模式,考虑到java中没有多继承就只写了对象适配器模式,然后例子是怎么用转接口把3.5mm耳机插在 ...

  7. 玩转X-CTR100 l STM32F4 l 红外遥控接收

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      X-CTR100控制器具有红外接收头,例程 ...

  8. Arduino红外遥控系列教程2013——红外转码

    教程三:红外转码教程——用电视遥控器取代机顶盒遥控器 前言前段时间看到了使用红外遥控的X-Bot机器人[链接],感觉很有意思.最近开始玩Arduino与红外,一方面打算将来用于BOXZ的之间的通讯控制 ...

  9. 46.Linux-创建rc红外遥控平台设备,实现重复功能(2)

    上章链接:46.Linux-分析rc红外遥控平台驱动框架,修改内核的NEC解码函数BUG(1) 在上章分析了红外platform_driver后,已经修改bug后,接下来我们自己创建一个红外platf ...

随机推荐

  1. JavaScript简单继承

    很多C#或C++开发人员习惯使用继承来开发项目,所以当他们想学习JavaScript语言时,第一个问题一般是:“我怎么在JavaScript中使用继承?”. 实际上JavaScript使用了一种不同于 ...

  2. 【Java学习笔记之九】java二维数组及其多维数组的内存应用拓展延伸

    多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在 ...

  3. 如何理解logistic函数?

    作者:煎挠橙链接:https://www.zhihu.com/question/36714044/answer/78680948来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  4. wpf Combobox模拟键盘按键

    private void RadComboBox_PreviewKeyUp(object sender, KeyEventArgs e) { try { var obj = (RadComboBox) ...

  5. c/c++内存泄露的检测方法

    此文内容摘自 https://zhuanlan.zhihu.com/p/22664202 作为   从零开始的 JSON 库教程(三):解析字符串解答篇  的笔记 1A. Windows 下的内存泄漏 ...

  6. Thinkphp5.1源码阅读

    主要流程 1 \public\index.php require __DIR__ . '/../thinkphp/start.php'; \thinkphp\start.php require __D ...

  7. Struts2理解——转发和重定向

        转发和重定向设置:         <action name="deptAction" class="com.syaccp.erp.action.DeptA ...

  8. read(byte[] b)与readFully(byte[] b)

    转载于:http://yyzjava.iteye.com/blog/1178525 要搞清楚read(byte[] b)和readFully(byte[] b)的区别,可以从以下方面着手分析: 1.代 ...

  9. iOS-----openGL--openGL ES iOS 入门篇4---> 离屏渲染

    http://www.cnblogs.com/CoderAlex/p/6604618.html 通常情况下,我们使用openGL将渲染好的图片绘制到屏幕上,但有时候我们不想显示处理结果,这时候就需要使 ...

  10. HDU——2723Electronic Document Security(STL map嵌套set做法)

    Electronic Document Security Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...