我是Arduino的新手,我不知道如何解决这个问题。
我想发送一个IR代码'''''当Arduino通过蓝牙接收一个角色或者我从遥控器发送另一个IR代码时。
但是,如果我发送字符' a'通过蓝牙,该程序不会捕获任何新的IR消息。
我正在使用连接到引脚12,13的HC-06蓝牙模块和连接到引脚2的IR接收器。
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>
#include <IRremote.h>
IRsend irsend;
unsigned int channel[67] = { 9300, 4300, 700, 1400, 800, 1350, 800, 1400, 700, 1450, 700, 1450, 750, 1350, 800, 1350, 750, 1400, 750, 400, 750, 350, 800, 300, 800, 300, 800, 350, 750, 350, 750, 400, 700, 400, 750, 1400, 750, 350, 750, 350, 750, 350, 800, 1400, 750, 1400, 750, 350, 750, 400, 700, 350, 800, 1400, 750, 1350, 750, 1450, 750, 300, 800, 350, 800, 1350, 750, 1400, 750};
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN);
decode_results results;
SoftwareSerial BT1(12,13);
char incomingChar = 0;
void setup() {
irrecv.enableIRIn();
Serial.begin(9600);
BT1.begin(9600);
}
void loop() {
if (irrecv.decode(&results)) {
int hexen = results.value;
Serial.println(hexen, HEX);
Serial.print("\t");
Serial.println(hexen, DEC);
irrecv.resume();
if(hexen == -16833) {
Serial.print("Hello");
}
}
if (BT1.available()) {
incomingChar = BT1.read();
Serial.print("->: ");
Serial.println(incomingChar);
if (incomingChar=='a') {
Serial.print(" Send ");
Send();
}
if (incomingChar=='s') {
Serial.print("Test");
}
}
}
void Send() {
irsend.sendRaw(channel,67,38);
delay(40);
}
这是irsend.sendRaw
的问题,还是与蓝牙有某种冲突?
答案 0 :(得分:0)
已解决,只需再次启用IR接收器
void Send() {
irsend.sendRaw(channel,67,38);
delay(40);
irrecv.enableIRIn();
}