Dernière mise à jour :
15/02/2015
Présentation
Contrairement à ce que leur nom pourrait laisser penser, les afficheurs
OLED
(Organic Light Emitting Diode) partagent peu de points communs avec les
afficheur
à LED.
Ces derniers sont en effet constitués de quelques LED pour illuminer de
"larges" segments, alors que les afficheurs OLED sont, à l'instar des
afficheurs LCD, composés d'une matrice de points aptes à représenter
des lettres ou des graphiques (carré simple ou image bitmap, par
exemple). Pourtant, celui qui souhaite afficher quelque chose sur un
écran OLED fait vite
le constat amer que cela n'est pas aussi simple que de piloter un écran
LCD alphanumérique. En fait, on retrouve le degré de complexité auquel
on peut avoir déjà goûté avec les écrans LCD graphiques. Certains
fabricants (comme Digole) proposent des écrans OLED auxquels sont
associé un microcontrôleur, lequel embarque la mécanique nécessaire
pour simplifier leur usage (on envoie des commandes simples que l'uC
associé
traduit en commandes spécifiques à destination de l'écran). Si
le
débutant qui
découvre ce type de produit
(moi par exemple) peut se vanter d'avoir réussi à afficher un écran
"complexe" en
quelques lignes de code, c'est bien parce qu'on trouve sur la toile des
bibliothèques toutes faites (pour Arduino ou autres uC) qui masquent
singulièrement la complexité du procédé.
Constitution d'un afficheur OLED
Les afficheurs OLED sont constitués de
matériaux semi-conducteurs
basés sur le carbone et l'hydrogène (d'où l'appellation organique), qui
s'éclairent quand ils sont
soumis à une source de tension électrique. Cette propriété
s'appelle
l'électroluminescence (comme pour une LED standard qui elle aussi est
un semi-conducteur). Un écran OLED
présente l'avantage de ne pas nécessiter de rétro-éclairage comme c'est
le cas pour les écrans LCD. Il offre un contraste plus élevé
et
une bonne lisibilité sur un large angle de vision, car la lumière émise
est
plus diffuse et moins directive. De plus, l'écran peut être très
mince, transparent (qui n'aurait pas l'idée d'en
fixer un sur
une fenêtre pour voir un lumineux paysage à la place d'un ciel gris) et
même flexible, ce qui ouvre la porte à de multiples application
(éclairage "moderne" aux formes variées, affichage sur vêtements, etc).
Le
temps de réponse des écrans OLED (temps mis par l'afficheur pour
activer ses pixels) est inférieur à la milliseconde, c'est plus rapide
que le temps de réponse des écrans LCD et à priori adapté à la
vidéo. Tout cela pourrait laisser
penser que les écrans OLED ont tout pour remplacer les écrans LCD, mais
un petit défaut limite leur usage à large échelle : leur
durée de vie qui est d'un peu plus de 10000 heures (pour les modèles
communs) et qui les destine plutôt à des produits jetables (téléphones
portable ou baladeur MP3 par exemple) ou à des produits qui ne sont pas
allumés 24/24h. Eh oui, un rapide calcul suffit pour se rendre à
l'évidence : 365 jours x 24 heures = 8760, durée de vie estimée d'un
peu plus d'un an. La technologie OLED ne serait donc pas, à
priori,
adaptée aux écrans TV ou d'ordinateur. Mais cette information est-elle
encore d'actualité ? On peut en effet lire
ici ou là que certains fabricants (Samsung et LG par exemple) proposent
des dalles OLED d'une durée de vie supérieure à 50000 heures. Un autre
inconvénient des écrans OLED est leur sensibilité à l'humidité, qui
imposent des procédés de fabrication plus "stricts". Et puis, il ne
faut pas oublier le frein au développement posé par le problème du
brevet (détenu par plusieurs sociétés dont Kodak). Malgré ces
inconvénients, les écrans OLED s'imposent de plus en plus. Même
l'amateur peut s'y initier, on en trouve des tous petits à bas prix
(j'en ai acheté un à 3
euros). Cela suffit pour se faire la main, et on se rend vite
compte que leur résolution et contraste élevé permettent d'afficher des
choses très lisibles sur une toute petite surface. Quant à leur
fragilité, je ne suis pas sûr qu'on soit vraiment plus embêté qu'avec
des écrans LCD...
Ecran OLED à matrice passive (PMOLED, PM = Passive Matrix)
Un
écran PMOLED est plus facile et moins coûteux à construire, mais
nécessite une tension de commande plus élevée pour disposer d'une
luminosité comparable à celle offerte par les écrans AMOLED (matrice
active). Un des inconvénients imposé par cette technologie est la
taille et/ou la résolution réduite des écrans, car plus on augmente le
nombre de lignes (ou de colonnes) et plus la tension de commande doit
être élevée. Il n'est donc pas surprenant de constater que les écrans
PMOLED sont de taille réduite (généralement inférieure à 3 pouces) et
qu'on les réserve aux petits appareils (affichage secondaire de
smartphone, lecteurs MP3, etc). Ce qui est bien suffisant pour
afficher quelques lignes de texte et des petits graphismes.
Ecran OLED à matrice active (AMOLED, AM = Active Matrix)
Un écran AMOLED est plus coûteux à
fabriquer car il comporte, en plus des pixels eux-même, des
condensateurs destinés à "garder en mémoire" les états d'activation de
chaque ligne. La tension requise pour activer les pixels est de ce fait
moindre, et cette simple caractéristique suffit pour
augmenter la durée
de vie de l'écran. De plus et grâce à cette astuce, l'écran AMOLED
consomme moins d'énergie et présente une vitesse de rafraichissement
accrue. Les écrans AMOLED, de taille plus conséquente, sont plutôt
destinés aux téléphones (écrans
principaux), caméscope et téléviseurs. Mais c'est aussi ce type d'écran
qui équipe certaines montres...
Alimentation d'un écran OLED
De
par sa nature même, un écran OLED perd de sa luminosité avec le temps.
Comme la résistance interne de la source lumineuse OLED s'accroit au
fil de son utilisation, une commande en tension ne permet pas de
compenser cette baisse de luminosité, qui du coup apparaît plus
rapidement. Avec une commande en courant, la baisse de luminosité est
moins perceptible et la "durée de vie" de l'écran s'en trouve allongée.
De plus, les variations de flux lumineux en fonction des conditions
extérieures (température) sont réduites. Bien sûr, ce mode de commande
en courant n'est pas du ressort de l'utilisateur final, c'est un choix
de conception mis en oeuvre par celui qui propose le produit "fini"
(nous, bricoleurs, n'avons à la limite pas besoin de connaître ce
détail).
Pilotage des écrans OLED
Il existe beaucoup d'écrans OLED sur le marché :
- de tailles différentes (par exemple 128x64, 128x96, 160x128, etc)
- avec ou sans le convertisseur DC/DC qui délivre la "haute tension"
- plus ou moins de broches de connexion, selon mode de dialogue
(parallèle ou série)
- avec ou sans contrôleur annexe épaulant le contrôleur écran
lui-même.
La plupart des
écrans OLED à commande série comportent moins de broches que les écrans
LCD à pilotage
parallèle 4 ou 8 bits. Les commandes peuvent
être envoyées en I2C ou SPI
(2 ou 3 fils, auxquels il convient d'ajouter les deux
fils d'alimentation masse et +V). Les écrans OLED associés à un
microcontrôleur
peuvent parfois être pilotés avec un seul fil (liaison série UART, un
exemple est donné plus loin).
Modes de liaison : comment s'y reconnaître ?
Si
vous disposez d'un écran OLED dont le mode de liaison vous échappe,
alors sans doute pouvez-vous localiser le nom des broches de
raccordement et voir ci-après à quoi elles correspondent.
- SCK ou SCL ou CLK = Horloge (CLOCK)
- SDA ou DATA ou DataIn ou MOSI = Données (DATA)
- DC ou D/C ou A0 ou SA0 = Command/Data (SA0 si liaison I2C)
- Cette broche doit être reliée à la masse si liaison 3 fils.
- CS = Chip Select (Selection/activation de boîtier), actif à
l'état bas - si liaison SPI
- RST ou RES
= RESET, actif à l'état bas. Cette broche peut parfois être reliée
directement au +V alim
(3,3 V en général), mais cela peut poser problème avec certains écrans,
lesquels réclament une cellule RC pour un démarrage correct
(condensateur à la masse et résistance au +V).
- G ou GND = 0 V, masse (GROUND)
- 3.3 ou 3.3V ou 3V3 ou 5 ou 5V ou V ou VDD = +V alim (+3,3 V
ou +5,0 V) - Nota 1
- VIN = + Alim (généralement +5,0 V) - Nota 1
Les signaux d'horloge (CLOCK) et de données (DATA) servent pour les
liaisons de type I2C ou SPI.
Nota
1 : certains afficheurs n'accèptent qu'une tension d'alim de 3,3 V,
d'autres comportent un régulateur de tension qui permet de les utiliser
directement sous une tension de 5 V ou plus. Pour ceux qui sont prévus
pour 3,3 V, pas question de les brancher directement sur un
microcontrôleur qui tourne sous 5 V. Il faut insérer un adaptateur
(convertisseur) de niveau, un CD4050 par exemple mais
de simples résistances peuvent suffire pour abaisser la
tension de 5
V à 3,3 V. Le régulateur de tension LM1086 peut être utilisé pour
délivrer un +3,3 V à partir d'un +5 V. Si l'écran possède deux broches
libellées 5V et 3V3, il y a de fortes chances pour qu'on puisse
l'utiliser avec une tension de 5 V, en laissant dans ce cas la broche
3V3 en l'air (inutilisée).
Bien
souvent dans les tutoriels destinés aux écrans OLED (pour Arduino,
Raspberry ou autres), vous trouverez comment raccorder l'écran OLED au
microcontrôleur. Cinq fils suffisent bien souvent !
Visualisation d'une lettre ou d'un graphique
L'écran OLED est
constitué de pixels (monochromes ou RVB) qu'il faut allumer pour
dessiner quelque chose. Ces pixels sont accessibles au moyen de
commandes spécifiques que l'on doit envoyer à l'écran, via une liaison
SPI ou I2C. Ces commandes qui sont assez nombreuses peuvent
dérouter facilement le débutant. Heureusement, il existe des routines
toutes faites (librairies) qui permettent de se simplifier la vie. Pour
pouvoir afficher des lettres sur un écran OLED, il faut avant tout
disposer d'une fonte (
font,
police de caractères). La fonte en question correspond au dessin
nécessaire pour représenter chaque lettre de l'alphabet. Il est
possible de disposer de plusieurs tailles de caractères, mais pour
commencer on peut se contenter d'une seule. Les photos ci-après
montrent différents afficheurs Digole en action.
Ces
afficheurs sont associés à un PIC 18F26K20 qui
comporte le code requis pour permettre une commande simplifiée. Lorsque
j'ai débuté dans le monde des écrans OLED, je me suis bien gratté la
tête. Et trouver un écran OLED équipé d'un uC épaulant le contrôleur
écran était une belle aubaine !
J'ai
eu l'occasion de travailler sur un autre écran avec commandes
simplifiées de 4D-System : le uOLED 160-G2 piloté par un processeur
GOLDELOX. Très simple d'emploi lui aussi, je l'ai fait fonctionner avec
de simples commandes UART. Et pour les autres écrans (Newhaven, Bolymin
et autres à base de SSD1306, SSD1351, SSD1353 ou SEPS525) j'ai du
mettre les mains dans le cambouis, goûtant aux
joies
des commandes d'initialisation et autres amuses-gueule.