硬件:Arduino uno 0.96寸OLED显示器,红外线接收及发送模块,四脚点触开关(选用)
将显示屏连接上uno,具体怎么连第一期讲DHT11时讲过了,可以去找找。连上显示器之后就该红外线接收模块了,(我也不知道为什么,接收模块和发射模块不能连在一起,接受的编码不能复制到发射内容,eeprom和变量及函数都用了,一试就报错,所以我们分两个板子弄),接线如图:
+ | -- | s |
5v | gnd | d2 |
现在硬件弄好了,该软件了,废话不多说,上代码:
/*!
* MindPlus
* uno
*
*/
#include <DFRobot_IRremote.h>
#include <DFRobot_SSD1306_I2C.h>
// 静态常量
const chCode chBuf[] = {
{0x8bfb,0xe8afbb,0xB6C1,{0x00,0x20,0x20,0x20,0x11,0xfc,0x10,0x20,0x00,0x20,0x03,0xfe,0xf0,0x02,0x10,0x94,0x10,0x50,0x11,0x10,0x10,0x90,0x13,0xfe,0x14,0x28,0x18,0x44,0x10,0x82,0x03,0x02}},
{0x53d6,0xe58f96,0xC8A1,{0x00,0x00,0xff,0x80,0x22,0xfc,0x22,0x44,0x3e,0x44,0x22,0x44,0x22,0x44,0x3e,0x44,0x22,0x28,0x22,0x28,0x27,0xa8,0xfa,0x10,0x42,0x10,0x02,0x28,0x02,0x44,0x02,0x82}},
{0x7ed3,0xe7bb93,0xBDE1,{0x10,0x20,0x10,0x20,0x20,0x20,0x27,0xfe,0x44,0x20,0xf8,0x20,0x11,0xfc,0x20,0x00,0x40,0x00,0xfd,0xfc,0x41,0x04,0x01,0x04,0x1d,0x04,0xe1,0x04,0x41,0xfc,0x01,0x04}},
{0x679c,0xe69e9c,0xB9FB,{0x00,0x00,0x1f,0xf0,0x11,0x10,0x11,0x10,0x1f,0xf0,0x11,0x10,0x11,0x10,0x1f,0xf0,0x11,0x10,0x01,0x00,0xff,0xfe,0x05,0x40,0x09,0x20,0x31,0x18,0xc1,0x06,0x01,0x00}}
};
// 创建对象
DFRobot_SSD1306_I2C oled12864;
IRremote_Receive remoteReceive_2;
// 主程序开始
void setup() {
remoteReceive_2.begin(2);
oled12864.setChCode(chBuf);
oled12864.begin(0x3c);
}
void loop() {
oled12864.setCursorLine(1);
oled12864.printLine((String("读取结果") + String((remoteReceive_2.getIrCommand()))));
delay(1000);
}
刷新率为每秒一次,虽然屏幕会频闪,但是效率高。
(再准备一个uno板子( ╯□╰ ))
下面该接接收了,接收很简单,长脚对串口,短脚接地,这里我选的是5号端口,代码如下。
/*!
* MindPlus
* uno
*
*/
#include <DFRobot_IRremote.h>
// 创建对象
IRremote_Send remoteSend_5;
// 主程序开始
void setup() {
remoteSend_5.begin(5);
remoteSend_5.sendNEC(你所捕获的编码, 32);
}
void loop() {
}
这个好像需要搭配电脑使用,请大佬指点指点怎么把两者结合在一起,不知道I2C口的eeprom行不行,没有这个模块,没试过~doge。