Bom dia! Tudo bem com os Srs.?

Gostaria de alguma sugestão para substituir a função millis()

Estou desenvolvendo um projeto que coleta  fluxo de água, o projeto já está rodando.  Como os Srs devem saber essa função zera ao passar de alguns dias... como esse projeto ficará o tempo todo ligado eu queria saber como posso acertar isso.

Obrigado desde já!

Exibições: 303

Responder esta

Respostas a este tópico

eu geralmente utilizo WatchDog, ai a placa reinicia a cada 8 segundos ou ao termino de cada função, sendo assim a contagem esta sempre no inicio, isso previne travamentos por erros acumulados ao longo do dia.

Legal, vou ver como usar! Nesse caso quando a placa reiniciar e houver algum fluxo de água passando eu perderei a contagem, correto?

tem vários jeitos e depende um pouco da qual placa vc esta ustilizando, mas basicamente é isso aqui

https://brasilrobotics.blogspot.com/2012/08/discutindo-sobre-watchd...

Achei interessante... vou ver como implantar no meu caso!

Muito Obrigado, Tiago

Bom dia, 

Você usa o millis para que ?

Vou postar parte do código comentado para que possa entender:

if ((millis() - oldTime) > 1000) // se (tempo atual - oldTime for > que 1 segundo)
{
detachInterrupt(sensorInterrupt); // desabilita a interrupço enquanto calcula o flow rate
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibrationFactor;
oldTime = millis(); //oldTime recebe o tempo atual
flowMilliLitres = (flowRate / 60) * 1000;

acho que da para entender, né? posso dar mais detalhes qualquer coisa!

Obrigado, José.

Boa tarde PB,

Se os tempos forem pequenos (1 segundo, 10 segundos, etc) você pode usar o recurso da biblioteca 

TimerOne.h.

Veja este seu exemplo em anexo modificado para usar TimerOne;

Forcei alguns valores só pra ter uma saida calculada.

RV

Anexos

Muito Obrigado! vou fazer os testes aqui...

Depois dê um feedback pra gente.

RV

Desculpe a demora!! O programa já esta funcionando com o TimerOne! Muito obrigado, pessoal!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço