如视频无法正常播放,可点击这里前往B站观看
本课示例代码:(无法复制本站示例程序代码?请点击这里获得解决方法。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
/* * IRrecvDemo-LED * =====================功能说明===================== * 演示如何利用Arduino开发板接收红外遥控器控制信号, * 并利用接受到的信号遥控Arduino开发板上的红外LED。 * Arduino所接收到的红外遥控器信号内容也将通过串口监视器显示出来。 * * 本程序基于Ken Shirriff开发的IRremote库。如需获得该库文件 * 可前往以下网址获得: * http://arcfn.com (Ken Shirriff个人博客) * http://www.taichi-maker.com/homepage/download/ (太极创客官网) * * =====================电路连接====================== * 红外接收器 1838B OUT 引脚 --- Arduino Uno 11 引脚 * 红外接收器 1838B VCC 引脚 --- Arduino Uno +5V 引脚 * 红外接收器 1838B GND 引脚 --- Arduino Uno GND 引脚 * * 如需获得详细电路连接说明图,请参阅太极创客网站: * http://WWW.TAICHI-MAKER.COM * * 此示例程序为配合太极创客制作的 * 《零基础入门学用ARDUINO教程-智能应用篇》使用 * */ #include <IRremote.h> #define RECV_PIN 11 IRrecv irrecv(RECV_PIN); // 红外遥控初始化 decode_results results; // 储存接收到的红外遥控信息 void setup() { pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); Serial.begin(9600); Serial.println("Enabling IRin"); irrecv.enableIRIn(); // 启动红外接收 Serial.println("Enabled IRin"); } void loop() { /* decode()库函数用于判断红外接收器所接收到的红外信号是否可以被解析。 如可以成功解析,则返回非零数值。并将解析结果存储于results中。 如无法成功解析,则返回零。 每一次解析完成,都需要调用resume()函数从而让Arduino开始准备接收下一个红外 遥控指令。 */ if (irrecv.decode(&results)) { Serial.println(results.value, HEX); // results.value为红外遥控信号的具体数值 if(results.value == 0xF7C03F) //如果控制信息数值为F7C03F { Serial.println("Command Received: Turn On LED."); digitalWrite(LED_BUILTIN, HIGH); } if(results.value == 0xF740BF) //如果控制信息数值为F740BF { Serial.println("Command Received: Turn Off LED."); digitalWrite(LED_BUILTIN, LOW); } irrecv.resume(); // 恢复接收下一个红外遥控信号 } delay(100); } |