Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
语音识别模块V3.1和蓝牙模块(HC-05)不能一起工作(Arduino)_Arduino_Voice Recognition_Hc 05 - Fatal编程技术网

语音识别模块V3.1和蓝牙模块(HC-05)不能一起工作(Arduino)

语音识别模块V3.1和蓝牙模块(HC-05)不能一起工作(Arduino),arduino,voice-recognition,hc-05,Arduino,Voice Recognition,Hc 05,蓝牙模块(HC-05)和语音识别模块(V3.1)单独使用Arduino Uno可以正常工作,但当我尝试将它们一起运行时,其中一个模块停止工作,即语音模块停止工作。我不知道为什么。我的代码如下: #包括 #包括“VoiceRecognitionV3.h” VR myVR(2,3);//2:RX 3:TX uint8_t buf[64]; 软件串行蓝牙(4,5)//用于蓝牙模块RX,然后是TX 无效打印签名(uint8_t*buf,内部长度){ int i; 对于(i=0;i0x19&&buf[i]

蓝牙模块(HC-05)和语音识别模块(V3.1)单独使用Arduino Uno可以正常工作,但当我尝试将它们一起运行时,其中一个模块停止工作,即语音模块停止工作。我不知道为什么。我的代码如下:

#包括
#包括“VoiceRecognitionV3.h”
VR myVR(2,3);//2:RX 3:TX
uint8_t buf[64];
软件串行蓝牙(4,5)//用于蓝牙模块RX,然后是TX
无效打印签名(uint8_t*buf,内部长度){
int i;
对于(i=0;i0x19&&buf[i]<0x7F){
串行写入(buf[i]);
}
} 
}
无效设置(){
pinMode(A4,输出);//用于语音模块的VCC
数字写入(A4,高);
myVR.begin(9600);
Serial.begin(9600);
myVR.load((uint8_t)0);//加载语音模块的数据
myVR.load((uint8_t)1);
myVR.load((uint8_t)2);
myVR.load((uint8_t)3);
myVR.load((uint8_t)4);
蓝牙开始(9600);
}
第一串;
void循环(){
int-ret=myVR.recognize(buf,50);
如果(bluetooth.available()>0){
一个=bluetooth.readString();
序列号println(一个);
}
如果(ret>0){
串行打印(“表示语音模块”);
printSignature(buf+4,buf[3]);//获取命令的签名
Serial.println(“”;//用于新行
}
}
1) 问题在于通信,因为当我删除myVR.begin(9600)时,蓝牙工作,而语音模块不工作

2) 当我删除bluetooth.begin(9600)时,语音模块工作,而bluetooth不工作


它们一起不起作用,只有一个起作用。

VoiceRecognitionV3
继承了
SoftwareSerial
。一个程序中可能有多个
SoftwareSerial
实例。但是,一次只能接收一个数据。因此,您希望使用
listen()
()在端口之间切换

portOne.listen();
ret=portOne.read();
第二,听一听;
ret=portTwo.read();
Arduino网站就是一个例子