Modifications

Sauter à la navigation Sauter à la recherche
4 335 octets ajoutés ,  20 septembre 2015 à 10:55
aucun résumé de modification
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}}
29 836

modifications

Menu de navigation