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.h>     // 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);
}

 

 

 

 

 

 

  • 24
    点赞
  • 138
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值