Tempo aérateur WC

Un petit programme pour temporiser le démarrage et l'arrêt de l'extracteur des toilettes. A l'allumage (manuel) de la lumière une tempo démarre, au bout d'une minute 30 l'extracteur se met en marche puis une seconde tempo est lancée après l'extinction de la lumière pour maintenir l'extracteur en marche pendant 2 minutes.
Si on quitte les toilettes avant la fin de la première tempo, pas d'extraction.

const byte pinInterrupteur = 2; // l'interrupteur est connecté sur la broche 2 (du 5V pas du 240! j'ai utilisé une mini alim de led)
long temps1; // variable qui stocke la mesure du temps (Lumière allumée, retard extracteur)
long temps2; // variable qui stocke la mesure du temps (Lumière éteinte, maintien extracteur)

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(pinInterrupteur, INPUT); // Entrée Interrupteur (5V)
  pinMode(13, OUTPUT); //LED on Model A (pin pour piloter un relais)
  temps1 = millis();// on initialise le temps
  temps2 = millis();// on initialise le temps
  digitalWrite(13, LOW); // led éteinte

}

void loop() // the loop routine runs over and over again forever
{

  if (digitalRead(pinInterrupteur) == HIGH) { // si inter ON

    if ((millis() - temps1) > 90000) //1minute 30
    {
      digitalWrite(13, HIGH);   // Allume led
      temps2 = millis(); // on stocke la nouvelle heur
    }
    else { // sinon
      digitalWrite(13, LOW); // led éteinte  
    }
  }
  else {
    digitalWrite(13, LOW); // led éteinte
    temps1 = millis(); // on stocke la nouvelle heure
        if ((millis() - temps2) < 120000) //2 minutes
    {
      digitalWrite(13, HIGH);   // Allume led
      
    }
    else { // sinon
      digitalWrite(13, LOW); // led éteinte     
    }
  }
}
1 Like

Bonjour,
Merci pour le partage.

Mais pouvez-vous éditer votre post et le mettre en forme svp.
Seul une partie du code est as visible entre balise.

Aussi, il faudrait donner quelques informations sur le câblage des éléments comme le bouton car avec le code: pinMode(pinInterrupteur, INPUT); // Entrée Interrupteur (5V)

Il faut une résistance de tirage!

Merci.

Bonjour,
J'ai corrigé mes balises.
Oui, j'ai mis une résistance de 4,7K entre GND et 2.
L'alim 5V est alimenté en 240V quand l'inter est sur ON elle est reliée - au GND et + sur 2.
Le petit relais est aussi en 5V avec une diode en // le- au GND le + sur 13.
Noter que je n'utilise pas "delay()"
Une Attiny pourrait remplacer l'Arduino.

Merci..

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.