Estou fazendo um programa que recebera comandos da porta serial, como estou ainda esta em desenvolvimento estou-me detento agora no protocolo em si é criar uma lista de comandos para fazer algumas funções, no código inicial abaixo que é só um teste, eu digito três dígitos na porta serial com uma terminação com vírgula ou outro qualquer quarto caractere. Ao receber o comando "yui,", ele envia em retorno na Porta serial o buffer armazenado que deve ser "yui", Caractere por Caractere e depois envia a matriz inteira que deve retornar também "yui", após fazer isso ele retornara a mensagem "ok", como na imagem.
// Matriz C_1 3 caracter
char C_1[2];void setup()
{
// Taxa de Trasnferencia da porta serial
Serial.begin(9600);
}void loop()
{}
//----------------------------------------------------------------
void serialEvent ()
{
// Matriz buffer 3 caracter
char buffer[2];
//Ler Porta serial
if ( Serial.available ()>=4)
{
// armazena na matriz buffer o Buffer da porta serial
Serial.readBytesUntil (',', &buffer[0], 4 );
//Redimenciona Buffer Serial para Matriz C_1
C_1[0]= buffer[0];
C_1[1]= buffer[1];
C_1[2]= buffer[2];
//Imprimi 1º da matriz C_1
Serial.print(C_1[0]);
//Imprimi 2º da matriz C_1
Serial.print(C_1[1]);
//Imprimi 3º da matriz C_1
Serial.print(C_1[2]);
//Coloca quebra de linha
Serial.print("\n");
//Imprimi C_1 inteira
Serial.print(C_1);
//Coloca quebra de linha
Serial.print("\n");
//Imprimi ok se a matriz C_1 for igual a yui
if (C_1=="yui")
{
Serial.print("ok");
Serial.print("\n");
}
}
}
Acontece que ao invés de receber os dados como na Imagem1 ele recebe como na Imagem2. Como não tenho tanta familiaridade com o Arduino acredito que seja o redimensionamento da matriz buffer para a C_1. Logo se for isso como eu faço certo se não é isso o pode estar dando errado.