[Résolu] Répéter une animation puis passer à une autre.

Salut tout le monde !

Alors voilà, j'expose mon problème. Je suis débutant en Arduino, et malgré des heures de lectures, et une connaissance primaire en C, je n'arrive pas à mes fins.
Je réalise un Cube LED (3x3x3) dont j'ai codé quelques animations séparément et je voudrais maintenant les regrouper afin de créer un programme, appliquant les différents effets. Seulement voilà, j'aimerais répéter une animation 3 fois, avant de passer à la suivante, surtout que celle-ci sont courtes (~ 0,5s), sans avoir à copié 3 fois le code de l'animation dans la void loop(). Et je ne trouve pas le moyen de le faire.

Voili voilou, j'espère avoir été clair, et je vous souhaite de passer de très bonnes fêtes de fin d'année. Adri

Salut,
tu peux faire ce que tu veux très simplement en créant des fonctions :
tu définis une fonction qui contient le code d'une animation, et tu peux ensuite l'appeler n'importe quand dans le programme.
Exemple :

void Mafonction() {  //Crée une fonction appelée "Mafonction"
//Mets ici le code d'une animation (par exemple). Il sera exécuté à chaque appel de la fonction par le programme principal.
}

void setup() {
}

void loop() {
Mafonction();  //Appel de la fonction "Mafonction" : le code contenu dans celle-ci sera exécuté
}

Tu peux créer autant de fonctions que tu veux :slight_smile: !
Pour les variables : une variable déclarée à l'extérieur d'une fonction sera valable pour toutes les fonctions (variable globale) tandis qu'une variable initialisée dans une fonction ne sera valable que pour celle-ci (variable locale).
Voilà, c'est à peu près tout pour la base des fonctions ; en espérant que cela t'aideras :slight_smile: .

Et si tu dois faire des répétitions tu peux utiliser également les boucles, classiquement une boucle for :

for(int i=0;i<3;i++){ // déclaration de la variable i à la valeur 0, la boucle tournera tant que i sera inférieur à 3, i est incrémenté de 1 à chaque lancement de la boucle
MonAnimation(); // ta fonction ou le code de ton animation
}

Et donc ensuite, dès que i=3, ça passera à la fonction suivante ?
Du style

for (int i=0;i<3;i++)
{
MonAnimation();
}

for (int i=0;i<3;i++)
{
MonAnimation2();
}

exactement

Ok, bah merci les gars, vous m'avez été d'une grande aide =)