estou com um pequeno programa para teste de meu TCC.

Envio um comando via serial (software desenvolvido em DELPHI) para o arduino.

Led de status Rx pisca, o comando e recebido, e uma saída que deve ligar um LED aciona aproximadamente após uns 2s.

alguma sugestão para deixar mais rápido?

ARQUIVO em anexo.

Exibições: 35

Anexos

Responder esta

Respostas a este tópico

Olá.

 Nunca usei serialEvent(), me parece uma solução bastante interessante.

 Mas não entendo como ela pode funcionar junto com o readuntil.

 A questão é que se chega 1 byte o processamento vai parar no SerialEvent() aih dentro do serial event vc fica travado esperando outro byte chegar...  Acho que o problema está aih.

 Minha sugestão seria criar uma variavel global para receber a string, Sempre que houver uma recepção verificar se for /n ou não . Se for vc processa a string, se não for vc acumula.

A rotina que espera o /n deve estar saindo por timeout, por isso a demora.

Boa tarde TO.

Na ultima linha da função setup() , adicione esta   "   Serial.setTimeout(50); "  ,

e veja se dá certo.

Se der dá um feedback pra gente.

https://www.arduino.cc/en/Serial/SetTimeout

RV

Rui e Eduardo,

realmente estava saindo por Timeout.

Descobri o motivo.

Em C envio: minhaString+'\n';

Em Delphi estava fazendo o mesmo, mas ele concatenava a string e não adicionava o new line como deveria.

Corrigindo para: minhaString+LineFeed; resolvi o problema

Obs: LineFeed é uma constante da própria IDE.

Obrigado!

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2017   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço