8
Enseignes à LED Pierre-Yves Rochat Grâce à leur faible coût, leur bon rendement et leur simplicité de mise en oeuvre, les diodes lumineuses (LED) sont utilisées dans de nombreuses applications. Il est par exemple possible de réaliser toute sorte d'enseignes lumineuses, soit des enseignes à motifs fixes, soit des enseignes à matrices de LED, permettant de composer des texte ou même des motifs graphiques. La disponibilité de LEDs rouges, vertes, bleues, orange et blanches (pour ne citer que les plus courantes) permet de réaliser des enseignes multicolores. Il est même possible d'utiliser des LED multicolores, contenant chacune trois puces générant les couleurs rouge, verte et bleu, permettant de générer toutes les couleurs par mélange additif. Enseignes à motif fixe En fixant des LEDs sur des panneaux (par exemple en plexiglas), il est possible de composer des motifs tels que des caractères ou des logos. En commandant les motifs séparément, il est possible de générer des animations qui attirent l'oeil, tels que des clignotements, des chenillards et même des variations continues d'intensité par PWM. Comment connecter ensemble un grand nombre de LED, pour que les motif formés puissent être commandé par un microcontrôleur ? Le courant consommé par une LED standard est d'environ 10 mA. Il existe bien entendu aussi des LED beaucoup plus puissantes, plutôt utilisées pour l'éclairage. Les sorties des microcontrôleurs permettent en général de fournir quelques dizaines de mA, suffisant pour une ou deux LED. Pour davantage de LEDs, un transistor sera utilisé (transistor bipolaire ou MOS. Même si elles sont regroupées en un seul motif, commandé par une sortie d'un microcontrôleur, il est toujours nécessaire de placer une résistance de limitation de courant pour chaque LED. Une seule résistance en série avec plusieurs LEDs reliées en parallèle est fortement déconseillée. Toutes les LED n'étant pas identiques, la luminosité ne sera pas constante. Par contre il est possible d'augmenter la tension d'alimentation et de placer plusieurs LEDs en série pour une seule résistance de limitation. Le courant est exactement me même dans chaque LED d'une branche ! Il µC µC

Enseigne Sled Doc

Embed Size (px)

DESCRIPTION

free

Citation preview

  • Enseignes LED Pierre-Yves Rochat

    Grce leur faible cot, leur bon rendement et leur simplicit de mise en oeuvre, lesdiodes lumineuses (LED) sont utilises dans de nombreuses applications. Il est parexemple possible de raliser toute sorte d'enseignes lumineuses, soit des enseignes motifs fixes, soit des enseignes matrices de LED, permettant de composer des texte oumme des motifs graphiques.La disponibilit de LEDs rouges, vertes, bleues, orange et blanches (pour ne citer que lesplus courantes) permet de raliser des enseignes multicolores. Il est mme possibled'utiliser des LED multicolores, contenant chacune trois puces gnrant les couleursrouge, verte et bleu, permettant de gnrer toutes les couleurs par mlange additif.

    Enseignes motif fixeEn fixant des LEDs sur des panneaux (parexemple en plexiglas), il est possible decomposer des motifs tels que descaractres ou des logos. En commandantles motifs sparment, il est possible degnrer des animations qui attirent l'oeil,tels que des clignotements, deschenillards et mme des variationscontinues d'intensit par PWM. Comment connecter ensemble un grand nombre de LED, pour que les motif formspuissent tre command par un microcontrleur ?Le courant consomm par une LED standard est d'environ 10 mA. Il existe bien entenduaussi des LED beaucoup plus puissantes, pluttutilises pour l'clairage. Les sorties desmicrocontrleurs permettent en gnral defournir quelques dizaines de mA, suffisantpour une ou deux LED. Pour davantage deLEDs, un transistor sera utilis (transistorbipolaire ou MOS.

    Mme si elles sont regroupes en un seulmotif, command par une sortie d'unmicrocontrleur, il est toujours ncessaire deplacer une rsistance de limitation decourant pour chaque LED. Une seulersistance en srie avec plusieurs LEDsrelies en parallle est fortementdconseille. Toutes les LED n'tant pasidentiques, la luminosit ne sera pasconstante.Par contre il est possible d'augmenter latension d'alimentation et de placer plusieursLEDs en srie pour une seule rsistance delimitation. Le courant est exactement memme dans chaque LED d'une branche ! Il

    C

    C

  • Enseignes LED - 2 -

    faut connatre la tension de chaque LED pour choisir un nombre optimum. Les LEDsrouges ont en gnral une tension d'environ 2 Volt, alors que les vertes ou les bleues ontplutt 3 Volt. Mais il existe plusieurs technologies pour produire des LEDs et il faut bien serenseigner concernant les LEDs choisies... ou simplement les mesurer !Avec une tension d'alimentation de 12 Volt, on peut mettre 5 LED rouges ou 3 LED vertes.Notez qu'un seul transistor faible signal, par exemple un BC337, dont le courant maximalest d'environ 500 mA (cette valeur varie selon les fabricants), il est possible decommander environ 250 LEDs rouges avec cette technique, chaque groupe de 5 LEDs ensrie recevant 10 mA.

    Quizz : Avec une alimentation de PC portable, fournissant 16 Volt et un maximum de 4.5ampres, combien de LED vertes est-il possible de commander ? La tension au borne dechaque LED doit tre d'environ 3 Volt, pour un courant de 10 mA.( ) 45 LEDs ( ) 450 LEDs ( ) 2'250 LEDS ( ) 12'300 LEDsRponse : on peut mettre 5 LEDs en srie (15 Volt) avec une rsistance de limitation. Il estpossible de placer 450 groupe de LEDs (450 * 10mA = 4.5A). C'est donc un total de 2'250LED's qu'il est possible de commander.Dans ce cas, voici comment calculer la valeur de la rsistance : les 5 LEDs devantabsorber chacune 3 Volt, il reste 16 (5*3) = 1 Volt au borne de la rsistance. Pour uncourant nominal, il faut R = U / I = 1V / 10mA = 100 Ohm.En pratique, on ralisera un montage de test avec les 5 LED et une rsistance, sansoublier le transistor, qui a aussi une chute de tension. On mesurera la tension au borne dela rsistance, on calculera le courant qui la traverse (I = U / R). On corrigera ensuite lavaleur de la rsistance pour se rapprocher du courant souhait (par exemple 10 mA) et onreprendra le test.

    Logiciel de commande d'une enseigneUne enseigne est un dispositif qui ne dispose que de sorties. Sa programmationcorrespond donc une suite d'affectations de sorties et d'attentes : c'est un squenceur.Il est important d'utiliser des techniques de programmation qui vitent d'interminablessuites de commande, rendant l'criture et le dpannage des programmes fastidieux.Parfois, il faut aussi prendre soin dutiliser des techniques conomes en place mmoire,pour pouvoir implmenter des animations varies sur de petits processeurs. Pour cela, onpeut inventer un langage spcialis pour dcrire les animations, qui sera ensuite interprtpar un petit programme en C.D'autre part, l'utilisation de PWM pour avoir des variations d'intensit permet des produiredes enseignes plus attrayantes. Par exemple, on pourra faire bouger les lettressuccessives d'un mot, tout en maintenant le mot toujours lisible en demi-intensit.Il est aussi intressant de pouvoir sparer plusieurs parties de l'enseigne et d'appliquer chaque partie un programme indpendant (multi-tches).Un programme pour AVR ATtiny2313, intgrant ces trois techniques, est disponible dansun document spar.

    Extensions des entres-sortiesEn augmentant le nombre de motifs sur une enseigne, la richesse des effets visuels

  • Enseignes LED - 3 -

    possibles augmente. Par exemple, le mot Restaurant peut constituer un seul motif,qu'il est possible d'allumer, d'teindre, de faire clignoter, etc. Mais si chaque lettre est unmotif indpendant, beaucoup dautres animations qui attirent lil sont possibles.Faut-il alors choisit simplement un microcontrleur qui offre davantage de pattes ? Cen'est pas toujours possible, ni pratique, ni simplement avantageux.On utilise souvent des circuits intgrs permettant l'extension du nombre de sorties. Ilexiste des circuits spcialiss, bass sur des standards de communication comme SPI ouI2C, qui seront prsents plus loin dans le cours. Mais on peut aussi utiliser de simplesregistres, comme par exemple le 74HC595.

    Ce circuit contient un registre srie 8 bits, dontles sorties sont branches sur un registreparallle de 8 bits galement. Le registre sriea une entre srie. Le registre parallle a unesortie parallle. Chaque registre a son horloge(Clock).La figure ci-contre montre le symbole donnpar un fabricant. On lui prfrera un symboleplus compact.L'horloge srie Sck permet d'enregistrer l'tatde l'entre srie Sin, dans la premire basculedu registre srie et de le dcaler. La sortieSout7 permet de cascader plusieurs registres.L'entre Rst (active zro) remet le registresrie zro.L'horloge parallle Pck permet de transfrer lecontenu du registre srie dans le registreparallle, reli aux sorties Pout0 POut7. Cessorties sont trois-tats : elles peuvent tredsactives par l'entre OE (Output Enable),active zro. Sur des enseignes, cette entrepermet de faire une variation globaled'intensit, par PWM.

    La figure ci-dessous montre le digramme des temps correspondant l'envoi de 16 bits surles sorties. On voit que seuls trois signaux de commande sont ncessaires, mme pour unregistre trs long (en cascadant Sout7 sur Sin du registre suivant et en connectantensemble les entres Sck de tous les registres, de mme pour les Pck).

    Voici la procdure

    Pout0 Pout7

    Pck

    SinSck

    Rst

    Sout7

    OE

    SinSckPck

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    Pout8 Pout15

    Rst

    Sout7

    Pout0 Pout7

    Pck

    SinSck

  • Enseignes LED - 4 -

    pour l'envoi des 16 bits :voidEnvoie16(valeur:integer){inti;for(i=0;i>1;}SetPck;ClearPck;}

    Matrices de LEDLe principe des afficheurs matrices est de disposer de pixels indpendants sur unegomtrie orthogonale, gnralement mme orthonorme. Autrement dit, on place desLEDs sur une grille rgulire. Chaque LED doit pouvoir tre commande sparment.Brancher chaque LED sur une patte du microcontrleur est videmment impossible. Desregistres est souvent utiliss.A titre d'exemple, j'ai ralis un circuit imprim comportant 16 fois 16 LEDs, soit 256 autotal. Des registres 74HC595 au nombre de 32 commandent chaque LED. Unmicrocontrleur MSP430G2302 envoie les signaux aux registres. Il peut tre programmpour gnrer des animations. On l'utilise ainsi pour de petites enseignes publicitaire devitrine. Le microcontrleur peut aussi tre programm pour recevoir des images partird'un bus de communication, comportant 4 bits de donnes et 3 bits de commande. Il estalors possible de fabriquer de grands journaux lumineux, en alignant plusieurs circuit. Desenseignes spcifiques, telles que des croix de pharmacies, ont aussi t ralise aveccette technique. Un processeur plus puissant (un ARM dans ce cas) est utilis pourtransmettre les images tous les carrs, chacun possdant un numro spcifique (ligne,colonne).

    Matrices a balayageIl existe une technique plus astucieusepour fabriquer des afficheurs matricielsavec moins de composantslectroniques. La figure ci-contre montrele principe : les LEDs sont connectes toutes les intersections d'un certainnombre de lignes et de colonnes.Avec cette topologie, il n'est pas possibled'allumer en mme temps deux LEDs setrouvant sur des lignes et des colonnesdiffrentes, sans allumer d'autres LEDsparasites. Il ncessaire d'utiliser latechnique du balayage, o les lignes sontaccdes successivement.Si ce balayage est suffisamment rapide,lil ne peroit plus l'allumage successifdes lignes et voit l'ensemble de l'image

    forme sur la matrice de LEDs. Une frquence suprieure 100 Hz, ou mieux 150 Hz,enlve l'impression de clignotement.

    ...

  • Enseignes LED - 5 -

    Bien entendu, on perd de la luminosit. Lorsqu'il y a par exemple 7 lignes, une LED nepourra tre allume dans le meilleur des cas qu'un septime du temps. On pourratoutefois faire passer dans les LED leur courant maximum : c'est le courant qu'il estpossible d'atteindre sans abmer le composant, mais de manire non continue(contrairement au courant nominal, qu'il est possible d'imposer en continu sans risque). Orce courant maximal est souvent le double du courant nominal, par exemple 20 mA contre10 mA. On peut donc gagner un peu sur la luminosit perdue par le balayage.Comme chaque ligne doit tre accde successivement, le courant total maximum dansune ligne sera le courant maximum d'une LED multipli par le nombre de LEDs. La sortied'un microcontrleur ne va donc pas suffire. Il faut amplifier le courant avec un transistor,qui peut tre un transistor bipolaire ou MOS. Si les lignes correspondent aux anodes, ilfaut un transistor PNP (ou un MOS canal P) : l'metteur doit tre reli au +.

    Lorsque du courant passedans une colonne, ce sera lecourant d'une seule LED, vuque les lignes sont accdessuccessivement. C'est doncau niveau des colonnes qu'ilfaut mettre la rsistance delimitation. En la plaant sur leslignes, la prsence d'uncourant variable (selon lenombre de LED allumesdans la ligne) entranera unechute de tension variable (parla loi d'Ohm) et donc uncourant variable dans chaqueLED, qui donnerait desdiffrences de luminositselon les lignes.Le schma ci-contre respecteces principes.On remarque que ce montagefonctionne en logique

    ngative . En effet, c'est un 0 logique qui active une ligne, en faisant conduire letransistor. C'est aussi un 0 sur une colonne qui permet au courant de passer dans uneLED.L'avantage de ce schma est le suivant : comme les colonnes sont souvent nombreuses,on utilise des registres d'extension. Or beaucoup de ces registres sont capables de tirerun courant important lorsqu'une sortie est 0, alors qu'ils ne sont capables de fournirqu'un petit courant lorsqu'ils sont 1. C'est le cas du 74HC595.Il existe une technologie, datant des annes 1990, qui offrent un courant maximumsuprieur celui offert par la technologie de la srie 74HC : c'est la srie 74F (Fast,produite encore chez les fabricants Fairchild et NXP). J'ai souvent utilis le 74F164. Il nedispose pas du registre parallle, comme sur le 74xx595. Mais comme les lignes sontcommandes par des transistors, il suffit de ne slectionner aucune ligne pendant ledcalage srie des donnes destines aux colonnes.Vous verrez la page suivante le schma complet d'un afficheur 217 LED, soit 7 lignesde 31 LEDs. Le choix de 7 lignes a t dict par le fait que c'est le nombre minimum delignes qui permet l'affichage bien lisible des lettre majuscules (il en faudrait au moins 9,mais si possible 11 pour avoir de jolies minuscules).

  • Enseignes LED - 6 -

    Mais pourquoi alors des lignes de 31 LEDs ? Ce n'est pas un chiffre qu'un informaticien vaaimer ! C'tait le nombre maximal de LED qu'il est possible de placer sur un modle trspopulaire de plaques du type Veroboard...

    Logiciel de commande d'un affichage matricielBien qu'un journal lumineux, avec la gestion des caractres, est un programme un peutrop long pour tre dtaill dans ce document, grer un afficheur matriciel n'est pas sicompliqu. Voici un programme destin un afficheur de 7 lignes de 8 LEDs, pilot par unMSP430G.

    La procdure Affiche slectionne successivement les lignes et allume les LEDscorrespondantes. Une attente est faite pour rentre visibles les LEDs. Elle doit tre rglepour que l'impression de clignotement disparaisse. Il est ncessaire d'appeler enpermanence cette procdure Affiche.

    Entre les appels, on peut modifier les pixels afficher, en agissant sur le tableauMatrice. C'est ce que font les procdures SetPoint et ClearPoint, auxquelle ondonne les coordonnes du point afficher.

    Le programme principal initialise les sorties et quelques vraiables. Ensuite, il affiche enboucle la procdure Ping, qui ralise une animation qui simule une balle de ping-pong quirebondit sans frottement sur les bords de l'afficheur.

  • Enseignes LED - 7 -

    #include

    intmatrice[7]={0,0,0,0,0,0,0};//mmorisationdespixels

    #defineLIGNESP1OUT#defineCOLONNESP2OUTvoidAffiche(intnb){//Affichelamatricependant10ms*nb

    intn;intanode;volatileintt;for(n=0;n

  • Enseignes LED - 8 -

    Y0

    Y1

    Y2

    Y3

    Y4

    Y6

    Y6

    X0 X1 X2 X30

    68

    1k

    Y0 Y1 Y2 Y3 Y4 Y5 Y6

    X0 X1 X2 X3 X4 X5 X6X7 X8 X0 X10 X11 X12 X13 X14

    X15 X17 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30

    ATmega16874F164

    74F16474F164

    BC327

    217 LED 5mm

    1

    2

    8

    1

    2

    8

    3 4 5 6 10 11 12 13 3 4 5 6 10 11 12 13

    3 4 5 6 10 11 12 13

    1

    2

    8 Clock

    Parallel OUT

    ClockClock

    Serial IN

    Parallel OUT

    Serial IN

    Parallel OUT

    Reset

    9

    7

    14

    Reset

    9

    7

    14

    Reset

    9

    7

    1410

    8 22

    820

    Serial INPB6

    9

    21PB7

    PD6 PB0PD7PD5PB3PC4PC0

    23 27 17 11 12 13 14

    PC3 PC2 PC1 PB5 PD2 PD3 PD4

    26 25 24 19 4 5 6

    AVRISP

    5

    6

    4

    3

    2

    1

    10k

    1

    SCK

    MISO

    MOSI

    Reset

    17

    18

    19