Olá a todos, Primeiro poster e não sei se está no devido lugar. Agradeço a compreensão de todos.

Preciso de calcular o tempo de acionamento de uma válvula, que deve ficar 30 min em uso e em pausa por 10 min.

Já fiz as ligações dos dispositivos e recebe a hora certa na serial.

A biblioteca que estou usando é a DS3231-Master (https://codeload.github.com/jarzebski/Arduino-DS3231/zip/master).

Sou iniciante e se por ventura puderem comentar bem os código agradeço. Estou necessitando disso pra finalizar meu projeto. Já pesquisei bastante e não achei algo concreto ou que resolva.

Grato pela atenção de todos.

Exibições: 154

Responder esta

Respostas a este tópico

Bom dia 2B.

Explique com maior clareza sua necessidade.

Estes tempos ( meia hora e 10 min,) necessitam ter precisão?

São em horários fixos?

Porque subtração?

Voce postou o link da biblioteca, mas não postou seu sketch.

Anexe um arquivo (não cole sketch na area de texto) com seu sketch.

Qto melhor a informação que fornecer, melhor poderemos ajuda-lo.

RV

Quanto a precisão pode variar um pouco. Visto que a válvula é uma solenoide para fluxo de água.

Os horários não são fixos. Porque dependerá do fluxo de uso da água.

Subtração por vc pegar a hora que a ação foi executada e a hora que terminou a tarefa. Com isso vc vai saber o tempo de 30 min e o de 10 min. Ex.: Hora final - hora inicial.

Anexei. Mas, não sei se é o que vc queria.

Para clareza: Essa válvula vai servir para ficar no lugar de uma boia em uma caixa de água. E essa caixa vai estar sendo monitorada por sensores. Assim que os sensores indicar a falta de água ela é acionada. Mas, a válvula não pode ficar muito tempo ligada. Por isso o controle do tempo que ela vai ficar acionada.

Arduino-DS3231-master.zip

Bom dia Bruno. 

Você anexou a biblioteca para usar o DS3231. O Rui se refere ao código que você fez (ou teria que fazer, ou tentou fazer) para executar as funções que deseja. 

O que você quer fazer não parece ser muito complicado, apenas precisa entender o funcionamento do relógio (DS3231) e usar os tempos necessários para acionar uma carga externa (solenóide).

No seu projeto, como vai usar sensores para monitorar o nível de água, seria interessante integrar tudo ao Arduino, para ele fazer o monitoramento e acionar a bomba quando necessário.

Obrigado pela explicação!

Para o DS3231 não fiz nenhum código que funcione. Apenas a leitura informando dia, mês, ano, hora, min,seg. o que sem manipulação não serve para a monitoria da válvula. Assim serviria apenas para o log.

Tudo isso ta integrado no Arduíno Uno.

Ex: rtc.getDateTime(); Serial.print(dataehora1.second);

Achei uma função que faria talvez o que preciso. Mas, não funcionou. Não sei o que posso ta errando.

#include " time.h "
int32_t
  {
  retorno t1 - t2;
  }
Mas não sei se resolve e não consegui fazer funcionar.

2B, anexe um arquivo com o seu sketch.

RV

Esse código que envio é apenas o que esta funcionando.

Somente serve pra min indicar a data e hora.

Agora o principal que busco é calcular essas horas é o que não estou conseguindo.

Forum_DS3231.ino

Bom dia 2B.

Pelo que entendi vc não precisa de um RTC, pode usar a lib. TimerOne.h

https://github.com/PaulStoffregen/TimerOne.

e em 30 minutos liga a bomba e depois de 10 minutos desliga a bomba e

novamente repete o ciclo.

Analise o sketck interrupt.pde, parece com sua necessida,

basta mudar a extensão para .ino e colocar os tempos de acordo com

sua necessidade.

RV.

Estou testando o código. Retorno depois

Mas, vc acha que não é possível fazer esse calculo de diferença com o RTC?

Fiz o teste aqui. Além de fazer uma leitura nesse link https://playground.arduino.cc/Code/Timer1/ onde diz que a biblioteca só interrompe por no máximo 8s de cada vez. Fiz e comprovei.

Nessa situação não encontrei uma forma que controlar o tempo de execução com essa ideia.

Boa tarde 2B,

acho que você não "captou" a mensagem.

Resolvi escrever um sketch simples fazendo o que vc precisa.

Testa aí e depois conta pra gente o resultado.

RV

Pick_30_Release_10.ino

Bom dia 2B,

testa este código e veja se imprime como vc quer.

RV

Forum_DS3231_V02.ino

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço