Go Down

Topic: [Résolu] Répéter une animation puis passer à une autre. (Read 755 times) previous topic - next topic

Dr_H2O2

Dec 24, 2012, 12:08 am Last Edit: Dec 24, 2012, 03:42 pm by Adricolo Reason: 1
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

MACMan8

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 :
Code: [Select]

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 :) !
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 :) .
Lao Tseu l'a dit "Longue est la route qui mène à la connaissance, et nombreux sont les péages".

B@tto

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

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
}
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Dr_H2O2

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

Code: [Select]

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

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


Christian_R

Christian

Dr_H2O2

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


Go Up