Module RTC

Bonjour,

J'aimerais pouvoir allumer ma lampe toute les 3 heures pendant 2 min mais je ne sais pas comment faire, pouvez-vous m'aider s'il vous plaît

#include <DS3231.h>

int Relay = 4;

DS3231 rtc(SDA, SCL);
Time t;

const int OnHour = 15; //SET TIME TO ON RELAY (24 HOUR FORMAT)
const int OnMin = 48;
const int OffHour = 15; //SET TIME TO OFF RELAY
const int OffMin = 50;

void setup() {
Serial.begin(115200);
rtc.begin();
pinMode(Relay, OUTPUT);
digitalWrite(Relay, LOW);
}

void loop() {
t = rtc.getTime();
Serial.print(t.hour);
Serial.print(" hour(s), ");
Serial.print(t.min);
Serial.print(" minute(s)");
Serial.println(" ");
delay (1000);

if(t.hour == OnHour && t.min == OnMin){
digitalWrite(Relay,HIGH);
Serial.println("LIGHT ON");
}

else if(t.hour == OffHour && t.min == OffMin){
digitalWrite(Relay,LOW);
Serial.println("LIGHT OFF");
}
}

hello
lire ceci

Ça aussi : Code avec balise: icône </>

Sans oublier de formater avant de copier : Ctrl T

C'était ton code ?

Tu veux le faire toutes les 3 heures mais à partir de quand ?

Je ferais comme ça:
Admettons que tu commences à 12:34 ,
int minutes_top = 34;
int heure_top = 12;

int nbr_minutes_top = (heure_top60) + minutes_top ; // ici 1260 + 34

Ensuite tu fais le même genre de calcul pour l'heure "actuelle" .

Tu fais la différence entre les 2 et quand c'est égale à 180 (3heures en minutes) , tu joues avec ton relais.

Faudra gérer le passage à minuit et la durée de 2 min mais ca sera dans un prochain épisode :smiley: !