Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Wiki
Pages
Dernière activité
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
Arduino | Chenillard de Leds - Fonctions
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Wims" data-source="post: 7163350" data-attributes="member: 447109"><p style="text-align: center">Bonsoir le forum ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite400" alt="::):" title="Smile ::):" loading="lazy" data-shortname="::):" /></p> <p style="text-align: center"></p> <p style="text-align: center">Dans ce tutoriel dédié à l'Arduino (C/C++), je vais poffiner ce <a href="https://reality-gaming.fr/threads/arduino-1-chenillard-de-leds.580191/" target="_blank">tutoriel</a>.</p> <p style="text-align: center">Donc si vous ne l'avez pas suivi, il est fort possible que vous ne comprenez pas ce que je vais faire ici.</p> <p style="text-align: center"></p> <p style="text-align: center">Ce tutoriel va être assez court, car c'est juste une petite amélioration, donc au niveau des composants c'est exactement pareil.</p> <p style="text-align: center"></p> <p style="text-align: center">Mais nous allons tout de même refaire le code depuis le début, mais avant je vous rappel le montage :</p> <p style="text-align: center"></p> <p style="text-align: center"></p> <p style="text-align: center"><img src="http://wiki.labaixbidouille.com/images/7/73/4_LED_Fritzing.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p> <p style="text-align: center"></p> <p style="text-align: center">Comme dans l'autre tutoriel, nous allons utiliser seulement 3 Leds, pour ma part :</p> <p style="text-align: center"></p> <p style="text-align: center">LED Rouge = PIN 13</p> <p style="text-align: center">LED Blanche = PIN 12</p> <p style="text-align: center">LED Bleue = PIN 11</p> <p style="text-align: center"></p> <p style="text-align: center">Avant de nous attaquer à la partie "setup", nous aller enumérer les couleurs de chaque LEDs comme ceci :</p> <p style="text-align: center"></p><p>[CODE]enum { ROUGE, BLANC, BLEUE };[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Maintenant, nous allons dire les pins sur les quelles sont branchées nos Leds.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons donc mettre tous ça dans la fonction "setup" :</p> <p style="text-align: center"></p><p>[CODE]void setup() {</p><p> pinMode(13, OUTPUT);</p><p> pinMode(12, OUTPUT);</p><p> pinMode(11, OUTPUT);</p><p>}[/CODE]</p><p></p><p style="text-align: center">Nous en avons déjà terminer pour la partie "setup".</p> <p style="text-align: center">Maintenant nous allons créer <strong>notre fonction</strong> !</p> <p style="text-align: center"></p> <p style="text-align: center">Avant de commencer, à quoi sert une fonction?</p> <p style="text-align: center"></p> <p style="text-align: center">Une fonction sert à ne pas nous répéter (résumé très bref <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite362" alt=":nerveux2:" title="Nerveux2 :nerveux2:" loading="lazy" data-shortname=":nerveux2:" />).</p> <p style="text-align: center">Dans notre chenillard nous allons écrire beaucoup de fois la commande pour allumer et éteindre les LEDS, donc au lieu d'écrire "Allumer Led, attendre 0.5 secondes, éteindre LED" pleins de fois, nous allons l'écrire qu'une fois.</p> <p style="text-align: center">Et par la suite nous aurons plus qu'a appeler cette fonction.</p> <p style="text-align: center"></p> <p style="text-align: center">Pour créer une fonction rien de plus simple ! :</p> <p style="text-align: center"></p><p>[CODE]void votreFonction(const byte laquelle) {</p><p> // contenu</p><p>}[/CODE]</p><p></p><p style="text-align: center">Vous noterez le "const byte laquelle" expliquez ici :</p> <p style="text-align: center">[SPOILER="const byte laquelle"]Notez la déclaration de l’argument : "<strong>const byte laquelle</strong>". Cela signifie que <strong>l’argument </strong>"<strong>laquelle</strong>" est <strong>constant </strong>à l’intérieur de la fonction, sa <strong>valeur</strong> n’y sera donc pas <strong>modifiable</strong>. <strong>"byte" </strong>est le <strong>type</strong>.[/SPOILER]</p><p></p><p style="text-align: center">Pour ma part je vais appeler la fonction "<strong>startLed</strong>".</p> <p style="text-align: center">En premier lieu, on va <strong>éteindre </strong>toutes les LEDs (ce sera l'état par <strong>défaut </strong>des LEDs si la fonction n'est pas appelé).</p> <p style="text-align: center"></p><p>[CODE]void startLed(const byte laquelle) {</p><p> // LEDs éteintes si non appelées</p><p> digitalWrite(13, LOW);</p><p> digitalWrite(12, LOW);</p><p> digitalWrite(11, LOW);</p><p>}[/CODE]</p><p></p><p style="text-align: center">Voilà a quoi ressemble l'ensemble du programme pour le moment :</p> <p style="text-align: center"></p><p><img src="https://pics.eli0tt.us/devenv_2017-07-18_23-52-18.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p style="text-align: center"></p> <p style="text-align: center"><span style="font-size: 15px"><em>Note: Les "//" sont des commentaires, ils ne servent qu'à expliquer à l'utilisateur ce que fait le code pour simplifier la lecture de celui-ci. Le programme en lui même ne lis pas les commentaires.</em></span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Maintenant nous allons utiliser une <strong>instruction conditionnelle</strong> nommée "<strong>switch case</strong>".</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">En effet, l'argument "laquelle" (Qui signifie: "laquelle de couleur") va nous permettre d'écrire ce code :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p><p><span style="font-size: 15px">[CODE]votreFonction(COULEUR);[/CODE]</span></p><p><span style="font-size: 15px"></span></p><p style="text-align: center"><span style="font-size: 15px">Pour pouvoir allumer la couleur que l'on souhaite.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Commençons donc par appeler l'argument "laquelle" dans notre switch :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p><p><span style="font-size: 15px">[CODE]switch (laquelle) {</span></p><p><span style="font-size: 15px">// case</span></p><p><span style="font-size: 15px">}[/CODE]</span></p><p> <span style="font-size: 15px"></span></p><p style="text-align: center"><span style="font-size: 15px">A l'intérieur du switch, nous allons déterminer les "cases" par les couleurs de chaque LEDs.</span></p> <p style="text-align: center"><span style="font-size: 15px">Donc il y aura 3 cases, une nommée "ROUGE", une autre "BLANC" et la dernière "BLEUE".</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Et pour chaque cases, nous allons taper le code qu'elle devra exécuter.</span></p> <p style="text-align: center"><span style="font-size: 15px">Rappeler vous, au début du tutoriel je vous ai indiqué les PINS de chaque LEDs, par exemple, je sais que la LED Rouge se situe sur la PIN 13.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Je vais donc dire à la "case ROUGE" d'allumer la PIN 13 :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p><p><span style="font-size: 15px">[CODE]case ROUGE: digitalWrite(13, HIGH); break;[/CODE]</span></p><p><span style="font-size: 15px"></span></p><p style="text-align: center"><span style="font-size: 15px">Idem pour les autres LEDs.</span></p> <p style="text-align: center"><span style="font-size: 15px">Notez que pour dire au programme qu'une "case" est fini, il faut mettre "break;" à la fin.</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Voici donc le résultat :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p><p><span style="font-size: 15px">[CODE]switch (laquelle) {</span></p><p><span style="font-size: 15px"> case ROUGE: digitalWrite(13, HIGH); break;</span></p><p><span style="font-size: 15px"> case BLANC: digitalWrite(12, HIGH); break;</span></p><p><span style="font-size: 15px"> case BLEUE: digitalWrite(11, HIGH); break;</span></p><p><span style="font-size: 15px"> }[/CODE]</span></p><p> <span style="font-size: 15px"></span></p><p style="text-align: center"><span style="font-size: 15px">Et voici à quoi ressemble notre code pour le moment :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: left"><span style="font-size: 15px"><img src="https://pics.eli0tt.us/devenv_2017-07-19_00-10-20.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></p> <p style="text-align: left"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Et s'en est fini de notre fonction, nous allons désormais passer à la "loop" pour créer notre chenillard !</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Dans cette partie, je n'ai pas grand chose à vous expliquer, je vous laisse voir le résultat :</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p><p><span style="font-size: 15px">[CODE]void loop() {</span></p><p><span style="font-size: 15px"> startLed(ROUGE);</span></p><p><span style="font-size: 15px"> delay(500);</span></p><p><span style="font-size: 15px"> startLed(BLANC);</span></p><p><span style="font-size: 15px"> delay(500);</span></p><p><span style="font-size: 15px"> startLed(BLEUE);</span></p><p><span style="font-size: 15px"> delay(500);</span></p><p><span style="font-size: 15px">}[/CODE]</span></p><p> <span style="font-size: 15px"></span></p><p><span style="font-size: 15px"><img src="https://pics.eli0tt.us/devenv_2017-07-19_00-13-31.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </span></p><p><span style="font-size: 15px"></span></p><p style="text-align: center"><span style="font-size: 15px">Vous pouvez remarqué que comparé au tutoriel de base, le code est beaucoup plus propre, et court !</span></p> <p style="text-align: center"><span style="font-size: 15px"></span></p> <p style="text-align: center"><span style="font-size: 15px">Vu sous cette forme on peut se dire que faire ce type de code c'est se compliquer la vie pour pas grand chose, mais sur des programmes beaucoup plus imposants, l'utilisations de fonctions est plus que recommandés pour éviter de ce répéter et pour avoir un code plus lisible !</span></p></blockquote><p></p>
[QUOTE="Wims, post: 7163350, member: 447109"] [CENTER]Bonsoir le forum ! ::): Dans ce tutoriel dédié à l'Arduino (C/C++), je vais poffiner ce [URL='https://reality-gaming.fr/threads/arduino-1-chenillard-de-leds.580191/']tutoriel[/URL]. Donc si vous ne l'avez pas suivi, il est fort possible que vous ne comprenez pas ce que je vais faire ici. Ce tutoriel va être assez court, car c'est juste une petite amélioration, donc au niveau des composants c'est exactement pareil. Mais nous allons tout de même refaire le code depuis le début, mais avant je vous rappel le montage : [IMG]https://reality-gaming.fr/proxy.php?image=http%3A%2F%2Fwiki.labaixbidouille.com%2Fimages%2F7%2F73%2F4_LED_Fritzing.png&hash=04306d2f9e040fe0e1fe271c0198b0e6[/IMG] Comme dans l'autre tutoriel, nous allons utiliser seulement 3 Leds, pour ma part : LED Rouge = PIN 13 LED Blanche = PIN 12 LED Bleue = PIN 11 Avant de nous attaquer à la partie "setup", nous aller enumérer les couleurs de chaque LEDs comme ceci : [/CENTER] [CODE]enum { ROUGE, BLANC, BLEUE };[/CODE] [CENTER] Maintenant, nous allons dire les pins sur les quelles sont branchées nos Leds. Nous allons donc mettre tous ça dans la fonction "setup" : [/CENTER] [CODE]void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); pinMode(11, OUTPUT); }[/CODE] [CENTER]Nous en avons déjà terminer pour la partie "setup". Maintenant nous allons créer [B]notre fonction[/B] ! Avant de commencer, à quoi sert une fonction? Une fonction sert à ne pas nous répéter (résumé très bref :nerveux2:). Dans notre chenillard nous allons écrire beaucoup de fois la commande pour allumer et éteindre les LEDS, donc au lieu d'écrire "Allumer Led, attendre 0.5 secondes, éteindre LED" pleins de fois, nous allons l'écrire qu'une fois. Et par la suite nous aurons plus qu'a appeler cette fonction. Pour créer une fonction rien de plus simple ! : [/CENTER] [CODE]void votreFonction(const byte laquelle) { // contenu }[/CODE] [CENTER]Vous noterez le "const byte laquelle" expliquez ici : [SPOILER="const byte laquelle"]Notez la déclaration de l’argument : "[B]const byte laquelle[/B]". Cela signifie que [B]l’argument [/B]"[B]laquelle[/B]" est [B]constant [/B]à l’intérieur de la fonction, sa [B]valeur[/B] n’y sera donc pas [B]modifiable[/B]. [B]"byte" [/B]est le [B]type[/B].[/SPOILER][/CENTER] [CENTER]Pour ma part je vais appeler la fonction "[B]startLed[/B]". En premier lieu, on va [B]éteindre [/B]toutes les LEDs (ce sera l'état par [B]défaut [/B]des LEDs si la fonction n'est pas appelé). [/CENTER] [CODE]void startLed(const byte laquelle) { // LEDs éteintes si non appelées digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, LOW); }[/CODE] [CENTER]Voilà a quoi ressemble l'ensemble du programme pour le moment : [/CENTER] [IMG]https://pics.eli0tt.us/devenv_2017-07-18_23-52-18.png[/IMG] [CENTER] [SIZE=4][I]Note: Les "//" sont des commentaires, ils ne servent qu'à expliquer à l'utilisateur ce que fait le code pour simplifier la lecture de celui-ci. Le programme en lui même ne lis pas les commentaires.[/I] Maintenant nous allons utiliser une [B]instruction conditionnelle[/B] nommée "[B]switch case[/B]". En effet, l'argument "laquelle" (Qui signifie: "laquelle de couleur") va nous permettre d'écrire ce code : [/SIZE][/CENTER] [SIZE=4][CODE]votreFonction(COULEUR);[/CODE] [/SIZE] [CENTER][SIZE=4]Pour pouvoir allumer la couleur que l'on souhaite. Commençons donc par appeler l'argument "laquelle" dans notre switch : [/SIZE][/CENTER] [SIZE=4][CODE]switch (laquelle) { // case }[/CODE] [/SIZE] [CENTER][SIZE=4]A l'intérieur du switch, nous allons déterminer les "cases" par les couleurs de chaque LEDs. Donc il y aura 3 cases, une nommée "ROUGE", une autre "BLANC" et la dernière "BLEUE". Et pour chaque cases, nous allons taper le code qu'elle devra exécuter. Rappeler vous, au début du tutoriel je vous ai indiqué les PINS de chaque LEDs, par exemple, je sais que la LED Rouge se situe sur la PIN 13. Je vais donc dire à la "case ROUGE" d'allumer la PIN 13 : [/SIZE][/CENTER] [SIZE=4][CODE]case ROUGE: digitalWrite(13, HIGH); break;[/CODE] [/SIZE] [CENTER][SIZE=4]Idem pour les autres LEDs. Notez que pour dire au programme qu'une "case" est fini, il faut mettre "break;" à la fin. Voici donc le résultat : [/SIZE][/CENTER] [SIZE=4][CODE]switch (laquelle) { case ROUGE: digitalWrite(13, HIGH); break; case BLANC: digitalWrite(12, HIGH); break; case BLEUE: digitalWrite(11, HIGH); break; }[/CODE] [/SIZE] [CENTER][SIZE=4]Et voici à quoi ressemble notre code pour le moment : [/SIZE][/CENTER] [LEFT][SIZE=4][IMG]https://pics.eli0tt.us/devenv_2017-07-19_00-10-20.png[/IMG] [/SIZE][/LEFT] [CENTER][SIZE=4]Et s'en est fini de notre fonction, nous allons désormais passer à la "loop" pour créer notre chenillard ! Dans cette partie, je n'ai pas grand chose à vous expliquer, je vous laisse voir le résultat : [/SIZE][/CENTER] [SIZE=4][CODE]void loop() { startLed(ROUGE); delay(500); startLed(BLANC); delay(500); startLed(BLEUE); delay(500); }[/CODE] [IMG]https://pics.eli0tt.us/devenv_2017-07-19_00-13-31.png[/IMG] [/SIZE] [CENTER][SIZE=4]Vous pouvez remarqué que comparé au tutoriel de base, le code est beaucoup plus propre, et court ! Vu sous cette forme on peut se dire que faire ce type de code c'est se compliquer la vie pour pas grand chose, mais sur des programmes beaucoup plus imposants, l'utilisations de fonctions est plus que recommandés pour éviter de ce répéter et pour avoir un code plus lisible ![/SIZE][/CENTER] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
Arduino | Chenillard de Leds - Fonctions
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut