Boa tarde,

Eu fiz um programa no arduino para ler o estado de um rele, mas depois de 1420 informações no Serial Monitor ele trava. Fiz um teste com o exemplo do DigitalReadSerial do arduino pra ver se ocorria o mesmo, mas o exemplo não travou. Então decidi tirar uma função de comparação do meu programa, onde ele comparava a informação, caso for igual, ele não imprimia no serial monitor, se for diferente imprime. Porém não para de aparecer informações na minha serial, igual ocorre no exemplo. Cheguei uma conclusão que está enchendo a memoria do arduino. O que posso fazer para o arduino parar de travar? Tem alguma função que eu coloco para limpar o buffer do arduino? Vou deixar o link da minha programação aqui:

http://pastebin.com/bQgM9sPj

http://pastebin.com/bQgM9sPj

http://pastebin.com/bQgM9sPj

Exibições: 3172

Responder esta

Respostas a este tópico

Obrigado.

Já tentei usar essa função, mais não deu certo tambem. Continuou travando. Li em alguns lugares que essa função foi alterada na versão 1.0.0 do arduino.

Abraço

Tive um problema parecido semana passada, coloquei um arduino nano pra fazer leitura de canal analogico de 1 em 1ms, começava bem depois travava, resetava e depois travava, mas percebi que mesmo quando travava, o led TX do arduino continuava a piscar, ou seja, o arduino estava enviando os bits, o pc que não conseguia interpretá-los,  mudei a porta usb q estava usando, estava usando um extensor usb,  q fazia com a tensao caísse e o pc nao conseguia interpretar o bit enviado, retirei o extensor pluguei direto em uma porta traseira, resolveu de uma vez por todas.

Talvez pode ser o mesmo problema que vc tenha aí, é só uma dica.

abraço.

Opa, muito obrigado,,. Mas ja testei em 3 computadores porém o problema continua...

Mas obrigado pela dica !! 

Oi MC, boa tarde

Teste este code e dê um feedback.

Coloquei uma variável pra contar qtas vezes ele passa pelo teste dos reles.

http://pastebin.com/2XsDzTMf

Rui

Testei o codigo, diminui o delay para 30 e

montei um esquema parecido com esse e não travou.

Só uma observação, não é boa pratica criar variáveis dentro da função void loop(). Essa função está dentro de while(TRUE), se for assim crie variáveis globais.

 

O que é feito com o valor pino 8, rele7? Não existe teste para ele.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço