Pessoal, tenho a seguinte dúvida:

Desenvolvi um código no Arduino que escreve na porta serial os dados obtidos por um sensor de temperatura. Esses dados são lidos e exibidos em uma Listbox no Visual Basic.

O problema é que eu só consigo ler e exibir a primeira informação enviada pelo Arduino. Eu gostaria que a Listbox atualizasse as informações lidas, de forma automática, uma vez que o Arduino escreve novos dados na porta serial a cada segundo.

Consegui fazer algo parecido, através de estrutuas de loop, como FOR e DO WHILE. Ele até atualiza os dados, mas eu não consigo sair do loop e ele trava todos os outros objetos do Formulário.

Eu tenho pouco conhecimento em VB, por isso se vocês puderem postar um código simples pra fazer isso. Estou utilizando o Visual Basic 2010 Express Edition.

Vlw

Exibições: 2269

Responder esta

Respostas a este tópico

amigo passei por esse mesmo problema!!

tem uma função que lê a porta serial sempre que chega algo assim o seu programa não fica preso em um algum laço!

quem me passou a função foi um amigo meu acho que ele ficaria grilado seu eu postasse aqui, porém não sei ao certo como funciona algumas estruturas da função é só copiar o esqueleto dela e adaptar ao seu código!!!

 port.DataReceived += new SerialDataReceivedEventHandler(DataReceiveHandler);//  essa linha de código chama a função que le a porta serial sempre que chega algo nela.

private void DataReceiveHandler(object sender, SerialDataReceivedEventArgs args)//função que le a porta serial
{
this.Invoke(new ThreadStart(() =>
{
// aqui dentro voce coloca o codigo para a leitura da porta serial pro exemplo 

Temperatura.Text = port.ReadLine() + " °C";

}));

 espero ter ajudado!!

xD

Caro Marcelo esqueci de dizer você esqueceu de incluir essa biblioteca

using System.Threading;

Olá Marcelo, 

você poderia colocar o código usado? Estou tendo dificuldade para ler dados via porta serial. 

Obrigado!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço