返回 IRremote库目录页
说明
本示例演示如何利用Arduino开发板通过红外LED发射红外控制信号。
示例实验用硬件
- Arduino开发板 × 1
- 红外LED??× 1
- 限流电阻 (100欧姆~220欧姆)× 1
- 面包板?× 1
- 公对公杜邦线?× 3
电路连接
电路连接简介
Arduino开发板引脚 |
红外LED引脚 |
备注 |
+5V |
?VCC |
Arduino通过引脚3控制红外LED |
GND |
?GND |
示例程序
IRremote库支持NEC, Sony, Philips RC5, Philips RC6等协议指令。以下示例程序中Arduino将通过调用函数sendSony(0xa90, 12)
来发射Sony协议指令。该函数的两个参数中, 0xa90
为指令信息内容,12
为指令信息位数。 假如需要发射NEC协议指令则可以调用函数sendNEC(0xF740BF, 32)
。其中0xF740BF
为指令信息内容,32
为指令信息位数。 IRremote库支持的所有协议函数列表如下:
[c gutter=”0″]
void sendNEC(unsigned long data, int nbits);
void sendSony(unsigned long data, int nbits);
void sendRC5(unsigned long data, int nbits);
void sendRC6(unsigned long data, int nbits);
void sendDISH(unsigned long data, int nbits);
void sendSharp(unsigned long data, int nbits);
void sendPanasonic(unsigned int address, unsigned long data);
void sendJVC(unsigned long data, int nbits, int repeat);
void sendRaw(unsigned int buf[], int len, int hz);
[/c]
可双击程序全选代码
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 |
/* * IRsendDemo * * =====================功能说明===================== * 利用Arduino开发板发射红外控制信号 * * 本程序基于Ken Shirriff开发的IRremote库。如需获得该库文件 * 可前往以下网址获得: * http://arcfn.com (Ken Shirriff个人博客) * http://www.taichi-maker.com/ (太极创客官网) * * =====================电路连接====================== * 红外发射 LED 正极 --- Arduino Uno 引脚 3 * 红外发射 LED 负极 --- Arduino Uno 引脚 GND * * 如需获得详细电路连接说明图,请参阅太极创客网站: * http://WWW.TAICHI-MAKER.COM * * 此示例程序为配合太极创客制作的 * 《零基础入门学用ARDUINO教程-智能应用篇》使用 * */ #include <IRremote.h> IRsend irsend; void setup() { } void loop() { for (int i = 0; i < 3; i++) { irsend.sendSony(0xa90, 12); //发射Sony红外遥控协议A90指令码 delay(40); } /* * * IRremote库支持NEC, Sony, Philips RC5, Philips RC6等协议指令。 * 本示例程序中Arduino将通过调用函数sendSony(0xa90, 12) 来发射Sony协议指令。 * 该函数的两个参数中, 0xa90为指令信息内容,12位指令信息位数。 * * 假如需要发射NEC协议指令则可以调用函数sendNEC(0xF740BF, 32)。 * 其中0xF740BF为指令信息内容,32位指令信息位数。 * * 如果需要发射其它遥控协议指令请参考以下程序代码: * sendNEC(unsigned long data, int nbits); //发射NEC协议指令 * sendSony(unsigned long data, int nbits); //发射Sony协议指令 * void sendRC5(unsigned long data, int nbits); //发射Philips RC5协议指令 * void sendRC6(unsigned long data, int nbits); //发射Philips RC6协议指令 * void sendSharp(unsigned long data, int nbits); //发射Sharp协议指令 * void sendPanasonic(unsigned int address, unsigned long data); //发射Panasonic协议指令 * void sendJVC(unsigned long data, int nbits, int repeat); //发射JVC协议指令 * void sendRaw(unsigned int buf[], int len, int hz); //发射原始指令 */ delay(5000); //延迟5秒 } |
示例程序运行演示
为了便于您学习Arduino红外遥控方面的知识,我们太极创客为您录制了一套视频教程。该教程里除了有本示例程序的运行结果,还有学习Arduino方面的知识。你可以通过点击这里进入教程页面。
相关阅读
红外遥控接收示例 1 -?接收家用遥控器并查看红外遥控信号内容
红外遥控接收示例 2 -? 利用家用红外遥控器控制LED点亮和熄灭
红外遥控发射示例 – 用Arduino控制红外LED发射遥控信号