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