零知开源快速入门22-红外遥控LED灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6145|回复: 1

零知开源快速入门22-红外遥控LED灯

[复制链接]
发表于 2018-7-2 15:10 | 显示全部楼层 |阅读模式
转载自:零知开源快速入门22-红外遥控LED灯
http://www.lingzhilab.com/forum. ... d=216&fromuid=2
(出处: 零知实验室)

红外在电子制作中作为一种简单的数据传输方法是很常用的一种,在生活中我们也可以见到很多红外应用如红外遥控。我们在这一篇中就简单介绍下红外遥控的应用,让我们的电子作品能够无线操控。
一、工具原料
  • 电脑,windows系统
  • 零知开发板
  • micro-usb线
  • LED灯红色、绿色、黄色各一个
  • 220Ω 电阻3个
  • 红外遥控器1个
  • 红外接收头1个
  • 面包板一个+若干跳线

我们使用的遥控器如下:

其对应的编码如下:

使用的接收头及其接口如下:

二、硬件连接
1、电路原理图

2、电路连接

三、方法步骤
1、打开零知实验室软件开发工具,然后新建项目,输入以下代码:
  • /**
  • *    文件: 红外遥控点灯.ino      by 零知实验室(www.lingzhilab.com)
  • *    -- 零知开源,让电子制作变得更简单! --
  • *    时间: 2018/07/02 13:45
  • *    说明: 使用红外遥控来控制LED灯
  • **/
  • #include <IRremote.h> //红外相关的库
  • //红外遥控器上数字 0,1,1,3 的红外编码
  • const int code[4]= {0xff6897,0xff30cf,0xff18e7,0xff7a85};
  • //分别连接红色、黄色、绿色灯
  • uint8_t LED_R = 0;
  • uint8_t LED_Y = 1;
  • uint8_t LED_G = 2;
  • uint8_t IR_RECV_pin        = 3;//接收红外的引脚
  • IRreceiver irrecv(IR_RECV_pin);
  • IRdecode_results decode_result;
  • // the setup routine runs once when you press reset:
  • void setup() {
  •     // put your setup code here, to run once:
  •         irrecv.enableIRIn();//开启红外接收
  •         pinMode(LED_R, OUTPUT);
  •         pinMode(LED_Y, OUTPUT);
  •         pinMode(LED_G, OUTPUT);
  •         digitalWrite(LED_R, HIGH);//关闭所有的灯
  •         digitalWrite(LED_Y, HIGH);
  •         digitalWrite(LED_G, HIGH);
  •         Serial.begin(9600);
  • }
  • // the loop routine runs over and over again forever:
  • void loop() {
  •     // put your main code here, to run repeatedly:
  •         if(irrecv.decode(&decode_result)){
  •                 //根据解码的结果执行对应的动作
  •                 Serial.print("receive code: 0X");
  •                 Serial.println(decode_result.value, HEX);
  •                 if(decode_result.value == code[0]){
  •                         digitalWrite(LED_R, LOW);//打开红色LED
  •                 }
  •                 if(decode_result.value == code[1]){
  •                         digitalWrite(LED_Y, LOW);//打开黄色LED
  •                 }
  •                 if(decode_result.value == code[2]){
  •                         digitalWrite(LED_G, LOW);
  •                 }
  •                 if(decode_result.value == code[3]){
  •                         digitalWrite(LED_R, HIGH);//关闭所有的LED
  •                         digitalWrite(LED_Y, HIGH);
  •                         digitalWrite(LED_G, HIGH);
  •                 }
  •                 irrecv.resume();//接收下一个
  •         }
  • }

[color=rgb(51, 102, 153) !important]复制代码


2、按照之前的方式先【编译】,然后【上传】到开发板中。
四、成果展示
上面步骤成功完成后,我们进行测试,我们分别按下遥控器上面的0,1,2号按键,可以看到相应的红色、黄色、绿色LED灯亮,当我们按下3号按键可以看到所有的LED熄灭,同时可以看到串口监视器中有相应的按键编码信息:




发表于 2019-12-25 01:55 | 显示全部楼层
我想arduino软件运行程序,应该怎么修改代码呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 03:38 , Processed in 0.120625 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表