// Définition des broches et variables
const int H1_PIN = A0; //Entrée Taux d'humidité
const int L1_PIN = 2; //Entrée lumière WC
const int L2_PIN = 4; //Entrée lumière Salle de Bain
unsigned long previousMillis1 = 0; // Stocke le temps du dernier déclenchement
const long heureMax = 4294967294; // heure de la remise à zéro - 1 milliseconde
const long intervalTL = 30000; // Intervalle de la tempo en millisecondes (30 secondes)
const long intervalT1 = 300000; // Intervalle de la tempo en millisecondes (300 secondes)
const long intervalT2 = 1800000; // Intervalle de la tempo en millisecondes (1800 secondes)
const int V1_PIN = 9; //Sortie VMC 1 : vitesse réduite
const int V2_PIN = 10; //Sortie VMC 2 : vitesse importante
const float seuilH1 = 65; // Seuil H1 en volts
const float seuilH2 = 75; // Seuil H2 en volts
int humid = 0; // Variable de contrôle
unsigned long heureMillis = millis();
float entreeH0 = 0;
bool bascL1L2 = LOW; // bascule mémorisant le front montant L1+L2
bool L1 = LOW;
bool L2 = LOW;
void setup() {
pinMode(H1_PIN, INPUT); //Affectation des Entrées / Sorties
pinMode(L1_PIN, INPUT);
pinMode(L2_PIN, INPUT);
pinMode(V1_PIN, OUTPUT);
pinMode(V2_PIN, OUTPUT);
Serial.begin(9600); // Initialisation de la communication série pour le débogage
}
void loop() {
// Lecture des entrées
heureMillis = millis();
entreeH0 = analogRead(H1_PIN) * (100.0 / 1023.0);
L1 = digitalRead(L1_PIN);
L2 = digitalRead(L2_PIN);
Serial.print("NOUVEAU CYCLE à : ");
Serial.println(heureMillis);
Serial.print("L1:");
Serial.print(L1);
Serial.print(" L2:");
Serial.print(L2);
Serial.print(" Entrée H:");
Serial.println(entreeH0);
Serial.println("Sortie 9 à 1 pour 1 seconde");
digitalWrite(V1_PIN, 1);
delay(500);
Serial.println("Sortie 9 à 0 pour 1 seconde");
digitalWrite(V1_PIN, 0);
delay(500);
Serial.println("Sortie 10 à 1 pour 1 seconde");
digitalWrite(V2_PIN, 1);
delay(500);
Serial.println("Sortie 10 à 0 pour 1 seconde");
digitalWrite(V2_PIN, 0);
delay(500);
if (entreeH0 >= seuilH1){
digitalWrite(V1_PIN,1);
Serial.print("Activation VMC");
}
else{
digitalWrite(V1_PIN,0);
Serial.print("Désactivation VMC");
}
if (entreeH0 >= seuilH2){
digitalWrite(V2_PIN,1);
Serial.println(" en vitesse V2");
}
else{
digitalWrite(V2_PIN,0);
Serial.println(" V1");
}
delay(1500);
if (L1||L2){
digitalWrite(V1_PIN,1);
Serial.print("Activation VMC avec inter L1:");
Serial.print(L1);
Serial.print(" L2:");
Serial.println(L2);
}
else{
digitalWrite(V1_PIN,0);
Serial.println("Désactivation VMC");
}
delay(1500);
}