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