Boa tarde Garagistas.
Estou mandando uma comando ao Arduíno por uma string para executar o código do sonar HCSR04 e quero pegar a informação de distancia e trata-la em um while. Gostaria de saber como fazer pra acessar esta posição no array e tratar no while? A informação que o Arduino me manda é uma string concatenada com a distancia lida pelo ultrassom e o carácter de delimita a string do dado é um ";".Tenho uma função para Separar e pegar este dado num array, e outra pra mandar o comando para o Arduino.
Segue os dois codigos:
//Metodo que filtra informação vindas da serial do Arduino para analise de distancias
public void leituraDeSonar(string str)
{
int distancia = 0;
if (str != null && str.Length > 0 && str.IndexOf(";") > 0)
{
string[] vet = str.Split(';');
string naviosonar = vet[0];
distancia = Int32.Parse(vet[1]);
}
}
escreveNaSerialNavio01 = "NUSAPRO";//Comando Navio 01 acionar sonar de proa
enviaComandos(escreveNaSerialNavio01);//Escreve na serial
escreveNaSerialNavio01 = "";//Limpa a variavel
Se puder me ajudar a construir este while, fico grato.
Tags:
Eduardo, segue o codigo de solicitação ao arduino e recepção da informação a ser tratada:
As solicitções que preciso de um retorno como a distancia de um sonar, é assim:
escreveNaSerialNavio01 = "NUSAPRO";//Comando Navio 01 acionar sonar de proa enviaComandos(escreveNaSerialNavio01); escreveNaSerialNavio01 = "";//Limpa a variavel
String recebeNaSerialNavio01 = ""; leituraDeSonar(recebeNaSerialNavio01);
A função "enviaComandos":
//Método que envia os comandos via serial ao Arduino
public void enviaComandos(String Comando)
{
if (SerialConexao.IsOpen == true) //porta está aberta
{
SerialConexao.Write(enviaComando); //envia o texto presente na variável "enviaComando"
}
}
e pra monitorar a resposta do arduino que vem pela serial, ja esta inclusa na rotina de conexão com a porta serial e fica monitorando e tratando os dados recebidos
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por