-
Posts
2 -
Cadastrado em
-
Última visita
Reputação
1-
Ulysses De Paulo Araujo alterou sua foto pessoal
-
Outro como acionar uma lampada em um dia especifico da semana?
Ulysses De Paulo Araujo respondeu ao tópico de Ulysses De Paulo Araujo em Microcontroladores
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"); } } -
Outro como acionar uma lampada em um dia especifico da semana?
Ulysses De Paulo Araujo postou um tópico em Microcontroladores
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