Hoje jogos de simuladores voo ou corrida disponibiliza algumas informações via porta UDP para poder montar display painel de carro avião, iniciei o projeto construindo um software que roda no pc capturando essa informações e fazendo o tratamento o segundo passo é enviar essas informações para o arduino para exibir as informações em lcd e acender e apagar leds, tentei enviar uma string com tudo concatenado usando um delimitador para quebrar as informações só que notei quando eu trabalho com string no arduino o processo fica extremamente lento ele mesmo eu mandando uma string "off" ou "on", seu mando um inteiro 0 ou 1 ele funciona uma blz, não tenho muito conhecimento usando a porta serial, minha dificuldade é manda essas informações de uma vez como velocidade, RPM de uma vez para não ter delay de informação alguém tem uma sugestão?

Exibições: 555

Responder esta

Respostas a este tópico

Opa Teodoro tentei essa abordagem mas ficou lento também, usei o indexOf para pegar as posições do : e depois trabalhei com subString

Segue meu código

Anexos

Boa noite!

Você disse que quando envia inteiros pela serial ela é mais rápida.

Então você não precisa enviar Strings. Transforme as Strings em inteiros.

Exemplo:

rpm = dados.substring(0, indiceRPM);

int rpm2 = rpm.toInt();

Agora é só enviar rpm2 (que é int) pela serial

Assim como o Teodoro, já trabalhei com a serial do Arduino e ela responde de forma satisfatória.

Mas quando se trabalha com 2 seriais ao mesmo tempo, como é o seu caso, pode haver alguma perda.

Uma curiosidade:

No seu código o loop

for (int nC = NCis - 1; nC >= 0; nC--) 

Vai sempre executar uma única vez, pois NCis = 1, portanto NCis-1 = 0. Logo vai fazer um FOR de 0 a 0 e parar pois, da segunda vez nC vai ser = -1. 

É isso? Ou entendi errado? Se for isso, esse FOR é desnecessário.

Outra dúvida:

Você chama a função ic74hc595Write sempre com o mesmo pino 2, logo o comando

bitWrite(temp[pino / 8], pino % 8, estado) vai sempre setar o mesmo vetor de índice 0, pois 2/8 = 0.25 = 0.

Correto? ou entendi errado de novo?

Fiquei curioso, mas não pude estudar o código com mais calma para entendê-lo.

o metodo ic74hc595Write tenho que corrigir algumas coisas nele o valor de NCis é pq estou por hora usando somente um 74hc595 para acender os leds

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço