Matrice de Led

Bonjour,

je suis en train de r=E9aliser une matrice de led 8x8, rien de r=E9ellement sorcier, 2 ports de l'uc pilote 2x8 transistors NPN qui viennent attaquer directement les leds. En plus, j'ai 3 paires transistors / r=E9sistances qui assurent l'alimentation des leds en amont des 16 transistors afin de pouvoir contr=F4ler le courant au travers des leds et ainsi commander leur =E9clairement.

=C0 la base, je voulais tout commander de mani=E8re logiciel (puissance de l'=E9clairage des leds) mais je me suis vite aper=E7u que c'est difficile car on perd =E9norm=E9ment de la capacit=E9 d'=E9clairage des leds. Comme je veux pouvoir les commande ind=E9pendamment, je balaye une

60aine de fois par seconde toutes les leds, le souci, c'est que l'=E9clairement est moindre, je voulais savoir si quelqu'un aurait une id=E9e qui permettrait de =AB booster =BB l'=E9clairage des leds qui sont a= u final allum=E9es que quelques microseconde au mieux...

Merci d'avance

++
Reply to
Hugo
Loading thread data ...

Hugo a tapoté du bout de ses petites papattes :

Quand tu multiplexes des leds tu peux augmenter le courant.

--
LeLapin
Reply to
LeLapin

Ouaip, je me doute bien mais je cherche les bonnes m=E9thodes pour le faire, j'ai commenc=E9 par changer les f=E9blard BC547 par des BD439, c'est mieux mais pas encore le top...

Reply to
Hugo

Tu ne peux pas jouer sur la valeur des résistances ?

--
LeLapin
Reply to
LeLapin

Dans le meilleur des cas (s=E9lection de la plus grande illumination), le courant ne traverse aucune r=E9sistance (gr=E2ve =E0 mes 4 transistors d= e s=E9lection du courant, j'ai mis 3 dans mon premier post mais en fait, il y a 3 paires r=E9sistances / transistor et un transistor seul qui permet d'obtenir la plus forte illumination, pour les r=E9sistances, je parle bien s=FBr de celle de collecteur / =E9metteur, j'ai aussi des r=E9sistances sur les bases bien entendu)

Reply to
Hugo

Un IC prévu pour ça ?

formatting link

Une puce diaboliquement efficace, non ?

--
Je cherche un nouveau travail...
            http://tboudet.free.fr/cv-thierry-boudet.pdf
 Click to see the full signature
Reply to
Tonton Th

nt au

Exact, c'est d'ailleurs leur projet qui m'a donn=E9 envie de me lancer dedans, cependant, je ne souhaite pas utiliser une puce qui fait tout, le c=F4t=E9 didactique de la chose est aussi important, en plus, la puce qu'il utilise coute relativement ch=E8r...

Reply to
Hugo

Donc ram statique, compteur de balayage, un peu de logique pour faire pseudo-double-port (pour l'écriture sans affecter l'affichage), sans parler du latch, de l'horloge, de l'interface avec le module de commande, et la puissance. Le module de commande aussi peut être empirique : Eprom de table de caractères/symboles/graphiques/animations et tripaille un peu inverse du module d'affichage. Le tout implantable. C'était mon premier projet comme indépendant début

80s.

En plus avec la taille des rams cmos et des compteurs d'offset, tu peux faire facilement des effets de défilement, déplacement, stocker des centaines de caractères, dessins...

--
LeLapin
Reply to
LeLapin

e

sont au

e

=E9but

Oui, =E7a doit aussi =EAtre int=E9ressant =E0 faire sans programme, mais to= ute la partie commande est faite avec un AVR, =E7a fonctionne correctement, j'ai pr=E9vu une connectique USB pour envoyer des ordres depuis un PC, l'interfa=E7age aves des capteurs, etc... Tout fonctionne correctement, je ne suis juste pas tr=E8s content du cot=E9 de l'illumination des leds ;)

Reply to
Hugo

Je répondais juste à "je ne souhaite pas utiliser une puce qui fait tout, le côté didactique de la chose est aussi important"... :)

--
LeLapin
Reply to
LeLapin

Bonjour, tu précises :

Peux tu bien confirmer que chaque led est allumée 1/8 du temps ?

Michel

Reply to
michel ou sam

On Jun 18, 4:50 pm, Hugo

Pourquoi =AB quelques microsecondes =BB seulement, puisque ton soft a le contr=F4le total de la dur=E9e d'=E9clairage.

Tu pilotes tes leds par goupe de 8, ou alors une par une ?

A quelle fr=E9quence sont mis =E0 jour les ports du uC ?

Tu peux poster un sch=E9ma de la partie commande, depuis les ports + l'alim ?

Reply to
Jean-Christophe

Car je dois balayer les autres led donc, si je passe trop de temps =E0 laisser afficher les leds allum=E9es, =E7a va scintiller, voir le sch=E9ma

Une par une pour pouvoir avoir diff=E9rent niveau de luminosit=E9

Je fais claquer une interruption environ toutes les 60 fois par seconde qui lance un rafraichissement des leds mais j'ai test=E9 pas mal d'autres valeurs...

Voici :

formatting link

Merci

Reply to
Hugo

Hugo a tapoté du bout de ses petites papattes :

Une led allumée (au mieux) 1/64ème du temps et tu te poses des questions sur la luminosité ? Ne va pas chercher plus loin. Pilote les 8 par 8 avec 2 bits (ça te fait 3 niveaux de luminosité + éteint) et déporte ton modulateur de luminosité sur une rangée. C'est un peu plus compliqué mais le résultat sera incomparable.

--
LeLapin
Reply to
LeLapin

On Jun 20, 6:38 pm, Hugo

| Tu pilotes tes leds par goupe de 8, ou alors une par une ?

| A quelle fr=E9quence sont mis =E0 jour les ports du uC ?

Donc la dur=E9e d'allumage d'une LED est de 1/60 =3D 16,7 ms (on est loin des micro-secondes) et l'ensemble des 64 LEDs est rafraichi en 1,6 secondes, (ca me semble un peu lent) c'est bien ca ?

Ou alors tu rafraichis 64 LEDs en 1/60 secondes ? ( l=E0 ca ferait 260 us pour chaque LED )

Reply to
Jean-Christophe

Hugo, le 6/18/2011 a écrit :

Sans trop casser le travail matériel déjà fait, pour gagner un facteur

8: (je considère un temps de cycle unitaire, pour simplifier l'écriture) Actuellement, la puissance maxi correspond à 1/64. Le port colonne a un seul bit allumé qui change toutes les 1/64. Le port ligne fait de même au rythme de 1/8. Peu importe si c'est l'inverse. Vous bidouillez en amont pour pouvoir alimenter 8 LEDs (une ligne) à courant maxi simultanément. Vous ne changez rien au port ligne. Vous faites sortir un mot complet quelconque (initialement à FF) sur le port colonne. Vous modifiez ce mot pour qu'il passe de FF à 00 durant le temps de 1/8. Par exemple pour être en demi puissance sur les bits 3 et 4, tout le reste à 75%: FF au début, E7 au temps (1/8)/2, 00 au temps 3x((1/8)/4). Notez que vous pourriez améliorer le scintillement en faisant au rythme de (1/8)/4: FF- E7 - FF - OO, mais pour généraliser ça compliquerait énormément le traitement logiciel. Il est préférable de précalculer des tables de valeurs et de temps et d'optimiser le temps de cycle.

Vous pouvez améliorer avec 4 lignes de 16, 2 lignes de 32 ou 1 ligne de

64, mais il vous faudrait disposer de 20, 34 ou 64 bits en sortie µcontrôleur. Pour la première proposition (4 lignes de 16, 16 + 4 bits en sortie) ça doit pouvoir le faire.

Pour tirer 100% de la puissance de vos LEDs, sur à peu près le même principe, sans disposer de 64 bits en sortie, il me semble qu'il vous faudrait 64 cellules mémoire, qui peuvent être des bascules, et autant de circuits de commande.

--
Pierre Maurette
Reply to
Pierre Maurette

Bonjour, si j'avais à faire un tel montage, je considererai qu'une led est en pleine luminosité 1/8 du temps soit encore 4/32 eme du temps Les leds devant être moins lumineuses serait alimentées que 3/32, 2/32, 1/32 du temps (3 niveaux de gris)

Pour ce faire, je balayerais chaque colonne avec un 1 et chaque ligne serait à 1 ou 0 en fonction du cycle de luminosité

Au point de vue électronique, je chercherais à saturer les transistors et j'aurais mis pour chaque colonne un PNP donnant le +5v (pour ce faire prévoir en programmation une sortie à 0 pour l'allumage). Pour chaque ligne, comme dans ton montage un NPN avec une résistance dans le collecteur pour limiter le courant de la led concernée. Eventuellement, on peut compliquer ou améliorer le montage en faisant un générateur de courant pour chaque ligne (résistance dans entre emetteur et

0v) et mettre en colonne un NPN suivi d'un PNP au +10v (et mettre une commande à 1 pour allumer)

Michel

"Hugo" a écrit dans le message de news: snipped-for-privacy@o10g2000prn.googlegroups.com... > On Jun 18, 4:50 pm, Hugo

Car je dois balayer les autres led donc, si je passe trop de temps à laisser afficher les leds allumées, ça va scintiller, voir le schéma

Une par une pour pouvoir avoir différent niveau de luminosité

Je fais claquer une interruption environ toutes les 60 fois par seconde qui lance un rafraichissement des leds mais j'ai testé pas mal d'autres valeurs...

Voici :

formatting link

Merci

Reply to
michel ou sam

'est

Les leds ne sont pas allum=E9e que 1/64eme du temps car une fois l'allumage d'une led fait, je mets une tempo derri=E8re qui augmente largement la luminosit=E9 de la led...

Concernant ta remarque pour les piloter 8 par 8, =E7a va pas =EAtre facile car, j'utilise un atmega16, j'ai 4 port de 8bits, 2 sont d=E9j=E0 utilis=E9 pleinement pour les 2x8 leds, et les 2 autres restants utilis=E9s pour la com / luminosit=E9, je vais voir ce qu'il est possible de faire pour piloter la puissance par colonne...

Merci

Reply to
Hugo

de

le

nt au

eur

e

=E9rable

=E7a

t

Merci pour vos remarques, cependant, si j'ai bien compris, votre solution est bas=E9 principalement sur une gestion en soft de la luminosit=E9, or, c'est exactement ce sur quoi je suis parti au d=E9but, pensant g=E9rer tout cela tranquillement avec quelques lignes de codes mais apr=E8s avoir essay=E9 pas mal de solution, je me suis rendu compte que c'=E9tait quasiment pas faisable et la solution de piloter la luminosit=E9 par hardware fonctionne bien mais je ne suis pas encore pleinement satisfait, =E7a manque de puissance...

Reply to
Hugo

32

ait

Pour le soft, c'est ce que j'ai essay=E9 =E9galement, mais c'est pas terrible...

le

Oui mais dans ce cas, on va perdre en luminosit=E9 avec une r=E9sistance

t

Quel serait l'interet du NPN suivi d'un PNP ?

Reply to
Hugo

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.