Vos animations sont bloquantes, donc quand vous en lancez une, plus rien d'autre ne se fait... Par exemple quand vous appelez Prog4Saisons(), si j'enlève les fade()
void Prog4Saisons() {
delay(2000);
delay(2000);
delay(2000);
delay(2000);
delay(2000);
delay(2000);
}
vous voyez que le code attend 12 secondes, bloqué dans cette fonction. Vos boutons ne sont plus tenu à jour, ou le reste de la loop ne s'exécute pas.
➜ si vous voulez que l'utilisateur puisse continuer à intervenir pendant une animation, vous ne pouvez pas développer du code bloquant.
La programmation par machine à états (cf mon tuto éventuellement) permet de gérer ce genre de structure de code.
si vous lisez l'anglais vous pouvez aussi regarder
- Using millis() for timing. A beginners guide
- Several things at the same time
- Flashing multiple LEDs at the same time
EDIT: désolé je tapais la même réponse en gros que @terwal et il a été plus rapide :)