Buenos dias:
Me presento, yo soy nuevo en el foro.
Hace poco que estoy metiéndome en el tema de arduino por lo que soy muyyy novato aun.
Les pido si me pueden ayudar en este proyecto.
compre el modulo de reconocimiento de voz, pude cargar las ordenes y cuando lo pruebo con el ejemplo vr_sample_control_led (utiliza el led integrado de arduino) funciona de maravilla.
Ahora estoy tratando de hacer que en vez de encender el led de arduino pueda activar un modulo relay de 4 canales.
les dejo el codigo para que me puedan ayudar, (en internet no hay ejemplo con codigos de que utilizen el modulo relay, en esto codigo lo usan para hacer encender 4 led, yo solo utilizo 3 ordenes(encender, luzdeafuera,velador)
/**
- @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
- @section HISTORY
2013/06/13 Initial version.
*/
#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
/**
Connection
Arduino VoiceRecognitionModule
2 -------> TX
3 -------> RX
*/
VR myVR(2,3); // 2:RX 3:TX, you can choose your favourite pins.
uint8_t records[7]; // save record
uint8_t buf[64];
int encender = 10;
int luzdeafuera = 11;
int velador = 12;
#define encender (0)
#define luzdeafuera (1)
#define velador (2)
/**
@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 Prueba Prometec");*
pinMode(encender, OUTPUT);
pinMode(luzdeafuera, OUTPUT);
pinMode(velador, OUTPUT);
digitalWrite(encender, LOW);
digitalWrite(luzdeafuera, LOW);
digitalWrite(velador, LOW);
* if (myVR.load((uint8_t)on) >= 0) {
Serial.println("encender loaded");
_}
if (myVR.load((uint8_t)off) >= 0) {
Serial.println("luzdeafuera loaded");
}
if (myVR.load((uint8_t)velador) >= 0) {
Serial.println("velador loaded");
}
}
void loop()
{
int ret;
ret = myVR.recognize(buf, 50);
if(ret>0){
switch (buf[1]) {
case encender:
digitalWrite(encender, !digitalRead(on));
break;
case luzdeafuera:
digitalWrite(luzdeafuera, !digitalRead(off));
break;
case velador:
digitalWrite(velador, !digitalRead(velador));
break;
default:
Serial.println("Record function undefined");
break;
}
/** voice recognized /
printVR(buf);
}
}
Hace una semana que me estoy quemando la cabeza!!!
Milll gracias por la ayuda!!!!!!!!!!!!!!!!_