用arduino为主板,红外遥控控制BY8001语音模块。以下是我的程序,请各位大佬看看,那里出错了
#include <IRremote.h> // 使用IRRemote函数库
#include<SoftwareSerial.h>
SoftwareSerial so(7,8);//定义 7.8 号端口分别是 rx 接收,tx 发送
const int irReceiverPin =3; // 红外接收器的 OUTPUT 引脚接在 PIN2 接口 定义irReceiverPin变量为PIN2接口
IRrecv irrecv(irReceiverPin); // 设置irReceiverPin定义的端口为红外信号接收端口
decode_results results; // 定义results变量为红外结果存放位置
char Music1[7]={0x7e,0x05,0x42,0x00,0x01,0x46,0xef};
char Music2[7]={0x7e,0x05,0x42,0x00,0x02,0x45,0xef};
char Music3[7]={0x7e,0x05,0x42,0x00,0x03,0x44,0xef};
char Music4[7]={0x7e,0x05,0x42,0x00,0x04,0x43,0xef};
char Music5[7]={0x7e,0x05,0x42,0x00,0x05,0x42,0xef};
char Music6[7]={0x7e,0x05,0x42,0x00,0x06,0x41,0xef};
char Music7[7]={0x7e,0x05,0x42,0x00,0x07,0x40,0xef};
char Music8[7]={0x7e,0x05,0x42,0x00,0x00,0x47,0xef};
char VOLUP[5]={0x7e,0x03,0x05,0x06,0xef};
char VOLDOWN[5]={0x7e,0x03,0x06,0x06,0xef};
char Tingzhi[5]={0x7e,0x03,0x0e,0x0d,0xef};
String val;
void yuyin1(void)
{
//so.write(Tingzhi,5);
delay(1000);
// so.write(Music1,9);
delay(20);
}
void yuyin2 (void)
{
// so.write(Tingzhi,5);
delay(1000);
// so.write(Music2,7);
delay(20);
}
void setup()
{
Serial.begin(9600); // 开启串口,波特率为9600
irrecv.enableIRIn(); // 启动红外解码
// dingyi();
//pinMode(led,OUTPUT);
}
void loop()
{
if (irrecv.decode(&results)) { // 解码成功,把数据放入results变量中
// 把数据输入到串口
if(results.value==0xFF30CF)
{
yuyin1;
//digitalWrite(led,HIGH);
// Serial.println("turn on led");
}
if(results.value==0xFF18E7)
{
yuyin2;
// digitalWrite(led,LOW);
// Serial.println("turn off led");
}
irrecv.resume(); // 继续等待接收下一组信号
// delay(600); //延时600毫秒,做一个简单的消抖
}
} |