Bom pessoal como eu nunca me comuniquei com o arduino com outro equipamento estou tendo dificuldades mais vamos lá espero a ajuda dos amigos com certeza é um problema simples.
Um exemplo , este cod é para enviar o comando para o outro equipamento (micro) está apenas o cod de comando , ai o mesmo irá me responder com a mesma quantidade de bytes o que eu quero é receber esses bytes e escrever na serial , conseguindo isto vou montando o cod e fazendo comparações se a resposta do outro micro foi true ou false e mostra em um display por exemplo e etc.
byte enroll []= {0x40, 0x5, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x47, 0xA}; //comando
void escreve (byte testo[]) { //função para escrever os comandos
for (int x = 0; x <13; x++)
{
mySerial.write(testo[x]);
}
delay(30);
}
escreve(enroll);
Está parte está funcionando , só está faltando receber ok , fico aguardando algum amigo que possa me ajudar , agradeço desde já , valeu.
void escreve (byte testo[]) { //função para escrever os comandos
for (int x = 0; x <13; x++)//
{
mySerial.write(testo[x]);
}
delay(30);
}
escreve(enroll);
O teu array tem 13 elementos mas isto ira correr 14 vezes.A posiçao 0 tambem conta!
Pelo que entendi queres enviar essa trama e o receptor verifica-la e devolver um ok é isso?
HugoPT:
O teu array tem 13 elementos mas isto ira correr 14 vezes.A posiçao 0 tambem conta!
O código dele está certo, Hugo, o for vai até x = 12 (x < 13), portanto varre todos os elementos e não invade memória.
Você está certo de que o comando está sendo enviado para o outro micro e ele está recebendo? Para verificar se ele está recebendo resposta, use este código após o delay (que aliás, talvez precise ser diminuído, para você não acabar perdendo dados):
while (mySerial.available())
{
Serial.println(mySerial.read(), HEX);
}
Se tiver recebendo a resposta, esta é uma forma de armazená-la:
byte answer[13];
uint_8 n = 0;
while (mySerial.available() && (n < 13)) // ler enquanto tiver dados em mySerial, até o limite de 13 dados
{
answer[n] = mySerial.read();
n++;
}
if (n == 13)
{
// trata a resposta
}