Boa noite Pessoal.
Estou com um probleminha chato no meu projeto:
Escopo: Arduino Uno + Arduino Mega com EasyVR
Comunicação: Serial (Porta 0,1 e GND do Uno) + Serial (Porta 1,0 e GND do Mega).
Funciona basicamente assim:
1 - Mega manda uma "String" para o Uno. Ex: "Hora"
2 - Uno Retorna uma "String" com a Hora. Ex: "10:10"
A Comunicação está funcionando, porém na 1ª interação a minha leitura é 0.
Só quando eu chamo novamente que me traz os valores corretos e o EasyVR me diz o Horário.
Debug de Print
hora00
hora2249
Alguém poderia me ajudar?
Por que será que o MEGA já não me traz o valor da HORA na 1ª Interação?
Segue o Código:
Uno
Serial.print(String(clock.hour, DEC));
Serial.print(":");
Serial.print(String(clock.minute, DEC));
Mega
Case "X":
{
Serial.write("hora"); //Manda para o UNO via (TX,RX) Pinos(0,1)
String msg = 0; //msg = Mensagem -> INT, Mensagem em Byte
int index = 0;
if (Serial.available()) {
delay(100); // Delay faz receber toda Mensagem de uma vez
while(Serial.available()){ // "Se Disponivel = Verifica se há Mensagem
msg += (char)Serial.read(); // Armazena a mensagem lida
index = msg.indexOf (':'); // Orientação para identificar o antes e depois: (10) : (10)
String strHora = msg.substring(0,index);
String strMin = msg.substring((index+1),index+3);
int tabSonsHora = strHora.toInt()+13; // 13 - Diferença de Índice na tabela de Sons
int tabSonsMin = strMin.toInt()+13;
easyvr.playSound(tabSonsHora, EasyVR::VOL_FULL);
if(tabSonsHora>1)
easyvr.playSound(76, EasyVR::VOL_FULL); //Horas
else
easyvr.playSound(75, EasyVR::VOL_FULL); //Hora
easyvr.playSound(tabSonsMin, EasyVR::VOL_FULL);
if(tabSonsMin>1)
easyvr.playSound(74, EasyVR::VOL_FULL); //Minutos
else
easyvr.playSound(73, EasyVR::VOL_FULL); //Minuto
}Break;
Fim Case
Tags:
Resolvido!!!!!!
O Celso Me Ajudou era só um delay().
Ficou Assim: Acrescentei o Delay(500); na segunda linha, depois que envio a String "Hora";
Serial.write("hora"); //Manda para o UNO via (TX,RX) Pinos(0,1)
delay(500);
Valeu Celso Eiju Ito (http://labdegaragem.com/profile/eijuito)
podia compartilha o codigo da easyvr fala as horas o codigo completo
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por