j'ai récemment commencé à m'intéressé à la programmation sur arduino et j'en suis rendu ici pour faire appel à vos lumières
Mon projet consiste à travailler avec un ruban led adressable et un bouton qui le commande. L'objectif est de faire partir un "train de leds" en mode propagation lumineuse à chaque activation du bouton. Problématique: je 'arrive à fair partir q'un seul "train" à la fois... si j'active 2 ou 3 fois le bouton il n'y a qu'un seul départ et je dois attendre la fin de la loop pour en relancer un autre.
n'hésitez pas à critiquer mon code je suis complètement novice alors si vous avez d'autres idées je suis très preneur
j'ai commencé à étudier la variable "millis" mais je ne sais pas si je suis sur le bon chemin
Oui, ton animation est gérer dans une boucle, pendant ton animation, tu ne passe pas sur ta lecture de l'état de ton bouton, il ne peut donc pas être pris en compte.
De plus dans ton animation tu ne tiens pas du tout compte des différents appuis sur ton bouton.
Pour faire cela, il faudrait gérer ton bouton par interruption, pour être avertis, même lorsque tu es dans ton animation et que celle-ci prenne en compte des différents appuis du bouton.
C'est toi qui programme, donc c'est toi qui décide ce que l'Arduino fait.
Tu peux déjà dans un premier temps, utiliser une interruption pour que ton bouton soit pris en considération immédiatement et relance l'animation du départ.
L'interruption va comme son nom l'indique interrompre le programme en cours, pour exécuter une petite fonction en priorité.
Tu pourrais aussi modifier le code de la fonction loop, pour ne pas utiliser le for est faire qu'une étape de ton animation par appel de la fonction loop, qui est appelé en boucle par le "framework" Arduino
Dans ce cas il est plus intéressant d'enlever la boucle for, la à pars la récupération de l'état du bouton, on a du coup deux boucles imbriquées l'une dans l'autre.