Go Down

Topic: Matrice de LEDs (quelques questions) (Read 850 times) previous topic - next topic

Morgatte

Bonsoir,

Je ne suis pas sûr de mon coup, j'ai besoin de vos lumières...
Voilà un dessin (en pièce attachée) que j'ai fait sans savoir si tout est bien correcte.

1 - J'ai mis des résistances sans vraiment savoir si leur valeurs sont correctes. Est-ce que 1 Kohm vous semble correcte pour les Bases ?
2 - Je suppose que je n'ai pas besoin de placer de résistances après les Emetteurs pour limiter le courants dans les LEDs puisque j'ai déjà des résistances sur les Collecteurs ? Leur valeurs vous sembles-t-elles correctes ?

3 - Au niveau des cathodes, je n'ai pas besoin de résistances entre C & E, n'est ce pas ? puique le but est de mettre directement les Cathodes à la masse?
4 - Je sais plus ...

Super_Cinci

Salut!

l'idée est là, en général, pour les anodes, on utilise des PNP (2N2904 par exemple, c'est l'équivalent du 2222 en PNP).

Par contre, pour gérer au mieux ton éclairage, tu devrais monter à 20mA par led (car en multiplexé, la valeur efficace du courant sera à 20 / 4 = 5mA). ça te donne 100 ohms au lieu de 220.

1K sur les bases, ça fait un courant de 4mA dans les bases, ça fait un peu beaucoup je trouve. la formule, c'est :

Ic (courant de collecteur) = 20mA (ou 10mA, tu choisis)
Ibsat = 4 x Ic / Hfemin (courant de saturation avec un facteur 4 pour être sûr)
(avec Hfemin = 75)
Rbmax = (VCC - Vbesat) / Ibsat
(avec Vbesat = 1V)
d'où :
Ibsat = 4 x 0.02 / 75 = 1mA
Rbmax = (5 - 1) / 0.001 = 4Kohms (4.7K ou 3.9K en valeur normalisée)

pour Ic = 10mA, ça donne Rbmax = 7.5K

Tu peux donc monter jusqu'à 4.7K, ça fatiguera moins vite ton transistor, même si le datasheet propose d'envoyer 50mA dans la base, ça ne sert à rien d'en faire trop...

Pour un meilleur rendu, je te conseille de multiplexer les anodes, et d'envoyer les données sur les cathodes (des leds en parallèle, ça ne marche bien que su des leds parfaitement identiques)

voili voilà!

fdufnews

#2
Jun 07, 2012, 08:37 am Last Edit: Jun 07, 2012, 08:49 am by fdufnews Reason: 1
Quote
en général, pour les anodes, on utilise des PNP

En fait c'est nécessaire pour bien saturer les transistors. Comme les sorties de l'arduino ne montent pas nécessairement jusqu'à +5V (voir la datasheet de l'atmega328) on risque d'avoir des transistors partiellement saturés et donc perdre de la puissance dans la charge.

Quote
Pour un meilleur rendu, je te conseille de multiplexer les anodes, et d'envoyer les données sur les cathodes

Pas d'accord.
Si tu multiplexes par les anodes, cela veut dire que tu alimentes un transistor sur une ligne de la matrice et qu'éventuellement tu peux activer les 4 transistors du bas. La résistance de limitation est alors partagée par les 4 colonnes. Donc la luminosité variera avec le nombre de LED allumées.
Si tu multiplexes par les cathodes, tu actives une colonne (il n'y a pas de résistance dans cette branche) et pour chacune des LED actives tu rends passant un des transistors sur les lignes, chacun ayant sa résistance le courant sera identique dans toutes les LEDs.
Cela implique autre chose c'est que le transistor en bas de chaque colonne doit pouvoir faire passer le courant des 4 LEDs. Et donc il lui faut une résistance de base plus faible. Si la résistance est trop élevée lorsque toute les diodes d'une colonne seront allumées tu vas avoir une baisse de luminosité.

patg_

Un truc qui marche bien aussi: un Max 7219. Une résistance, 3 fils et hop, on pilote une matrice de 8*8  :smiley-mr-green:

Mes Arduineries: http://breizhmakers.over-blog.com/

Super_Cinci

merci pour la correction fduf, il était encore un peu tôt, je m'a mélangé les pinceaux... et en effet, prendre (Rbmax / 4) pour les transistors du bas...

Morgatte

J'apprends pleins de trucs.  XD

Euh... Multiplexer par les cathodes... Je pense avoir saisit c'est pas bête du tout je n'avais pas pensé à la différence de luminosité, Disons que je souhaite allumer les LEDs suivantes.
L1C1
L2C1 L2C2
Le but c'est d'allumer la colonne L1C1 & L2C1 puis ensuite allumer L2C2 seule, c'est ça j'ai bien saisit ? On allume donc la matrice en balayant de colonnes en colonnes ?


Quote
Cela implique autre chose c'est que le transistor en bas de chaque colonne doit pouvoir faire passer le courant des 4 LEDs. Et donc il lui faut une résistance de base plus faible. Si la résistance est trop élevée lorsque toute les diodes d'une colonne seront allumées tu vas avoir une baisse de luminosité.


J'avais pas non plus pensé à ça...
Disons qu'une colonne soit entièrement allumée, (20mA par LED) ça donne Ic = 80mA.
Avec un gain de 75 pour un 2N2222 ça donne Ib =  80/75 = 1,066 mA
Disons 4.5v en sortie de l'arduino, Rb = 4.5/0.001066 soit Rb = 4200 ohm (3.9K pour être sûr de commuter)
- C'est OK pour cette partie ?


Pour ce qui est des transistors sur Anodes, puisque je multiplexe les cathodes alors à chaque fois 1 seule LED en ligne ne peut être allumée.
donc Ic = 20mA par ligne maxi, Rc = 4.5v/0.02 = 225 ohm.
Pour Ib ... Ic = Ie = 20mA, Ib = 0.02 / 75 (gain) Ib = 0.00026666 Rb = 4.5/0.002666 = 17k soit (12k pour être sûr qu'il sature)

Je ne suis toujours pas sûr de moi, donc si je me plante je vous écoute avec attention.  :smiley-sweat:

Merci.


fdufnews

Quote
Avec un gain de 75 pour un 2N2222 ça donne Ib =  80/75 = 1,066 mA
Disons 4.5v en sortie de l'arduino, Rb = 4.5/0.001066 soit Rb = 4200 ohm (3.9K pour être sûr de commuter)
- C'est OK pour cette partie ?

Comme l'avait indiqué Super_Cinci il faut appliquer un coefficient de sursaturation pour garantir une franche saturation du transistor.
Donc le calcul donne plutôt ça:
Avec un gain de 75 pour un 2N2222 ça donne Ib =  80/75 = 1,066 mA j'applique un coefficient de sursaturation de 4 ==> Ib=4mA
Disons 4.5v en sortie de l'arduino, Rb = 4.5/0.004 soit Rb = 1125 ohm (la valeur normalisée la plus proche 1kOhm)

Faire la même chose sur les transistors qui pilotent les colonnes

piflechien54

Salut   :P
comme j'avais posé les mêmes questions, j'te file mon lien :

http://arduino.cc/forum/index.php/topic,81108.0.html

Bon courage @plus  ;)
Proverbe Tibétain : Un mensonge est un saut du haut du toit

Go Up