Aumentar velocidade de comunicação entre Arduino e tela nextion

Boa tarde pessoal, estou inventando uma nova automação para minha casa, estou tratando de melhorar o desempenho geral do sistema.

Estava notando que tenho um delay de cerca de uns 5 segundos, entre por exemplo ativar o botão na tela touch e o arduino efetivamente realizar a ação solicitada pela tela, não é um problema pois quando se trata de realizar as ações programadas nos horários solicitados é instantâneo, seria apenas essa comunicação que demora um pouco a ser realizada, há alguma maneira de "acelerar" a velocidade de comunicação?

Talvez aumentando o BaundRate da serial? Atualmente esta em 9600, nem sei se o arduino suporta uma velocidade maior . . .

----------------------------------------------------------------------------------------------------------------------------

OBS: Estou usando um arduino Mega 2560 e uma tela Nextion 3.5Pol, NX4832T035_011

----------------------------------------------------------------------------------------------------------------------------

OBS 1: Não sei se pode ter alguma relação mas tenho 14 telas as quais acesso via IHM sem depender do Arduino para tal, normalmente o sistema fica na tela principal onde pode mostrar até 6 mensagens de alarme diferentes, além de data, hora e nível de um tanque que controlarei analogicamente, há outras 3 telas que também mostram uma analógica mas apenas quando estou nelas(penso eu). As demais telas tem apenas botões e caixas de texto para inserção de variáveis.

----------------------------------------------------------------------------------------------------------------------------

OBS 2: Praticamente eliminei todas as variáveis globais presentes, além de eliminar lógicas que não estavam mais em uso.

Exibições: 65

Responder esta

Respostas a este tópico

Olá.

  Coisas que deixam um programa lento:

  1) delay();

  2) Mandar pela serial informações que não serão utilizadas. Eu mesmo as vezes faço uns envios para efeito de debug, acaba a fase de debug e não tiro. Caso esses bytes lotem o buffer da serial (que é pequeno) o Arduino para até que o buffer esvazie, ficando a mercê da capacidade de transmissão.

  3) o 2) com baudrate baixo.

  Em comunicações dentro do aparelho (internas) o normal é usar o máximo que vc tiver disponível, por ex 115200bps.

  Menos que 115200 só se vc tiver problemas de comunicação como um chicote que percorre ao longo de uma maquina/carro ou a comunicação seja bem pouca, como de um GPS (a cada 2s, as vezes 0,5s).

Enfim, tente 115200. Se ficar dando bugadas baixe um pouco, mas 9600 é mto pouco...

Olá, sobre o ponto 1 eu não costumo usar delay e nesse programa não tem essa função, sobre o ponto 2 penso ser o serial print, eu ate tinha alguns que tbm usava para testes mas já foram removidos, então sobra o ponto 3, vou experimentar e comendo os resultados, só preciso achar onde fica isso na biblioteca do nextion e no arduino, vou fazer umas pesquisas. 

Boa noite,

9600 bps é uma velocidade muito baixa para comunicação serial. Mude para o maximo = 115200 bps. 

Serial Port Baudrate Standard 2400 9600 115200 bps

Datasheet:

https://nextion.tech/datasheets/nx4832t035/

RSS

© 2023   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço