SN74HC595N Registres À Décalage Compteur Tri-State 8-Bit
7.00 د.م.
94 en stock
Description
Tutoriel :Utilisation de registre à décalage 74HC595 avec Arduino
Qui est-il ? C’est un registre à décalage de 8 bits.
A quoi sert-il ? il sert à convertir une information série en parallèle. Mais on l’utilise aussi pour économiser le nombre de broche utilisée en sortie.
C’est d’ailleurs pour ce dernier cas que je vais présenter la chose.
En effet, au dessus de 3 sorties à piloter, il peut être intéressant d’utiliser ce composant afin d’économiser des broches sur votre carte de commande. Pourquoi 3, car c’est le nombre minimum de broche nécessaire au fonctionnement du composant.
Comment ça fonctione ? Afin de mieux comprendre le fonctionnment j’ai fait ces quelques images ci-dessous :
Spécification:
Texas Instruments | ||
Registres à décalage compteur | ||
RoHS: | Détails | |
Serial to Serial/Parallel | ||
1 | ||
8 bit | ||
PDIP-16 | ||
74HC | ||
CMOS | ||
5 / 10 | ||
3-State | ||
200 ns, 40 ns, 34 ns | ||
6 V | ||
– 40 C | ||
+ 85 C | ||
Tube | ||
Fonction: | Tri-State 8-Bit | |
Plage de températures de fonctionnement: | – 40 C to + 85 C | |
Série: | SN74HC595 | |
Largeur: | 6.35 mm | |
Marque: | Texas Instruments | |
Style de montage: | Through Hole | |
Nombre de lignes de sortie: | 10 | |
Tension d’alimentation de fonctionnement: | 2 V to 6 V | |
Type de produit: | Counter Shift Registers |
Fonctionnement:
Comme on peut le voir, il y a 2 grandes phases :
La première on place les données que l’on veut
La deuxième est la validation des données
Maintenant passons à la pratique
Dans cet exemple, le but sera d’allumer des LED car c’est le plus simple électriquement. En effet, on peut également piloter des moteurs, des relais, des électrovannes, … mais cela nécessite une interface de puissance, ce qui n’est pas le sujet de ce tutoriel.
comme on peut le voir le schéma est très simple :
Nous avons d’une part le microcontroleur qui alimente et pilote le 74HC595
puis le 74HC595 qui fait le lien avec les LED
et enfin les LED
Il est tant, maintenant, de faire fonctionner tout ça.
Code
//constantes pour les broches de commande du 74HC595 int DS_pin = 8; // broche de donnée int STCP_pin = 9; // broche de validation de la donnée int SHCP_pin = 10;// broche de validation compléte (latch) boolean registre[8]; //c'est un tableau de 8 bit correspondant aux sorties du 74HC595 à l'état voulu // pour se programme j'ai fait le choix du tableau car cela reste simple pour un tutoriel void setup() { //configure les broches en sortie pinMode(DS_pin,OUTPUT); pinMode(STCP_pin,OUTPUT); pinMode(SHCP_pin,OUTPUT); } //Cette fonction "écrit" le contenu du tableau dans le registre //pour chaque bit, on met la brohe de validation du bit à 0, on place la broche de donnée à l'état contenu dans le tableau et ensuite on valide le bit //à la fin on valide le tout void EcrireRegistre() { digitalWrite(STCP_pin, LOW); for (int i = 7; i>=0; i--) { digitalWrite(SHCP_pin, LOW); digitalWrite(DS_pin, registre[i] ); digitalWrite(SHCP_pin, HIGH); } digitalWrite(STCP_pin, HIGH); } //Dans la boucle du programme plusieurs séquences différentes sont jouées void loop() { //Allume successivement les sorties for(int i = 0; i<8; i++) { registre[i] = HIGH; delay(300); EcrireRegistre(); } //éteint successivement les sorties for(int i = 7; i>=0; i--) { registre[i] = LOW; delay(300); EcrireRegistre(); } //séquence qui allume une LED sur 2 alternativement bool b = 0; for(int i = 0; i<4; i++) { for(int j = 0; j<8; j++) { registre[j] = j%2 xor b; } EcrireRegistre(); b = not b; delay(300); } //remise à zéro de toutes les LED for(int j = 0; j<8; j++) { registre[j] = 0; } EcrireRegistre(); }
Avis
Il n’y a pas encore d’avis.