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á!
Tags:
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
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
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!!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por