7. 红外遥控
BiBoard配置了红外传感器,连接在第23引脚。红外的使用和基于AVR的UNO完全一样。
首先下载2.6.1版本的IRremote库,需要手工选择2.6.1版本。因为之后的版本红外编码有变化,如果使用3.X版本,指令会无法被翻译。为了同我们之前的产品兼容,测试后决定使用2.6.1版本。
在使用NyBoard的时候,为了保证代码可以顺利编译,我们需要给IRremote库进行“瘦身”,即去掉我们用不到的编码/解码器,只保留NEC_DECODER即NEC格式的38KHz信号解码器。
在Flash巨大的BiBoard上,我们无需进行“瘦身”。
最后附上例程,接受红外信号并串口打印,也可以使用官方的例程进行测试。
#include <Arduino.h>
#include <IRremote.h>
int RECV_PIN = 23;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
Serial.begin(115200);
irrecv.enableIRIn();
Serial.println("IR Receiver ready");
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
Serial.print(" - ");
irrecv.resume(); // Receive the next value
}
delay(300);
}