Ir ao conteúdo
  • Cadastre-se

Ulysses De Paulo Araujo

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

1
  1. Boa noite. Fiz como você disse e funcionou perfeitamente, obrigado pela ajuda Isadora. O código ficou assim, caso alguém queira copiar: //Inclusao dessas duas bibliotecas #include <Wire.h> #include "RTClib.h" int Relay = 3;//pino do arduino const int OnHour = 8; //hora ligar const int OnMin = 00; //minuto ligar const int OffHour = 18; //hora desligar const int OffMin = 00; //minuto desligar //As linhas de codigo a seguir devem ser comentadas, ou descomentadas, de acordo com o modelo de RTC utilizado (DS1307 ou DS3132) //RTC_DS1307 rtc; //Objeto rtc da classe DS1307 RTC_DS3231 rtc; //Objeto rtc da classe DS3132 char diasDaSemana[7][12] = {"Domingo", "Segunda", "Terca", "Quarta", "Quinta", "Sexta", "sábado"}; //Dias da semana em que 1 e segunda e 7 domingo void setup () { Serial.begin(57600); //Inicializa a comunicacao serial if (!rtc.begin()) { //Se o RTC nao for inicializado, faz Serial.println("RTC NAO INICIALIZADO"); //Imprime o texto while (1); //Trava o programa } //rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //CAPTURA A DATA E HORA EM QUE O SKETCH É COMPILADO //rtc.adjust(DateTime(2019, 3, 18, 10, 53, 00)); //Ajusta o tempo do RTC para a data e hora definida pelo usuario. delay(100); //100 Milissegundos pinMode(Relay, OUTPUT); digitalWrite(Relay, HIGH); } void loop () { DateTime agora = rtc.now(); // Faz a leitura de dados de data e hora Serial.print("Data: "); Serial.print(agora.day(), DEC); //Imprime dia Serial.print('/'); //Imprime barra Serial.print(agora.month(), DEC); //Imprime mes Serial.print('/'); //Imprime barra Serial.print(agora.year(), DEC); //Imprime ano Serial.print(" / Dia da semana: "); //Imprime texto Serial.print(diasDaSemana[agora.dayOfTheWeek()]); //Imprime dia da semana Serial.print(" / Horas: "); //Imprime texto Serial.print(agora.hour(), DEC); //Imprime hora Serial.print(':'); //Imprime dois pontos Serial.print(agora.minute(), DEC); //Imprime os minutos Serial.print(':'); //Imprime dois pontos Serial.print(agora.second(), DEC); //Imprime os segundos Serial.println(); //Quebra de linha delay(1000); //1 Segundo if ((agora.dayOfTheWeek()!=7) && (agora.hour() == OnHour) && (agora.minute() == OnMin)){ digitalWrite(Relay,LOW); Serial.println("LIGHT ON"); }else if ((agora.dayOfTheWeek()!=7) && (agora.hour() == OffHour) && (agora.minute() == OffMin)){ digitalWrite(Relay,HIGH); Serial.println("LIGHT OFF"); } }
  2. Boa noite pessoal. Estou usando um rtc3231, uma fonte, um arduino uno e um relé para poder ligar e desligar uma lâmpada no tempo predeterminado em uma loja, ele funciona no horário certo, porém tenho que adicionar o dia da semana, pois ela só vai funcionar de segunda a sábado de 8:00 as 18:00 mas tem que ficar desligada no domingo, e é essa variável de dia da semana que eu não consigo criar uma const int e colocar junto com hora e minuto no comando if. Alguém poderia me ajudar? /Inclusao das bibliotecas #include <Wire.h> #include "RTClib.h" int Relay = 3; const int OnHour = 8; const int OnMin = 00; const int OffHour = 18; const int OffMin = 00; RTC_DS3231 rtc; //Objeto rtc da classe DS3132 char diasDaSemana[7][12] = {"Domingo", "Segunda", "Terca", "Quarta", "Quinta", "Sexta", "sábado"}; //Dias da semana void setup () { Serial.begin(57600); //Inicializa a comunicacao serial if (!rtc.begin()) { //Se o RTC nao for inicializado, faz Serial.println("RTC NAO INICIALIZADO"); //Imprime o texto while (1); //Trava o programa } //rtc.adjust(DateTime(2019, 3, 18, 10, 53, 00)); //Ajusta o tempo do RTC para a data e hora definida pelo usuario. delay(100); //100 Milissegundos pinMode(Relay, OUTPUT); digitalWrite(Relay, HIGH); } void loop () { DateTime agora = rtc.now(); // Faz a leitura de dados de data e hora Serial.print("Data: "); Serial.print(agora.day(), DEC); //Imprime dia Serial.print('/'); //Imprime barra Serial.print(agora.month(), DEC); //Imprime mes Serial.print('/'); //Imprime barra Serial.print(agora.year(), DEC); //Imprime ano Serial.print(" / Dia da semana: "); //Imprime texto Serial.print(diasDaSemana[agora.dayOfTheWeek()]); //Imprime dia da semana Serial.print(" / Horas: "); //Imprime texto Serial.print(agora.hour(), DEC); //Imprime hora Serial.print(':'); //Imprime dois pontos Serial.print(agora.minute(), DEC); //Imprime os minutos Serial.print(':'); //Imprime dois pontos Serial.print(agora.second(), DEC); //Imprime os segundos Serial.println(); //Quebra de linha delay(1000); //1 Segundo if ((agora.hour() == OnHour) && (agora.minute() == OnMin)){ digitalWrite(Relay,LOW); Serial.println("LIGHT ON"); }else if ((agora.hour() == OffHour) && (agora.minute() == OffMin)){ digitalWrite(Relay,HIGH); Serial.println("LIGHT OFF"); } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!