Salut à tous.
1) projet.
Comme j'aime bien les leds, mon choix va se faire sur un afficheur à sept segments.
D'après ce que j'ai vu sur le net, il existe plusieurs solutions pour gérer ce ou ces digit(s).
Le problème est le nombre de fils à gérer qui, dans le cas d'un digit fous quatre est au nombre de 34 !
Pourquoi 34 ? Sept segments + le point décimal = 8 fils x 4 digits = 32 fils
Auquel on ajoute les deux points et le symbole des degrés (°) qu'ils ont renommé en apostrophe (???), va savoir pourquoi.
Sinon, on peut gérer un afficheur à quatre digits.
Le nombre de fils tombe à 16, voir moins si l'on combine certains d'entre eux.
2) choix de l'afficheur.
J'ai le choix entre un afficheur à 1 digit ou un afficheur à 4 digits.
Ma préférence va au 4 digits. Mais voilà, il y a en a de deux sortes :
--> à anode commune.
--> à cathode commune.
Sauf que chez GoTronic, je ne trouve que des afficheurs à anodes communes.
--> https://www.gotronic.fr/art-afficheu...gits-22872.htm
--> https://www.gotronic.fr/art-afficheu...gits-20160.htm
--> https://www.gotronic.fr/art-afficheu...gits-20161.htm
--> https://www.gotronic.fr/art-afficheu...gits-20371.htm
--> https://www.gotronic.fr/art-afficheu...gits-20371.htm
Ou bien prendre un simple digit. Dans ce cas, mon choix se fera sur un 13mm :
--> Afficheur rouge à leds à anode commune.
--> Afficheur vert à leds à cathode commune.
Pour l'instant, je ne sais pas quoi choisir car cela va dépendre de la finalité du montage.
3) Contraintes.
Comme chaque segment ou point décimal ou deux points ou encore le symbole des degrés représente une led, il faut obligatoirement une résistance.
D'après la documentation, au maximum, chaque led de l'afficheur sept segments admet 20mA.
Une résistance de 1k ohms devrait produire pour 3.3Vcc, une intensité de : 3.3 / 1000 = 3.3mA.
Cette intensité est acceptable. La luminosité sera un peu plus faible, mais parfaitement lisible.
Si j'allume la totalité des leds, qui sont au nombre de 34, j'aurai une intensité de : 34 * 3.3mA = 112.2mA.
Dans ce cas, je crame les GPIO de ma raspberry.
D'après ce que j'ai pu voir sur le net, dans le cas de l'arduino, il n'y a aucun source d'alimentation extérieure.
Il se trouve qu'une broche peut supporter au maximum 40mA et dans la totalité des broches, un maximum de 200mA.
Avec une résistance de 1k ohms sur chaque led, il n'y a aucun problème.
Avec la raspberry, un GPIO admet au maximum 16mA, et au total, un maximum de 50mA.
Autrement dit, ce qui est valable pour l'arduino, ne l'est pas pour la raspberry.
Dans la réalité, toutes les leds de l'afficheur à sept segments ne sont pas allumées.
Mais de toute façon, la raspberry ne va pas supporter cette intensité maximale.
Pour résoudre ce problème, je dois utiliser une source d'alimentation extérieure.
Ce qui implique d'utiliser des transistors pour amplifier le signal, entre le GPIO et la led au travers des résistances.
Remarque : dans mon premier montage sur breadboard, j'ai 18 leds qui sont gérées par ma raspberry.
Sauf que j'allume que deux leds à la fois, ce qui donne un maximum de 2x3.3mA = 6.6mA.
Dans ce cas là, ma raspberry ne craint rien car je respecte le maximum autorisé.
4) Comment gérer tout ce paquet de fils ?
Il existe des composants pouvant réaliser cela, comme le :
a) Décodeur BCD/7 segments.
--> https://www.gotronic.fr/art-cd4511-319.htm
L'inconvénient est qu'il ne sait gérer que sept segments à la fois.
Ce qui implique d'en mettre quatre, un par digit.
Ca, c'est dans le cas où nous avons des digits indépendants.
Dans le cas d'un afficheur à 4 digits, le nombre de fils est au maximum de 16.
Cette solution semble convenir pour 1 digit, mais pas pour quatre.
b) registre à décalage à huit bits : 74HC595.
Si j'utilise un afficheur à 4 digits, il me faut deux registres à décalage de huit bits. Pourquoi ?
Il y a sept segments + le point décimal, soit huit fils.
Comme il y a quatre digits, il faut ajouter quatre fils.
Et pour terminer, les deux points et le symbole des degrés, qui comptent pour quatre fils.
--> 2 fil pour les deux points et l'anode commune.
--> 2 fil pour le symbole des degrés et l'anode commune.
Soit au total seize fils, peut-être un peu moins. Je n'ai pas encore trop réfléchi sur le montage électronique.
Je ne sais pas trop pourquoi dans ces deux derniers cas, on nomme cela anode commune alors qu'il n'y a rien de commun.
Si l'anode était commune, il y aurait qu'un seule fil ou si vous préférez un seule sortie, or il y en a plusieurs.
Sur un breadboard, je ne sais pas trop si j'aurai assez de place entre :
--> un afficheur de 4 digits à sept segments.
--> des résistances de 1k ohms pour chaque led.
--> deux registres à décalages de huit bits : 74HC595.
--> un paquet de fils.
Comme je ne trouve que des afficheurs 4 digits à anode commune, je suis obligé de prendre quatre transistors BC547 NPN.
(NPN, pour faire en sorte qu'un signal UP de la raspberry produise un DOWN vers l'anode commune de la digit et vice versa).
Et sur chaque GPIO vers le transistor (donc sur la base), mettre une résistance disons aussi de 1k ohms.
--> quatre transistors BC547 NPN
--> quatre résistances de 1k ohms.
Il reste le condensateur que je ne vois pas sur tous les schémas de montage.
J'aime bien cette solution même si je la trouve un peu compliqué à mettre en oeuvre (je parle du montage électronique, pas du programme).
Je peux simplifier le montage si j'utilise un seul digit, en cathode commune, qui implique aucun transistor.
Par ce montage, je fais deux tests en un seul :
--> test du registre à décalage huit bits, voire même sur seize bits avec deux registres montés en série.
--> l'afficheur à 4 digits de 7 segments.
c) le Max7219.
Je peux trouver chez cdiscount, soit :
--> le max7219,
--> le module de deux afficheurs 4 digits avec le max7219,
pour un prix raisonnable. Ce max7219 se pilote par le mode SPI.
--> http://www.learningaboutelectronics....er-circuit.php
Je pense que le module de deux afficheurs 4 digits est encore la meilleure solution pour faire l'usage d'un max7219.
5) Comment faire le bon choix du montage électronique sachant que le test se fera avec la raspberry Pi ?
Mes contraintes sont celle de la Raspberry Pi, entre autre l'intensité maximale.
Je ne comprends pas pourquoi sur certains montages, il n'y a pas de résistances ?
Je suppose que je vais devoir utiliser une source d'alimentation externe.
@+
Partager