Arduino Uno 红外遥控 接收 和 发射信号 实验 (上) |
您所在的位置:网站首页 › arduino板子上的按钮 › Arduino Uno 红外遥控 接收 和 发射信号 实验 (上) |
家中电视机,空调家电都是用红外遥控的, 这次实验,就是看看其接收与发射的原理。 所以需要两块Arduino Uno 分别做接收&发射
上篇 (本篇) Arduino Uno 红外遥控的接收 下篇 Arduino Uno 红外遥控 接收 和 发射信号 实验 (下)
先看看这个模块 实验效果
实验接收红外信号,并记录其信号。 在试验中,我用的是一个LED彩色灯条的红外遥控器,遥控按下开关键,电脑串口就会接收到信号
在试验中可以看到,我按下开关键的时候,会有接收到信号,并以16进制显示,其实可以转换成10进制就理解成我们常用的数值。 在不停的按开关的时候,会有时有不一样的数值, 我估计这情况是接收不完全导致的。 不知道是不是,请指正。
然后我记录下了这个值 FF02FD 留到下篇,红外发射使用,看能不能控制LED灯条。 BOM表 Arduino Uno *1 红外接收管 *1 跳线若干 接线 Arduino Uno 红外接收管(or 红外接收模块) 5V VCC GND GND pin 11 OUT
程序源码 此程序 需要用到库函数 https://github.com/z3t0/Arduino-IRremote 请到上面这个链接,下载库文件,然后把文件解压到Arduino对应的libraries文件夹里面 可能有些安装Arduino IDE的时候就以及安装过一个IRremote库,如果有的话,试试行不行,不行就把原来的删除,然后解压这个库文件。
安装好库文件可以这样调出程序:
会看到以下代码 /* * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv * An IR detector/demodulator must be connected to the input RECV_PIN. * Version 0.1 July, 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com */ #include // IRremote库声明 int RECV_PIN = 11; //定义红外接收器的引脚为11 IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // 启动接收器 } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX);//以16进制换行输出接收代码 irrecv.resume(); e// 接收下一个值 } delay(100); }
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |