[Analogique] Alimenter correctement un afficheur 7 segments
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

Alimenter correctement un afficheur 7 segments



  1. #1
    YuGiOhJCJ

    Alimenter correctement un afficheur 7 segments


    ------

    Bonjour,

    Je viens d'acquérir un afficheur 7 segments [1] dont la datasheet [2] dit :
    - Forward voltage: 1.8 - 2.2 V
    - Forward current: 20 mA

    Du coup, j'essaye d'alimenter correctement ce composant pour correspondre aux valeurs ci-dessus.
    J'alimente mon montage avec un port USB (donc U = 5 V).
    Je pensais utiliser un pont diviseur de tension pour parvenir à une tension que supportera le composant.
    Concernant la tension, je souhaite avoir une tension de 2V (c'est-à-dire le milieu entre la valeur minimale et la valeur maximale).
    Concernant l'intensité, je ne dois surtout pas dépasser 20 mA (donc I2 = 20 mA).

    Bref, j'essaye avec la loi d'ohms et les lois de Kirchhoff de parvenir à trouver la valeur des résistances que je dois utiliser dans le montage.

    Voici le schéma du montage :
    Nom : 7segments.png
Affichages : 821
Taille : 20,5 Ko

    D'après la datasheet, les bornes 3 et 8 semblent correspondre à VCC (+) tandis que les autres bornes servent à activer l'un des 7 segments de l'afficheur ainsi que le point.

    Est-ce que vous pouvez m'aider à trouver les bonnes valeurs pour les résistances ?

    Merci.
    Cordialement.

    [1] https://www.sparkfun.com/products/8546
    [2] https://cdn.sparkfun.com/datasheets/...-160AR4B-8.pdf

    -----

  2. #2
    YuGiOhJCJ

    Re : Alimenter correctement un afficheur 7 segments

    J'inverse I2 et I3 :
    Nom : 7segments.png
Affichages : 749
Taille : 20,5 Ko

  3. #3
    cubitus_54

    Re : Alimenter correctement un afficheur 7 segments

    bonjour,

    Tu mets une simple résistance en série avec la DEL

    R = (5V - Udel) / If

    Ce n'est pas utile d'utiliser le courant maxi de 20mA, 5 à 10mA c'est suffisant.

  4. #4
    DAT44

    Re : Alimenter correctement un afficheur 7 segments

    Bonjour,
    un afficheur DEL comme toute DEL s'alimente en courant, comme tu a les anodes commune tu les branche directement sur le +5V et tu place une résistance de 150 ohms ou + vers le - sur chacune des cathodes des segment que tu souhaite allumé.

    R=U/I : (5-2)/0,02=150 ohms, si I diminue la valeur de R augmente.

  5. A voir en vidéo sur Futura
  6. #5
    YuGiOhJCJ

    Re : Alimenter correctement un afficheur 7 segments

    Citation Envoyé par cubitus_54 Voir le message
    bonjour,

    Tu mets une simple résistance en série avec la DEL

    R = (5V - Udel) / If

    Ce n'est pas utile d'utiliser le courant maxi de 20mA, 5 à 10mA c'est suffisant.
    Udel = Forward voltage ?
    If = Forward current ?

    Dans ce cas :
    R = (U - Udel) / If
    R = (5 - 2) / 0.020
    R = 3 / 0.020
    R = 150 ohms

    Ça correspond bien à la valeur indiquée par DAT44 donc au moins on peut dire que vous êtes d'accord tous les deux sur ce point.

    OK donc je place une telle résistance au niveau de chaque segment que je souhaite allumer.
    Sur le schéma c'est entre la borne 7 de l'afficheur et le GND.

    Voici le nouveau schéma :
    Nom : 7segments-2.png
Affichages : 752
Taille : 15,5 Ko

    Avec :
    U = 5V
    I1 = 20mA
    R1 = 150 ohms
    U1 = ???

    Ça vaut quoi U1 à ton avis ici ?
    Je respecte bien les 20mA max ici donc pour le courant pas de problème par contre ne vais-je pas dépasser au niveau de la tension ? (1.8-2.2V)

    Concernant le courant, je préfère utiliser la valeur max (20mA) plutôt que 10mA car plus le courant est important, plus l'intensité lumineuse de la diode sera élevée.
    C'est bien ça ?

    Citation Envoyé par DAT44
    Bonjour,
    un afficheur DEL comme toute DEL s'alimente en courant, comme tu a les anodes commune tu les branche directement sur le +5V et tu place une résistance de 150 ohms ou + vers le - sur chacune des cathodes des segment que tu souhaite allumé.

    R=U/I : (5-2)/0,02=150 ohms, si I diminue la valeur de R augmente.
    Est-ce que "s'alimenter en courant" signifie que peu importe la tension, ce qu'il faut considérer c'est uniquement le courant qui passe dans la DEL ?
    Dans ce cas, ça m'arrange : ça signifie que je peux laisser tomber le diviseur de tension ce qui va grandement simplifier mon schéma.
    Je ne savais pas que certains composants comme les DEL pouvaient supporter n'importe quelle tension.
    C'est sûr ? Il n'y a pas de limite ?

    Oui effectivement sur la datasheet, on voit bien que les anodes sont reliées entre elles, donc elles sont communes.
    Par contre, elles sont toutes reliées par le bornes 3 et 8 de l'afficheur donc j'en ai choisi une au hasard (3) parmi ces deux pour y brancher le +5V.
    On le voit sur mon schéma.
    Sur la datasheet, 3 et 8 semblent être le même point sur le circuit du coup, je me suis dit qu'il n'était pas nécessaire de brancher 3 et 8 en même temps et qu'il suffisait que j'en branche qu'une seule.
    Je me trompe ?

  7. #6
    cubitus_54

    Re : Alimenter correctement un afficheur 7 segments

    Salut,

    Tu te tortures bien les méninges...

    passe à l'expérimentation !

    Branche ton afficheur et mets une résistance entre 7 et gnd et regarde par toi même comme c'est beau
    essais plusieurs résistances 1k, 470 ohm 330 ohm, 220 ohm et 150

  8. #7
    DAT44

    Re : Alimenter correctement un afficheur 7 segments

    Bonjour,
    +1

  9. #8
    YuGiOhJCJ

    Re : Alimenter correctement un afficheur 7 segments

    Citation Envoyé par cubitus_54 Voir le message
    Salut,

    Tu te tortures bien les méninges...

    passe à l'expérimentation !

    Branche ton afficheur et mets une résistance entre 7 et gnd et regarde par toi même comme c'est beau
    essais plusieurs résistances 1k, 470 ohm 330 ohm, 220 ohm et 150
    Voilà je suis passé à l'expérimentation sur ma plaque à essais et c'est un succès :
    7segments.jpg

    Cependant, la théorie m'intéresse beaucoup.
    L'expérimentation c'est amusant mais j'aime bien comprendre pourquoi ça marche.

    Je suis enfin arrivé à expliquer pourquoi par le calcul :

    1) Application de la loi des mailles :
    U - UDel - U1 = 0
    U = UDel + U1

    2) Loi d'ohm :
    U = UDel + (R1 x I1)
    U - UDel = (R1 x I1)
    (U - UDel) / I1 = R1

    En fait, sur mon schéma, il manquait la tension Udel.
    Donc voici le nouveau schéma :
    7segments-2.png

    Comme je l'avais deviné, brancher seulement la borne 3 au +5V fonctionne (pas besoin d'utiliser la borne 8).

    Concernant ma question sur la valeur de U1, en mesurant je me suis rendu compte :
    U = 5V
    I1 = 20mA
    R1 = 150 ohms
    U1 = 3V
    UDel = 2V

    Mais je pouvais le calculer :
    Application de la loi des mailles :
    U - UDel - U1 = 0
    -U1 = UDel - U
    U1 = U - UDel = 5 - 2 = 3V

    Voilà, c'est résolu.
    Merci beaucoup tout le monde.
    Je vais pouvoir continuer mes expérimentations en branchant un microcontrôleur qui fera défiler les chiffres sur l'afficheur

  10. #9
    YuGiOhJCJ

    Re : Alimenter correctement un afficheur 7 segments

    Citation Envoyé par YuGiOhJCJ Voir le message
    Je vais pouvoir continuer mes expérimentations en branchant un microcontrôleur qui fera défiler les chiffres sur l'afficheur
    Ou pas !
    Je comptais relier chaque sortie de mon microcontrôleur à une borne de mon afficheur 7 segments pour contrôler l'activation des DEL de l'afficheur.
    Cependant, puisque j'ai un afficheur 7 segments ou les anodes sont communes (et pas les cathodes), je me rends compte que les DEL seraient toutes inversées par rapport au sens conventionnel du courant.
    Je me suis planté de composant n'est-ce pas ?

    Pourtant, ça n'a pas l'air de déranger Joel Ngonga dans son article [1].
    Il parvient à contrôler son afficheur à anodes communes avec un microcontrôleur.
    Apparemment il fait ce qui s'appelle du "sinking".

    D'habitude, avec mon microcontrôleur, quand je souhaite activer une LED, je la relie à une sortie du microcontrôleur puis je code l'ouverture de la sortie de cette manière :
    Code:
    DDRB |= (1 << PB0); /* DDRB = 00000000 | 00000001 = 00000001 (configure PB0 comme une sortie) */
    PORTB &= ~(1 << PB0); /* PORTB = 00000000 & 11111110 = 00000000 (désactive PB0) */
    _delay_ms(500); /* attend 500 millisecondes */
    PORTB |= (1 << PB0); /* PORTB = 00000000 | 00000001 = 00000001 (active PB0) */
    _delay_ms(500); /* attend 500 millisecondes */
    Est-ce que ça change complètement mon code ici de faire du "sinking" ?

    [1] https://blogelect.wordpress.com/2015...crocontroller/

  11. #10
    antek

    Re : Alimenter correctement un afficheur 7 segments

    En anode commune tu allumes une led avec le 0V,
    en cathode commune avec le +Vcc.
    Le code est forcemment différent.

  12. #11
    cubitus_54

    Re : Alimenter correctement un afficheur 7 segments

    Salut,

    Ce n'est pas un problème.

    En anode commune la sortie de ton microcontrôleur allume le segment en mettant la sortie à "0"

    en cathode commune la sortie de ton microcontrôleur allume le segment en mettant la sortie à "1"

    Si tu mets ton portB à 0 tous les segments seront allumés, si tu mets le portB à 0xFF tout sera éteint.

  13. #12
    YuGiOhJCJ

    Re : Alimenter correctement un afficheur 7 segments

    En effet, c'est tout bête c'est l'inverse de d'habitude quand on fait du sinking.

    Le code devient donc :
    Code:
    DDRB |= (1 << PB0); /* DDRB = 00000000 | 00000001 = 00000001 (configure PB0 comme une sortie) */
    PORTB |= (1 << PB0); /* PORTB = 00000000 | 00000001 = 00000001 (désactive PB0 en sinking) */
    _delay_ms(500); /* attend 500 millisecondes */
    PORTB &= ~(1 << PB0); /* PORTB = 00000000 & 11111110 = 00000000 (active PB0 en sinking) */
    _delay_ms(500); /* attend 500 millisecondes */
    Si j'ai bien compris, le sinking ça consiste à inverser le sens du courant sur les sorties (donc exactement ce dont j'avais besoin).
    J'ai pu le vérifier en mesurant la tension aux bornes d'une résistance.
    Au lieu d'aller vers l'afficheur, la tension allait vers le microcontrôleur.
    En d'autres mots, la tension est négative lors de la mesure.
    C'est pratique cette fonctionnalité de sinking.
    D'après la datasheet de mon microcontrôleur, le sinking peut aussi s'appeler "output low" tandis que le source peut aussi s'appeler le "output high".
    Ce qui m'a surpris c'est que le microcontrôleur passe automatiquement en mode sink ou source en fonction de ce qu'on lui branche sur la sortie.
    Je n'ai rien eu à configurer ce qui peut paraître magique mais il y a forcément une explication.

  14. #13
    antek

    Re : Alimenter correctement un afficheur 7 segments

    On n'est pas obligé de parler de "sinking", tout juste bon à embrouiller.
    Une charge est commandée par 0 V lorsqu'elle est alimentée par +V,
    et lycée de Versailles.

Discussions similaires

  1. Afficheur 7 segments
    Par lpnd dans le forum Électronique
    Réponses: 9
    Dernier message: 16/01/2013, 16h44
  2. Afficheur 7 Segments
    Par dvb_gsm dans le forum Électronique
    Réponses: 2
    Dernier message: 07/05/2010, 00h18
  3. Afficheur 4 x 7 segments
    Par invite6a3c8a30 dans le forum Électronique
    Réponses: 2
    Dernier message: 01/12/2009, 20h52
  4. Câblage Afficheur 7 segments sur 8051 via un décodeur BCD 7 Segments
    Par invite79668502 dans le forum Électronique
    Réponses: 5
    Dernier message: 24/09/2009, 19h53
  5. afficheur 7 segments
    Par wamania dans le forum Électronique
    Réponses: 1
    Dernier message: 08/01/2003, 18h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.