Bonjour,
Mon projet est d'ouvrir et fermer la porte d'un poulailler à heure fixe. J'ai écrit un programme mais qui ne s’exécute pas au heures prévues. Les tests sur une courte durée font les actions attendues mais pas sur de plus longues durées. Je pense que le problème vient du paramétrage de l'horloge. Merci de vos conseils :
#include <Wire.h>
#include <ds3231.h>
struct ts t; //déclaration variable t
void setup() {
Serial.begin(9600);
Wire.begin();
DS3231_init(DS3231_INTCN);
t.hour=18; // données pour mettre à l'heure l'horloge
t.min=47;
t.sec=00;
t.mday=29;
t.mon=07;
t.year=2023;
DS3231_set(t); // mise à l'heure de l'horloge
}
void loop() {
// put your main code here, to run repeatedly:
DS3231_get(&t);
Serial.print("date : ");
Serial.print(t.mday);
Serial.print("/");
Serial.print(t.mon);
Serial.print("/");
Serial.print(t.year);
Serial.print("\t Heure : ");
Serial.print(t.hour);
Serial.print(":");
Serial.print(t.min);
Serial.print(".");
Serial.println(t.sec);
delay(500);
//Quand courant positif verin avance, ouverture
if (((t.hour) == 07) && ((t.min) == 00)) { //07h00
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
delay(15000);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
}
//Quand courant negatif verin recule fermeture
if (((t.hour) == 22) && ((t.min) == 00)) { //22h00
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
delay(15000);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
}
}