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?
Tags:
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
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
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por