was successfully added to your cart.

[Arduino]Découvrir les 74HC595

Illustration tutoriel utilisation du 74HC595 avec Arduino

Bonjour à tous,

Cela fait pas mal de temps que mon dernier tutoriel est sorti et je vous en propose aujourd’hui un nouveau qui, je l’espère, saura vous intéresser. Vous remarquerez dans le titre la présence de [Arduino], en effet, je traiterai des CI 74HC595 lors de différents tutos avec le bus pirate, l’Arduino et le Raspberry Pi.

Aujourd’hui, nous allons aborder ensemble l’utilisation des Circuits intégrés (J’écrirai CI tout au long de l’article) de type 74HC595 avec comme seul contrôleur, l’Arduino. Nous découperons notre article selon le plan suivant:

1- Que sont les Circuits de type 74HC595 et quelles sont leurs possibles utilisations

2- Principe théorique du fonctionnement des CI 74HC595

3- Mise en pratique et application des connaissances

 

A la fin de ce tutoriel, vous devriez être en mesure de comprendre le fonctionnement de ces circuits et de les utiliser. Avant toutes choses, je souhaiterai aborder la liste du matériel nécessaire:

– 1 pile 6V ou un générateur 5V

– 7 Leds de couleurs quelconques

– 7 résistances de 320 ohms

– 1 Arduino

Une plaque de câblage, quelques straps (fils) et de la patience, c’est le « kit » de l’électronicien non ?

Allez, on y va, c’est parti pour la définition et présentation des circuits intégrés 74HC595.

 

1-   Que sont les circuits de type 74HC595 et quelles sont leurs possibles utilisations

 

Les Circuits Intégrés de type 74HC595 sont appelés « registres à décalage ». Derrière ce nom un peu barbare, se cache en fait l’un des circuits les plus intéressants, notamment pour nous, arduinistes que nous sommes. En effet, il vous est sans doute arrivé, tout comme moi, de manquer de broches sur votre Arduino pour réaliser tel ou tel circuit. Acheter l’Arduino MEGA n’est pas forcément la bonne solution à ce problème, vous allez comprendre pourquoi.

Les 74HC595 permettent, grâce à 3 entrées de contrôler 7 sorties différentes. Enfin… 7, c’est le minimum. En réalité, on peut contrôler 8, 16, 32, 64, 128 etc… Bref, une (presque) infinité de sorties. L’un des projets dans lesquels ces circuits sont les plus utiles est sans doute le cube de led. En effet, il suffit d’un rapide calcul : Un cube de leds de 4 x 4 x 4 leds nécessitera 64 sorties. En réfléchissant un peu, on peut abaisser ce nombre à 32. C’est là que les registres à décalages vont nous aider car, on pourrait supposer en utiliser 4 câblés 2 à 2, c’est-à-dire utilisant un total de 6 sorties de l’Arduino. On passe ainsi de 64 sorties théoriques à utiliser, à 6 ce qui permet d’ajouter des capteurs, etc…

Les utilisations sont donc diverses mais ces Circuits Intégrés restent essentiels dans le domaine de l’électronique sur des platines comme l’Arduino. Sachez pour votre information que les 74HC595 ne permettent pas de « multiplier » le nombre d’entrées disponibles sur l’Arduino, ce sont d’autres circuits qui permettent cela.

 

 2-  Fonctionnement des 74HC595

 

Les Circuits Intégrés de type 74HC595 portent assez bien leur nom de « registre à décalage ». En effet, l’utilisation de ces circuits repose en fait sur l’enregistrement d’un variable puis le décalage d’un cran ensuite. Pour expliquer cela, je vous propose une petite vidéo explicative réalisée grâce à un logiciel de CAO Electronique.

 

 

Ici, j’ai utilisé des boutons pour contrôler le 74HC595 mais nous allons apprendre ensemble à contrôler ces mêmes circuits grâce à l’Arduino.

3-  Mise en pratique et application des connaissances

 

Pour la mise en pratique, avec ce que nous avons appris précédemment, rien de bien compliqué. Voici les branchements à effectuer :

74HC959_right_2

Image tiré du blog bildr.org

 

Et maintenant, le programme commenté en français :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
int SER_Pin = 8;   //pin 14 sur le 75HC595
int RCLK_Pin = 9;  //pin 12 sur le 75HC595
int SRCLK_Pin = 10; //pin 11 sur le 75HC595
//Combien combinez-vous de 74HC595 ? Ne pas toucher si 1 seul
#define number_of_74hc595s 1
//Ne pas toucher
#define numOfRegisterPins number_of_74hc595s * 8
boolean registers[numOfRegisterPins];
void setup(){
pinMode(SER_Pin, OUTPUT);
pinMode(RCLK_Pin, OUTPUT);
pinMode(SRCLK_Pin, OUTPUT);
//Reset tous les pins du 74HC595
clearRegisters();
writeRegisters();
}
//Place tous les pins du 74HC595 à l'état "OFF"
void clearRegisters(){
for(int i = numOfRegisterPins - 1; i >=  0; i--){
registers[i] = LOW;
}
}
//Enregistrer et afficher les valeurs dans le registre
//Executer uniquement APRES que toutes les valeurs aient été programmées
void writeRegisters(){
digitalWrite(RCLK_Pin, LOW);
for(int i = numOfRegisterPins - 1; i >=  0; i--){
digitalWrite(SRCLK_Pin, LOW);
int val = registers[i];
digitalWrite(SER_Pin, val);
digitalWrite(SRCLK_Pin, HIGH);
}
digitalWrite(RCLK_Pin, HIGH);
}
//Place un pin du 74HC595 à l'état HAUT ou BAS
void setRegisterPin(int index, int value){
registers[index] = value;
}
void loop(){
setRegisterPin(2, HIGH);
setRegisterPin(3, HIGH);
setRegisterPin(4, LOW);
setRegisterPin(5, HIGH);
setRegisterPin(7, HIGH);
writeRegisters();  //Doit être exécuté pour appliquer les changements
//Executer seulement une fois que toutes les valeurs ont été enregistrées comme vous le souhaitiez.
}

 

Vous pouvez modifier ce programme pour l’adapter à votre utilisation.

 

Bonne semaine à tous et à bientôt pour un prochain tutoriel sur Simple-Duino.

 

 

 

 

 

2 Comments

  • abdlbaset dit :

    comment programmer un afficheur 7 segmans sur une carte pic 16f

  • […] " In general, most of these people have seen some of my projects and want to be able to build similar things. Unfortunately, I have never been able to point them to a good site that really takes the reader through a solid introduction to microcontrollers and basic electronics. I designed this tutorial course to accompany the Arduino starter pack sold at the Adafruit webshop. The pack contains all the components you need (minus any tools) for the lessons Follow these lessons for happiness and prosperity. ~ Jérôme Abel – Artiste, développeur, bidouilleur / Arduino. Découvrir les 74HC595 – Simple-Duino. […]

Laisser un commentaire