Para minhas elucubrações preciso que em determinada hora seja registrada a leitura
de um sensor.
Tentei várias alternativas mas não consegui.
O sketch era compilado mas nada era executado.
Para exemplificar veja duas tentativas (parte do sketch):
1 -Time t;
if(t>( 23,14,05))
{
do something............
2 - t = rtc.getTime();
if(t> (23,00,12))
{
do something
Obs. Me desculpem se escrevi bobagem. Estou começando a estudar
o DS3231!
Tags:
Bom dia. O que está acontecendo é que a condição do if nunca é verdadeira, creio eu pela estrutura dele.
Se não m engano a função rtc.getTime() retorna uma String. Para comparar uma igualdade entre Strings funciona muito bem. Não tenho certeza se é preciso usar as operações lógicas '<' ou '>' para comparar strings. De toda forma eu aconselho você a criar funções e extrair os valores separadamente de horas, minutos e segundos, transformar em inteiros antes de fazer a comparação.
Espero ter ajudado.
RHAICMER, Por favor veja o sketch abaixo que parece ter funcionado mas ao religar
começa novamente a contagem de tempo (estou respondendo pelo Leo pois ele
não conseguiu acessar a página (?????????????????)
MUITO OBRIGADO
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
Time t;
void setup()
{ Serial.begin(115200);
rtc.begin();
rtc.setTime(23, 14, 0);
}
void loop(){
t=rtc.getTime();
if(t.hour==23 && t.sec == 6){
Serial.println("sensor 1");
Serial.print(t.hour);
Serial.print (" horas ");
Serial.print(t.sec);
Serial.println(" segundos ");}
if(t.hour==23 && t.sec==9){
Serial.println("sensor 2");
Serial.print(t.hour);
Serial.print(" horas ");
Serial.print(t.sec);
Serial.println(" segundos "); }
delay(1000);
}
Bom dia LD,
O formato do seu if está equivocado.
Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo com o seu
sketch.
Daí podemos dar uma olhada nele e sugerir correções.
RV
mineirin RV; peço olhar o sketch abaixo. Estou respondendo pelo Leo pois ele não conseguiu
acessar a página (???????????????????) ( está ao meu lado).
Não sei por que o RTC não mantém o horário (cada vez que ligo inicia a contagem do tempo)
MUITO OBRIGADO
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
Time t;
void setup()
{ Serial.begin(115200);
rtc.begin();
rtc.setTime(23, 14, 0);
}
void loop(){
t=rtc.getTime();
if(t.hour==23 && t.sec == 6){
Serial.println("sensor 1");
Serial.print(t.hour);
Serial.print (" horas ");
Serial.print(t.sec);
Serial.println(" segundos ");}
if(t.hour==23 && t.sec==9){
Serial.println("sensor 2");
Serial.print(t.hour);
Serial.print(" horas ");
Serial.print(t.sec);
Serial.println(" segundos "); }
delay(1000);
}
Retire essa linha
rtc.setTime(23, 14, 0);
No seu caso, ela configura a hora todas as vezes que você ligar o Arduino.
Use apenas quando for necessário ajustar a hora
Puxa!!!!!!!!
Muito obrigado Flávio.
Alguns instantes antes de você postar eu li (vidadesilício) para
configurar rtc.setDateTime() e depois carregar novamente apagando a linha.
Como você disse.
Eu não sei como configurar neste caso (parece mais completo).
Você pode me ensinar? Ou me indicar links?No post não há detalhe.
Obrigado. abs
Desculpe-me Flávio
O sketch do portal citado não funcionou.
"o nome rtc.setDateTime não existe na classe DS3231"
Vou pesquisar e qquestionar.
Obrigado
Primeiramente, você deve saber que biblioteca você está usando, de onde você instalou, pois existem diversas implementações para usar DS3231, muitas vezes não segue um padrão em relação a chamada dos métodos. Logo um determinado método pode existir em uma biblioteca e em outra não.
Recomendo você usar a biblioteca da Adafruit
https://learn.adafruit.com/ds1307-real-time-clock-breakout-board-ki...
O Flávio tem razão.
Existem 500 libs para RTC.
Quando você vai usar uma lib, deve conhecer seus métodos e portanto tem que ter acesso ao manual ou ao código-fonte, senão fica difícill de usar.
A maioria das libs que você instala no Arduino sempre vêm acompanhadas de exemplos que ficam disponíveis no menu da IDE.
Pelo que vi em algumas libs, para testar a hora, procedemos assim:
RTC.getTime();
if (RTC.hour == ...)
Mas vc precisa saber qual lib usou.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por