J'ai un 7-segment LED Cathode commune et un composant "Registre à décalage" SN74HC595N
Note : dans le lien (sweeting.org/...) le registre à décalage utilisé est SN74HC595 sans N au bout ...
J'ai vu dans le script qu'il fallait inverser LOW et HIGH
dans cette partie pour mon 7-Segment LED cathode commune
void shiftIt (byte data)
{
// Set latchPin [b]LOW [/b]while clocking these 8 bits in to the register
digitalWrite(latchPin, [b]LOW[/b]);
for (int k=0; k <= 7; k++)
{
// clockPin [b]LOW [/b]prior to sending a bit
digitalWrite(clockPin, [b]LOW[/b]);
// Note that in our case, we need to set pinState to 0 ([b]LOW[/b]) for
// “On” as the 74HC595 is sinking current when using a common
// anode display. If you want to use a common cathode display then
// switch this around.
if ( data & (1 << k) )
{
digitalWrite(dataPin, [b]LOW[/b]); // turn “On”
}
else
{
digitalWrite(dataPin, [b]HIGH[/b]); // turn “Off”
}
// and clock the bit in
digitalWrite(clockPin, [b]HIGH[/b]);
}
//stop shifting out data
digitalWrite(clockPin, [b]LOW[/b]);
//set latchPin to high to lock and send data
digitalWrite(latchPin, [b]HIGH[/b]);
// put delay here if you want to see the multiplexing in action!
//delay(100);
}
Le soucis c'est que rien ne s'allume ... bref aucune réaction
Pouvez vous m'indiquer déjà si remplacer tous les LOW par HIGH et vice-versa
est déjà OK ?
Est-ce que l'utilisation du composant SN74HC595N en place de SN74HC595 ne pose pas de soucis ?
Me suggérer, svp, des tests simples à effectuer pour vérifier si le SN74HC595N est opérationnel
Me suggérer, svp, des tests simples pour vérifier le branchement général
Ou m'orienter vers un autre tutoriel si celui-ci vous semble confus
Merci à tous pour vos conseils ou suggestions et rappelez vous que je ne suis pas une star en électronique ...
Pour les branchements je vérifie et revérifie et rien !? Je vais tester encore un peu puis refaire entièrement le circuit sinon je verrai un autre tuto ...
oui tu inverses low et high pour les datas (mais même si c'est inversé tu devrais voir des segments allumés)
sur ton schéma le 74HC595 est alimenté en 3.3V, il faut l'alimenter en 5V.
Alors comme ça ne marchait pas 3,3v ou 5v, j'ai décablé et recablé
Et puis cela a fonctionné mais certains segments semblaient ne pas s'afficher avec
cette config
=>
et je me suis rendu compte d'une erreur de cablage de ma part
que j'ai corrigé ...
=>
et puis plus rien à nouveau !??
Ce qui me laisse à penser (intuitivement) qu'un cable / resistance ou autres sous le 7-segment
Alors ça semble fonctionner beaucoup mieux avec le 3 à la masse
Je pensais que chaque led allait s'allumer successivement ...
Mais l'affichage est bizarre, voir le résultat ci-dessous je vais donc revérifier le cablage
=>
...
8
6
E
8
E
F
8
un C inversé
8
8
9
6
un C inversé
8
9
8
6
E
...
Et puis dans l'article je cite apparemment ce montage
pourrait endommager le 74HC595 si je traduis bien ? Alors que je voulais m'en servir
par exemple comme compteur ...
Displays a digit by illuminating each individual segment that makes
it up on the display sequentially, rather than illuminating each
segment at once. This is done very quickly (multiplexing) to give
the illusion that all the nesersary segments are illuminated at
once. This is because the 74HC595 can’t source or sink that much
current, and lighting all segments for the digit ‘8′ at once for
example could require too much current and damage the chip.
Effectivement le 74HC595 est un peu juste pour piloter un afficheur 7 segments car il ne peut fournir que 70mA au total.
Tu peux augmenter les résistances à 330Ω voire 470Ω
en général les sorties des circuits logiques ne sont pas faites pour piloter directement des leds (bien que ce soit possible), il faut utiliser des circuits de 'puissance' comme des transistors ou réseaux de transistors genre ULN2803.
Edit le ULN2803 ne convient pas pour des afficheurs à cathode commune.
kamill:
Je pense que sur l'afficheur le 3 et le 8 devrait être relié. De toutes façon dans le doute mets le 3 à la masse
Bonjour
Un peu de famille ce WE, là je reprends mes expérimentations
Pas d'amélioration d'affichage avec nombreux cablage et recablage
Je pense après avoir vérifier le programme qui de mon point de vue est Ok (correspondance affichage des segments) et ... que mon soucis vient quand même du cablage du 7-segment Cathode commune donc je repose la question :
A quoi doit je connecter la broche 3 et la broche 8 ?
Un conseil après toutes ces manip il faut contôler que les composants ne sont pas détruits.
Note aussi que passé 1 heure de dépannage (éventuellement re-vérifier le lendemain après une bonne nuit) la probabilité de trouver visuellement une erreur est proche de zéro. Dans bien des cas la solution la plus rapide est un recâblage complet à partir de zéro.
Afficheur
Connecte les segments 1 par 1 à l'alim, n'oublie pas la résistance série avec chaque segment.
Registre à décalage :
Place des résistances entre 1k et 10 k entre les sorties du registre à décalage et le Vcc.
Envoie des séquences connues et contrôle avec un voltmètre que les sorties sont bien dans l'état qu'il faut.
Une fois que les composants sont vérifiés comme fonctionnels il faut passer à la programmation.
Il faut définir quelle séquence à envoyer par chiffre.
Toujours avec les résistances entre 1k et 10k, tu envoie les différentes séquences et tu contrôle que les sorties du registre à décalage sont bonnes.
Dernière étape : tu recâble les segments de l'afficheur sur le registre à décalage et tu re-contrôle.
Si tu procède ainsi tu ne fera varier qu'une chose à la fois ce qui sera plus facile pour comprendre d'où vient l'erreur.
Actuellement tu as trop de variables simultanées. Il est toujours préférable d'isoler le problème et de le résoudre individuellement que ce soit en réalisation électrique indépendante ou en bout de programme indépendant que de s'acharner sur le montage et le programme définitif.
PS : le suffixe N indique le modèle de boîtier.
Cette information est disponible dans la datasheet du produit que je t'engage à lire car elle contient des conseils de mise en œuvre, elle est en anglais.
Il faut toujours être méfiant avec les schémas trouvés sur internet qui peuvent être faux.
Ceux contenus dans les datasheets sont eux toujours justes.
Pin 3 et 8
Elles ne sont pas obligatoirement reliées dans le boîtier. Elles sont doublées pour diviser la densité de courant dans les bondings de sortie.
Un bonding est un petit fil de quelques microns de diamètre, généralement en aluminium qui relie les connexions sur la puce aux connexions du boîtier.
Tu dis que tu veux reduire les fils (sic), cela veut dire quoi en francais ?
de combien d'afficheur as-tu besoin ? (je sens venir le moment ou tu vas nous dire : que dois-je faire pour en avoir 3 ou 4 )
pourquoi as tu choisi ce type d'afficheur (cathode commune) qui est plus complique a utiliser qu'un modele a anode commune.
comme l'a dit Kamill, il est beaucoup plus simple d'utiliser un circuit genre ULN2803 qu'un registre a decalage qui n'est pas prevu pour cela
comme te l'a dit 68tjs, il faut utiliser une resistance pour chaque segment
je viens de verifier sur 2 modeles differents d'afficheur disponibles ici, les pins 3 et 8 sont connectees en interne
Si j'etais a ta place :
pour verifier le fonctionnement de l'afficheur : pin 3 et 8 au GND et chaque segment a travers d'une resistance au +5V pour verifier brochage et integrite de l'afficheur
je commande 10 pces ULN2803 pour la somme de 1€50 (frais de port compris) Aliexpress
je commande 10 pces 7 segment display Anode commune pour 1€29 (frais de port compris) Aliexpress
si tu n'as pas de pins I/O en suffisance, tu utilise ton HC595 (il est fait pour cela)
pour infos, mes dernieres commandes sur ce site, livrees en 12-13 jours calendrier
si tu es vraiment a la bourre et que tu ne peux pas attendre, fais une petite demande ici pour un depannage. Je suis sur que tu auras une reponse positive.
N.B.: quand, comme toi, tu commences des realisations Arduino tu dois avoir un hardware en beton. Tout doit marcher nickel. Tu auras deja tous les problemes soft a regler.
Je comprends la démarche, maintenant je pense que mon 7-segments est OK
puisque les 7 segments s'allument (bon pour l'instant n'importe comment) ...
Pour les résistances 1k à mettre sur SN74HC595N il y en a donc 8, c'est bien ça ...
7 segments et le point
Pour la partie "contrôle que les sorties du registre à décalage sont bonnes." ça je fais comment avec mon voltmètre ? j'ai 7 fils en sortie (Q0 -> Q7) et je détecte l'état 0 et 1 en balançant par exemple 0100000 et en vérifiant qu'il y aura un fil (ici Q1) correspondant où j'aurai une tension à 3,3v c'est ça ?
Pour la partie datasheets (notice fabicant ?), j'ai regardé le schéma du SN74HC595N et du 7-segment et j'ai vérifié /recâblé par moi-même et je suis retombé exactement sur le câblage du tuto, d'où ma question sur la broche 8 et 3 du 7-segment qui seraient selon moi déjà à relier à la masse tous les 2 ? Avec pour chaque une résistance 220 ohm ou 330 ?
Je suis lourd, mais je préfère m'étendre sur cette partie avant de passer à des montages
moins bateaux ...
Merci pour tous ces éléments de réponse Jacques, je compile
Oui j'ai une idée (pas révolutionnaire) derrière la tête mais comme j'ai commandé un kit chinois,
je fais avec ce que j'ai reçu ... donc un 7 segment Cathode commune.
Je regarde encore un peu aujourd'hui et je bascule dès demain
sur la solution à base d'ULN2803 comme proposé par Kamill.