Ligne 1 : |
Ligne 1 : |
| {{ARDX-NAV}} | | {{ARDX-NAV}} |
| | | |
− | {{traduction}}
| + | == Ce que nous faisons == |
− | | |
− | == Ce que faisons nous == | |
| | | |
| '''.: 8 Leds de plus :.''' | | '''.: 8 Leds de plus :.''' |
Ligne 54 : |
Ligne 52 : |
| |label=LED (ou DEL) | | |label=LED (ou DEL) |
| |label2=x8 | | |label2=x8 |
− | |img=ARDX-LED.png | + | |img=ARDX-LED-red.png |
| |pl=66 | | |pl=66 |
| }} | | }} |
Ligne 72 : |
Ligne 70 : |
| | | |
| {{ARDX-composant-end}} | | {{ARDX-composant-end}} |
| + | Tous ces éléments sont disponibles dans [http://shop.mchobby.be/product.php?id_product=11 le Kit Ardx proposé sur shop.mchobby.be]. |
| | | |
| === Schéma === | | === Schéma === |
Ligne 80 : |
Ligne 79 : |
| | | |
| == Le code == | | == Le code == |
− | xxx
| + | Pas besoin de taper tout le code, vous pouvez le télécharger depuis [http://ardx.org/CODE05 ardx.org/CODE05] puis faire un copier/coller dans un croquis vide. |
| + | |
| + | <nowiki>// Définition des broches |
| + | // Le 74HC595 utilise un protocole appelé SPI. |
| + | // Ce protocole utilise 3 broches |
| + | int data = 2; |
| + | int clock = 3; |
| + | int latch = 4; |
| + | |
| + | void setup() //Exécuté une fois seulement |
| + | { |
| + | pinMode(data, OUTPUT); |
| + | pinMode(clock, OUTPUT); |
| + | pinMode(latch, OUTPUT); } |
| + | |
| + | |
| + | void loop() // s'exécute encore et encore |
| + | { |
| + | int delayTime = 100; //temps entre deux mise-à-jour des LEDs |
| + | |
| + | for(int i = 0; i < 256; i++){ |
| + | updateLEDs(i); |
| + | delay(delayTime); |
| + | } |
| + | } |
| + | |
| + | /* |
| + | * updateLEDs() - Envoi l'état des LEDs. Envoi |
| + | * la séquence de valeurs au 74HC595 |
| + | */ |
| + | void updateLEDs(int value){ |
| + | //Met le latch à LOW sur la puce |
| + | digitalWrite(latch, LOW); |
| | | |
− | <nowiki>/* code */</nowiki>
| + | //envoi les 8 bits au registre à décalage |
| + | shiftOut(data, clock, MSBFIRST, value); |
| + | |
| + | //Met le latch à HIGH pour afficher les données |
| + | digitalWrite(latch, HIGH); |
| + | } |
| + | |
| + | ---------- Plus de code en ligne ----------</nowiki> |
| | | |
| == Cela ne fonctionne pas? == | | == Cela ne fonctionne pas? == |
| Voici 3 choses à essayer. | | Voici 3 choses à essayer. |
− | === xxx 1 === | + | === La LED témoin d'Arduino s'éteint ? === |
− | yyyy
| + | Si la LED de mise sous tension de votre Arduino s'éteint, cela signifie que le circuit intégré est monté à l'envers. Cela arrive parfois lors des premiers montages. |
| + | |
| + | Rien ne sera endommagé si vous réagissez vite pour corriger le problème. |
| + | |
| + | === Cela ne fonctionne pas? === |
| + | C'est toujours dommage de faire face à un essai raté mais il s'agit probablement de quelque chose d'aussi simple qu'une malheureuse inversion de fils. |
| | | |
− | === xxx 2 === | + | === Grrrr! Ca ne marche pas! === |
− | yyyy
| + | Envoyez nous un e-mail. Ce circuit est à la fois simple et complexe. |
| | | |
− | === xxx 3 ===
| + | Nous avons besoin de connaître vos problèmes pour les adresser lors d'une future édition. |
− | yyyy
| + | |
| + | help@oomlout.com (''anglais'') ou via le SAV de MCHobby.be |
| | | |
| == Faire encore mieux == | | == Faire encore mieux == |
− | === zzz 1 === | + | === Le faire à la dure! === |
− | zzzz
| + | Un Arduino est capable de faire des choses assez complexes très facilement, envoyer des données bit par bit fait partie de ses possibilités. |
| + | |
| + | Cependant, une des particularités intéressantes d'Arduino est que vous pouvez implémenter vos projets de façon simple ou compliquée en fonction de vos souhaits. |
| + | |
| + | Essayons donc un exemple dans cette optique. Dans la fonction loop, remplacez la ligne de code {{fname|updateLEDs(i);}} par {{fname|updateLEDsLong(i);}} |
| + | |
| + | Chargez le programme et notez que rien n'a changé. Si vous regardez au code, vous pouvez voir qu'il communique un bit à la fois au circuit intégré ([http://ardx.org/SPI ardx.org/SPI] pour plus de détails) (''en anglais'') |
| + | |
| + | === Contrôler les LEDs individuellement === |
| + | Il est temps de contrôler les LEDs d'une façon identique à celle employée dans le montage CIRC02. |
| + | |
| + | Les états des 8 LEDs sont alors stockés dans un octet (une valeur en 8 bits). Pour plus de détails sur son fonctionnement, voyez [http://ardx.org/BINA ardx.org/BINA]. |
| + | |
| + | Arduino est très bon pour manipuler les bits et il dispose d'un ensemble complet d'opérateurs bien utiles pour ces tâches. |
| + | |
| + | Pour plus de détails sur les mathématiques binaires ( http://ardx.org/BITW ). |
| + | |
| + | {{underline|Notre implémentation:}} |
| + | |
| + | Remplacer le code de la fonction {{fname|loop()}} par |
| + | |
| + | <nowiki>int delayTime = 100; //nbre de ms à attendre |
| + | // entre deux mise-à-jour des LEDs |
| + | for(int i = 0; i < 8; i++){ |
| + | changeLED(i,ON); |
| + | delay(delayTime); |
| + | } |
| + | |
| + | for(int i = 0; i < 8; i++){ |
| + | changeLED(i,OFF); |
| + | delay(delayTime); |
| + | }</nowiki> |
| + | |
| + | Chargez le code et les LEDs s'allument les unes après les autres puis s'éteignent de façon similaire. |
| + | |
| + | Jetez un oeil sur le code et Wikipedia pour comprendre comment cela fonctionne, ou envoyez-nous un e-mail si vous avez des questions (''anglais''). |
| + | |
| + | === Plus d'animations === |
| + | Maintenant les choses deviennent plus intéressantes. Si vous regardez au code du circuit CIRC02 (Jeu à 8 LEDs), vous pouvez voir que nous changeons les LEDs en utilisant {{fname|digitalWrite(led, state)}} qui a le même format que la routine {{fname|changeLED(led, state)}} que nous avons écrit. |
| + | |
| + | Vous pouvez utiliser l'animation écrite lors de CIRC02 en copiant le code dans ce sketch et en changeant tous les {{fname|digitalWrite()}} par {{fname|changeLED()}} . |
| + | |
| + | Puissant non? |
| + | |
| + | <small>(Vous aurez aussi besoin de changer quelques autres petites choses, consultez les erreurs de compilation pour savoir ce qu'il faut adapter).</small> |
| | | |
| == Plus, plus et encore plus == | | == Plus, plus et encore plus == |
− | Plus d'information, où poser vos autres questions: | + | Plus d'information, où poser vos autres questions: [http://ardx.org/CIRC05 ardx.org/CIRC05] (''anglais'') |
− | | |
− | [http://ardx.org/CIRC13 ardx.org/CIRC13] (''anglais'') | |
| | | |
| == Internet == | | == Internet == |
Ligne 109 : |
Ligne 195 : |
| | | |
| === .: Vidéo :. === | | === .: Vidéo :. === |
− | La vidéo du montage est disponible sur [http://ardx.org/VIDE13 ardx.org/VIDE13] (''anglais'') | + | La vidéo du montage est disponible sur [http://ardx.org/VIDE05 ardx.org/VIDE05] (''anglais'') |
| | | |
| {{ARDX-TRAILER}} | | {{ARDX-TRAILER}} |