Commande de volet (manuel, horaire, detection de lumiere)

la boucle for pour faire une tempo est à proscrire: ton programme est figé pendant l'éxécution de la boucle. Et ton volet incontrôlable (comment l'arrêter en cours ?)

Ce que je te conseille:

  1. fais une routine qui te générera des impulsions tous les x millisecondes (ex: 100ms, 500ms, 1000s...) sous la forme de bit à 1 pour un cycle (utilises millis()).
  2. lorsque que le bit_100_ms sera à 1, exécute une routine qui lira l'état des entrées et décidera s'il faut faire quelquechose (ouvrir/fermer)
  3. lorsque que le bit_100_ms sera à 1, éxécute une routine qui contrôlera s'il est l'heure de faire quelquechose (ouvrir/fermer)
  4. à chaque cycle (loop), execute une routine qui actionnera tel ou tel relais en fonction des actions à réaliser.
  5. lorsque que le bit_500_ms sera à 1, exécute une routine qui contrôlera s'il faut allumer ou éteindre la led

etc.
ainsi, tu exécuteras des taches séquentiellement, en évitant de monopoliser le µC pour rien.

Gromain