ARDX-Montages-CIRC02

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

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

ARDX-circ-sheet.png

Fiche de montage CIRC-02
x1

ARDX-pin-header.png

2 Pin header
x4

ARDX-R560.png

Résistance de 560 Ohms (vert-bleu-brun)
x8

ARDX-LED-Verte.png

LED verte (ou DEL)
x8

 

Tous ces éléments sont disponibles dans le Kit Ardx proposé sur shop.mchobby.be.

Schéma

Circ02-schema.png

Montage

Cir02-montage.png

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/