ARDX-Montages-CIRC02
Ce que nous faisons
Jusque là, nous avons fait clignoter une LED, il est maintenant temps d'augmenter les enjeux. Connectons donc huit LEDs. Nous allons aussi avoir l'opportunité de tirer un maximum d'Arduino en créant différentes séquences lumineuses. Ce circuit est aussi un bon point de départ pour commencer à faire vos expériences en écrivant vos propres programmes et pour essayer de comprendre comment fonctionne Arduino. En même temps que contrôler les LEDs, nous allons aussi nous intéresser à quelques méthodes de programmation rudimentaires permettant de garder des programmes petites tailles. La boucle for() est utilisée lorsque qu'il est nécessaire d'exécuter un morceau de code plusieurs fois. Les tableaux arrays[] sont utilisés pour gérer les variables plus facilement (c'est un groupe de variables).
Le montage
Le matériel nécessaire
2 Pin header
x4
Résistance de 560 Ohms (vert-bleu-brun)
x8
LED verte (ou DEL)
x8
Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.
Schéma
Montage
Le code
Pas besoin de tout taper, vous pouvez télécharger le code depuis ardx.org/CODE02.
Un fantastique exemple du site arduino.cc
// Variables pour les pins des LEDs int ledPins[] = {2,3,4,5,6,7,8,9}; // Un tableau pour mémoriser chacune des pins // auxquelles une LED est connectée // Ex : La LED N° 0 est connectée à la pin 2 void setup() { for(int i = 0; i < 8; i++){ //Cette boucle va se répéter 8 fois pinMode(ledPins[i],OUTPUT); //nous l'utilisons pour mettre les pins des //LED en mode output } } void loop() // s'exécute encore et encore { //Va allumer chaque LED une après l'autre //et ensuite éteind chacune d'entre elles oneAfterAnotherNoLoop(); //oneAfterAnotherLoop(); //Fait le même que onAfterAnotherNoLoop //mais avec moins d'instructions //oneOnAtATime(); //inAndOut(); } /* * oneAfterAnotherNoLoop() - allume une LED puis * attend (delayTime) puis allume la LED suivante. * puis éteint une à une toutes les LEDs */ void oneAfterAnotherNoLoop(){ int delayTime = 100; //temps de pause entre 2 LED (en millisecondes) digitalWrite(ledPins[0], HIGH); //allume LED #0 (connectée à la pin 2) //attend delayTime millisecondes delay(delayTime); ... ... digitalWrite(ledPins[7], HIGH); //allume LED #7 (connectée à la pin 9) //attend delayTime millisecondes delay(delayTime); //éteind chacune des LEDs digitalWrite(ledPins[7], LOW); //éteind LED #7 //attend delayTime millisecondes delay(delayTime); ... ---plus de code dans la version téléchargeable---
Cela ne fonctionne pas?
Voici 3 choses à essayer.
Certaines LEDs ne s'allument pas?
Il est facile d'insérer une LED dans le mauvais sens. Vérifiez les LEDs qui ne fonctionnent pas et assurez vous qu'elles sont connectées correctement.
La séquence affichée est incorrecte ?
Avec 8 fils, il est facile d'en intervertir deux.
Vérifiez que la première LED est connectée sur la pin 2 (et que les raccordements se suivent correctement)
Tout recommencer
Il est très facile de faire un mauvais raccordement sans s'en rendre compte.
Tout démonter et recommencer le montage à nouveau est souvent plus facile que d'essayer de trouver la cause du problème.
Faire encore mieux
Modifier la fonction loop()
La fonction loop() contient 4 lignes.
Les trois dernières commencent par '//'. Cela signifie que les lignes sont traitées comme des commentaires (non exécutées).
Pour que le programme utilise la boucle for, modifier les code de loop() comme suit :
//oneAfterAnotherNoLoop(); oneAfterAnotherLoop(); //oneOnAtATime(); //inAndOut();
Charger le code et noter que rien n'a changé. Jetez un oeil au code des deux fonctions, chacune d'elles fait la même chose, mais utilise une approche différente (astuce: la seconde fonction utilise une boucle for ).
Animations supplémentaires
Fatigué par cette animation ?
Alors essayez les deux autres exemples d'animations. Retirer le commentaire de leur ligne respective et charger le programme sur la carte Arduino pour profiter de ces nouvelles animations lumineuses.
(effacer les doubles slashs '//' au début de la 3ième et 4ieme ligne).
Testez vos propres animations
Utilisez le code fourni et commencez à modifier les choses. Le principal, c'est d'allumer une LED en utilisant digitalWrite(pinNumber, HIGH); et ensuite de l'éteindre en utilisant digitalWrite(pinNumber,LOW); .
Modifiez le code, pas besoin de faire vraiment attention, de toute façon, vous n'endommagerez rien.
Plus, plus et encore plus
Plus d'information, où poser vos autres questions:
ardx.org/CIRC02 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS02
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE02 (anglais)
Tutoriel/Manuel traduit par Meurisse D. pour MCHobby.be licence Creative Commons BY-SA.
Crédit de traduction
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant :
« Traduction par MCHobby (shop.MCHobby.be) - Vente de kit et composants » et ce quelque soit le média utilisé.
Utilisation commerciale
L'utilisation commercial de cette traduction (y compris sur site produisant des revenus par l'intermédiaire de publicité), même partielle, est soumise à redevance (license fee).
Le présent manuel a été traduit et autorisé à la vente avec l'aimable autorisation conjointe de Oomlout (www.oomlout.com) et d'AdaFruit (www.adafruit.com).
Produit sous licence Creative Commons BY-SA License and available for download: ardx.org/src/