Différences entre versions de « ARDX-Montages-CIRC05 »
Ligne 80 : | Ligne 80 : | ||
== Le code == | == Le code == | ||
− | + | 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>/* | + | <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); | ||
+ | |||
+ | //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? == |
Version du 12 septembre 2015 à 20:11
Ce que faisons nous
.: 8 Leds de plus :.
.: Le registre à décalage 74HC595 :.'
C'est le moment de jouer avec les puces, ou circuits intégrés (CI, IC en anglais) comme ils sont appelés.
Le boitier des circuits intégrés peut être fort trompeur. Par exemple, la puce sur la carte Arduino (un micro-contrôleur) et la puce que nous utilisons pour ce montage (le registre à décalage) se ressemblent beaucoup mais ils sont pourtant assez différents.
Le prix de la puce ATMega utilisée sur la carte Arduino coûte quelques Euro tandis que le 74HC595 ne coûte que quelques dizaines de cents. C'est un bon CI d'introduction, et une fois que vous vous sentirez à l'aise avec ce matériel et sa fiche technique (disponible en ligne sur ardx.org/74HC595) le monde des circuits intégrés vous appartiendra.
Le registre à décalage (aussi appelé convertisseur série vers parallèle), vous procurera 8 sorties supplémentaires (pour contrôler des LEDs et autres) en utilisant seulement 3 broches d'Arduino.
Ils peuvent aussi être raccordés ensembles pour fournir un nombre illimité de sorties en utilisant les mêmes quatre broches. Pour l'utiliser, vous poussez les données (clock in) pour ensuite les bloquer/mémoriser dedans ( latch ).
Pour y arriver, vous placez la broche data à HIGH ou LOW et vous envoyez une impulsion sur la broche clock jusqu'à avoir envoyé 8 bits de données.
Ensuite, vous envoyez une impulsions sur la broche latch et les 8 bits sont transférés vers les broches du registre à décalage.
Cela semble compliqué mais devient réellement simple une fois que vous l'avez compris (pour une explication plus détaillée du fonctionnement du registre à décalage, visitez ardx.org/SHIF (anglais)
Le montage
Le matériel nécessaire
2 Pin header
x4
LED (ou DEL)
x8
Résistance de 560 Ohms (vert-bleu-brun)
x8
Registre à décalage 74HC595
x1
Schéma
Montage
Le code
Pas besoin de taper tout le code, vous pouvez le télécharger depuis ardx.org/CODE05 puis faire un copier/coller dans un croquis vide.
// 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); //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 ----------
Cela ne fonctionne pas?
Voici 3 choses à essayer.
xxx 1
yyyy
xxx 2
yyyy
xxx 3
yyyy
Faire encore mieux
zzz 1
zzzz
Plus, plus et encore plus
Plus d'information, où poser vos autres questions: ardx.org/CIRC05 (anglais)
Internet
.:téléchargement:.
LA fiche de montage est disponible sur ardx.org/BBLS05
.: Vidéo :.
La vidéo du montage est disponible sur ardx.org/VIDE05 (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/