olá a todos, eu comecei um projetinho com easy vr, e arduino e tenho um shied wave v2, só o arduino com o easy-vr funciona, mas o o que quero é quando mando o arduino fazer a função o arduino responda através do shield wave, já gravei no cartão sd as frases, só n consegui integrar os 3 juntos
segue o código só do easy vr
#include <Servo.h>
int lampState = LOW;
int lampada =13;
byte com = 0;
void setup()
{
Serial.begin(9600);
pinMode(lampada, OUTPUT);
delay(2000);
// O modulo aceita comandos, em hexadecimal no seguinte formato:
// AA + comando
Serial.write(0xAA);
Serial.write(0x37); //configura o modulo para responder em modo compacto
delay(1000); // no modo compacto as respostas são numeros em hexadecimal
Serial.write(0xAA);
Serial.write(0x21);//importa o grupo 1
}
void loop() // inicio do programa principal
{
while(Serial.available())
{
com = Serial.read(); //recebe o byte referente ao comando
if(com == 0x11) // ao recxeber o comando de voz "liga" o modulo envia o valor em hexadecimal: 11
digitalWrite(lampada, HIGH); // se receber 0x11 acende a lampada
if(com == 0x12) // ao recxeber o comando de voz "desliga" o modulo envia o valor em hexadecimal: 12
digitalWrite(lampada, LOW);// se receber 0x12 apaga a lampada
}
}
e esse abaixo é o código de exemplo do arduino Wave Module V2
int RST = 3;
int CLK = 9;
int DAT = 8;
void setup() {
pinMode(RST, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(DAT, OUTPUT);
digitalWrite(RST, HIGH);
digitalWrite(CLK, HIGH);
digitalWrite(DAT, HIGH);
digitalWrite(RST, LOW);
delay(5);
digitalWrite(RST, HIGH);
delay(300);
}
void loop() {
send(0x0000);//play file 0000
delay(10000);//delay 10 seconds
send(0x0001);//play file 0001
delay(10000);//delay 10 seconds
send(0x0002);//play file 0002
delay(10000);//delay 10 seconds
send(0xfff0);//set voice volumn to 0 (turn off)
delay(3000);
send(0xfff4);//set voice volumn to 4
delay(3000);
send(0xfff7);//set voice volumn to 7
delay(3000);
send(0xfffe);// pause
delay(5000);
send(0xfffe);//play
while(1);
}
void send(int data)
{
digitalWrite(CLK, LOW);
delay(2);
for (int i=15; i>=0; i--)
{
delayMicroseconds(50);
if((data>>i)&0x0001 >0)
{
digitalWrite(DAT, HIGH);
//Serial.print(1);
}
else
{
digitalWrite(DAT, LOW);
// Serial.print(0);
}
delayMicroseconds(50);
digitalWrite(CLK, HIGH);
delayMicroseconds(50);
if(i>0)
digitalWrite(DAT, LOW);
else
digitalWrite(DAT, HIGH);
delayMicroseconds(50);
if(i>0)
digitalWrite(CLK, LOW);
else
digitalWrite(CLK, HIGH);
}
delay(20);
}
Agradeço desde já quem puder me ajudar!
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por