Galera, estou com um problema na leitura da porta serial. 

Mando o arduino enviar pela porta serial o valor de um contador que está incrementando para uma aplicação c++ que estou desenvolvendo no QT. 

O problema =>> 

Meu problema é quando aparece uma quebra das informações. Ex: 

99

100

101

10

2

103

105

1

06

107

Alguém já passou por isso ? 

Exibições: 536

Responder esta

Respostas a este tópico

Oi NNGJ, boa tarde.

Detalhe melhor sua dificuldade;

De onde vem estes valores?

Eles estão corretos, mas a serial que está errando?

Este contador é dentro do arduino ou externo à ele?

O que chama de "quebra das informações"?

Se possível anexe um arquivo com o seu código do arduino.

Rui

E osciloscópio ? não entendi nada também ? 

https://pt.wikipedia.org/wiki/Oscilosc%C3%B3pio

Estou construindo uma aplicação em c++ com auxílio das bibliotecas do QT creator. Minha aplicação tem o objetivo de usar as portas analógicas de um microcontrolador como canais de um osciloscópio.  No meu arduino, escrevi um código para ler uma porta analógica e enviar pela Serial a variação da tensão. São enviados números inteiros de 0 a 100. 0bits corresponde a 0v e 100bits correspondem a 5v.

Meu problema começa quando integro o projeto com o QT, pois executando a função de leitura da Serial no terminal a mesma se comportou de forma esperada, "Sem quebra da informação ".

Quebra da informação:  Quando em uma determinada linha os dados são quebrados em duas o mais

linhas. Ex:

linha 1:   96

linha 2:   97

linha 3:   9

linha 4:   8

linha 5:   99

linha 6:  100

linha 7:  10

linha 8:  1

linha 9:  102

.

.

.

.

Figura 1: Observem, na imagem acima, os dados sendo enviados pela serial. No canal analógico do arduino, havia uma tensão de 5v.  Percebam a quebra dos dados em vermelho. O que era para ser 100 em cada linha, estava sendo quebrado em 100, 01, 00 e 10. 

Figura 2:  Na imagem acima foi gerado em tempo real o gráfico dos dados quebrados. 

Fiz um novo algorítimo no arduino que amenizou o problema. 

dados = analogRead(A0);

 dados = map(dados, 0, 1023, 100);

 Serial.print(dados);

 Serial.print('.');

 delay(15);

Figura 3:  Na imagem acima, é notório como o problema da quebra dos dados foi amenizado, entretanto, ainda existe o problema.  

Alguém já passou por esses problemas na serial ? 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço