Elechouse Voice Recognition V3 only working if reset button pressed

Hi All,

I’ve successfully wired, trained and run a sketch to turn on a LED using the Elechouse Voice Recognition V3 module. I’m using an Arduino Uno board. The issue I have is the following. Once I upload the code, everything works fine, however, as soon as I disconnect the Ardunio board from power, and plug it again, the voice recognition module stop working. I see the light on the module that is suppose to blinking stays always on. As soon as I press the reset button on the Arduino board, the led on the voice recognition module starts to blink again and everything works. Could someone help? As I want to use this for a project, I need to make sure that everything works automatically after the power is turned on/off without having to press the rest button on the Arduino board. Below the code I’m using:

/**


  • @file vr_sample_control_led.ino
  • @author JiapengLi
  • @brief This file provides a demostration on
    how to control led by using VoiceRecognitionModule

  • @note:
    voice control led

2013/06/13 Initial version.
*/

#include <SoftwareSerial.h>
#include “VoiceRecognitionV3.h”

/**
Connection
Arduino VoiceRecognitionModule
2 -------> TX
3 -------> RX
*/
VR myVR(8,9); // 2:RX 3:TX, you can choose your favourite pins.

uint8_t records[7]; // save record
uint8_t buf[64];

int led = 13;

#define AonRecord (0)
#define BonRecord (1)
#define ConRecord (2)
#define AoffRecord (3)
#define BoffRecord (4)
#define CoffRecord (5)

/**
@brief Print signature, if the character is invisible,
print hexible value instead.
@param buf → command length
len → number of parameters
/
void printSignature(uint8_t buf, int len)
{
int i;
for(i=0; i<len; i++){
if(buf_>0x19 && buf
<0x7F){
_
_ Serial.write(buf*);
}
else{
Serial.print("[");
Serial.print(buf, HEX);
Serial.print("]");
}
}
}
/**
@brief Print signature, if the character is invisible,
print hexible value instead.
@param buf → VR module return value when voice is recognized.
buf[0] → Group mode(FF: None Group, 0x8n: User, 0x0n:System*

* buf[1] → number of record which is recognized.
buf[2] → Recognizer index(position) value of the recognized record.
buf[3] → Signature length*

* buf[4]~buf[n] → Signature*
/
void printVR(uint8_t *buf)
{
Serial.println(“VR Index\tGroup\tRecordNum\tSignature”);
Serial.print(buf[2], DEC);
Serial.print("\t\t");
if(buf[0] == 0xFF){
Serial.print(“NONE”);
}
else if(buf[0]&0x80){
Serial.print(“UG “);
Serial.print(buf[0]&(~0x80), DEC);
}
else{
Serial.print(“SG “);
Serial.print(buf[0], DEC);
}
Serial.print(”\t”);
Serial.print(buf[1], DEC);
Serial.print(”\t\t”);
if(buf[3]>0){
printSignature(buf+4, buf[3]);
}
else{
Serial.print(“NONE”);
}
Serial.println("\r\n");
}
void setup()
{*_

_ /** initialize /
myVR.begin(9600);*_

* Serial.begin(115200);*
* Serial.println(“Elechouse Voice Recognition V3 Module\r\nControl LED sample”);*

* pinMode(led, OUTPUT);*

* if(myVR.clear() == 0){*
* Serial.println(“Recognizer cleared.”);*
* }else{*
* Serial.println(“Not find VoiceRecognitionModule.”);*
* Serial.println(“Please check connection and restart Arduino.”);*
* while(1);*
* }*

* if(myVR.load((uint8_t)AonRecord) >= 0){
_ Serial.println(“onRecord loaded”);
}_

if(myVR.load((uint8_t)BonRecord) >= 0){
_ Serial.println(“onRecord loaded”);
}_

if(myVR.load((uint8_t)ConRecord) >= 0){
_ Serial.println(“onRecord loaded”);
}*_

* if(myVR.load((uint8_t)AoffRecord) >= 0){
_ Serial.println(“offRecord loaded”);
}_

if(myVR.load((uint8_t)BoffRecord) >= 0){
_ Serial.println(“offRecord loaded”);
}_

if(myVR.load((uint8_t)CoffRecord) >= 0){
_ Serial.println(“offRecord loaded”);
}
}
void loop()
{
int ret;
ret = myVR.recognize(buf, 50);
if(ret>0){
switch(buf[1]){
case AonRecord:
/** turn on LED /
digitalWrite(led, HIGH);

* break;
case BonRecord:
/** turn on LED /
digitalWrite(led, HIGH);

* break;
case ConRecord:
/** turn on LED /
digitalWrite(led, HIGH);

* break;
case AoffRecord:
/** turn off LED/

* digitalWrite(led, LOW);
break;
case BoffRecord:
/** turn off LED/

* digitalWrite(led, LOW);
break;
case CoffRecord:
/** turn off LED/

* digitalWrite(led, LOW);
break;
default:
Serial.println(“Record function undefined”);
break;
}
/** voice recognized /
printVR(buf);

* }
}*_

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.