焦儿 发表于 2019-10-2 16:29:49

BY语音模块

用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={0x7e,0x05,0x42,0x00,0x01,0x46,0xef};
char Music2={0x7e,0x05,0x42,0x00,0x02,0x45,0xef};
char Music3={0x7e,0x05,0x42,0x00,0x03,0x44,0xef};
char Music4={0x7e,0x05,0x42,0x00,0x04,0x43,0xef};
char Music5={0x7e,0x05,0x42,0x00,0x05,0x42,0xef};
char Music6={0x7e,0x05,0x42,0x00,0x06,0x41,0xef};
char Music7={0x7e,0x05,0x42,0x00,0x07,0x40,0xef};
char Music8={0x7e,0x05,0x42,0x00,0x00,0x47,0xef};
char VOLUP={0x7e,0x03,0x05,0x06,0xef};
char VOLDOWN={0x7e,0x03,0x06,0x06,0xef};
char Tingzhi={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毫秒,做一个简单的消抖
}
}
页: [1]
查看完整版本: BY语音模块