variação do valor de delay após algumas leituras

Bom dia, estou fazendo a leitura de um sensor analógico no arduino e o valor só estabiliza a partir da 130° leitura com um delay de 50ms (tempo de amortecimento até o valor ficar aproximadamente constante), o que dá uns 6,5s. Até aí tudo bem, está dentro previsto. O problema é que tenho outros sensores pra ler e queria fazer a leitura deles a cada 1 segundo, inclusive desse sensor que já estaria estabilizado depois.

Ele precisa fazer essas 130(ou umas 150 pra dar mais confiabilidade) leituras pra estabilizar toda vez que o arduino é ligado ou resetado. O que eu quero fazer é que o programa funcione pra ler apenas esse sensor nos primeiros 7 ou 10 segundos com um delay de 50ms pra estabilizar ele e logo depois o programa comece a funcionar normalmente no loop com delay de 1s por exemplo.

Alguma dica de como fazer?

Exibições: 140

Responder esta

Respostas a este tópico

Bom dia, 

Não entendi nada.

E se você fizer um loop de leitura para ele ler o sensor várias vezes e tirar a média dos valores lidos. Resolveria o seu caso ?

Dá uma pesquisada sobre estabilizar valores do ADC.

http://labdegaragem.com/forum/topics/duvida-como-voc-estabiliza-var...

Bom dia. Já vi esse post e até respondi nele. Eu resolvi o problema fazendo uma média móvel pra estabilizar e é por isso que ele precisa fazer tudo aquilo de leituras pra estabilizar

   "[...] O que eu quero fazer é que o programa funcione pra ler apenas esse sensor nos primeiros 7 ou 10 segundos com um delay de 50ms pra estabilizar ele e logo depois o programa comece a funcionar normalmente no loop com delay de 1s por exemplo."

  A forma mais simples acredito que seria fazer isso até no próprio setup(). A função setup() é a primeira a inicializada, sempre antes do loop().

 Ou, para não "poluir" seu setup(), você pode fazer no início do seu loop() um bloco que garanta somente a execução uma única vez logo após ligar/resetar o hardware:

bool x = true;

void loop()

{

     if(x)

     {

          //Cods a serem executados somente uma vez após iniciar/resetar

          x = false;

     }

  

    //Continuação do seu código

}

Gostei muito das duas dicas.

Obrigado, amigo.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço