LCD SERIE ET PICAXE
Les afficheurs LCD HD44780 type 1602 et 1604 sont bien pratiques, comme en témoignent les pages de ce blog.
Mais les LCD parallèles ne sont pas très commodes à gérer, et même en mode 4bits, il faut au moins 8 câbles de liaison et la programmation est un peu lourde.
Les LCD série n'ont besoin que de 3 câbles, alimentation comprise et une ligne de programme suffit.
Etat des lieux des LCD proposés dans le commerce pour les applications Picaxe:
Module AXE 133 : 2x16c non rétroéclairé à 16,50 euros.
Si on a besoin d'une horloge (mais une horloge, il y en a à moins de 2 euros, ICI):
Module AXE 033 : 2x16c non rétroéclairé à 29,70 euros. avec I2C et horloge.
Module AXE 033 OLED mieux, dit-on, que le précédent à 33,80
Et un module graphique beaucoup plus cher...
Bref, rien de très réjouissant.
Alors qu'en tapant LCD 1602 sur eBay, on trouve des LCD 1602 rétroéclairés à 2 ou 3 euros, des LCD1604 et même des LCD2004 rétroéclairés blanc sur fond bleu pour moins de 7 ou 8 euros. Port gratuit.
J'en ai acheté plusieurs, ils fonctionnent tous très bien.
Une remarque toutefois:
Les LCD intègrent dans la CGROM une table de caractères contenant les caractères standards et des caractères spécifiques adaptés aux différentes langues.
Les LCD picaxes ont une table de caractères européenne avec les accentués français.
Les LCD à 3 euros sont chinois, avec une table de caractères chinoise.
Pour retrouver des accentués, il faut les programmer dans les 8 premiers caractères de la table (CGRAM), reprogrammables par l'utilisateur.
Reste donc à ajouter un petit adaptateur pour les transformer ces LCD en "rétroéclairés série".
Revolution Education nous montre l'exemple avec le module AXE 133 utilisant un 18M2 doté d'un firmware en open source.
Je n'aime pas le prix des 18M2, la position de leur alimentation, etc...
Un 14M2 en mode 4 bits prend trop de temps et n'a pas donné d'affichage correct mais pour 20ct de plus, le 20M2 fonctionne parfaitement ave un LCD en mode 8 bits.
Mise à jour 10/09/2012
Tous les tests fonctionnent lorsque le serout du programme "émetteur" provient d'un picaxe de la série M2.
Mais si on connecte l'adaptateur série sur un montage avec un picaxe 20X2, le même programme de test ne fonctionne plus correctement. Le serin de l'afficheur semble ne pas pouvoir avaler assez vite le flux rentrant. L'utilisation de pauses ne change pas la situation.
Une solution: remplacer le 20M2 de l'afficheur par un 20X2 et tout rentre dans l'ordre.
Il n'y a presque rien à modifier, sinon la directive "#picaxe 20M2" en début de programme. Il faut simplement la supprimer pour que le programme de l'afficheur accepte indifféremment des picaxe 20M2 ou des 20X2.
L'afficheur devient compatible avec tous les montages, quelque soit le picaxe utilisé.
Le prix du 20X2 est quasiment le même que le 18M2. Pas de regrets.
RÈGLE GÉNÉRALE:
Il faut laisser le temps nécessaire au traitement entre deux commandes d'affichage, utiliser des pauses si nécessaire, sinon on obtient n'importe quoi.
J'ai gardé l'essentiel du code open source en l'adaptant au typon et les possibilités du firmware AXE 133 d'origine sont conservées.
Le schéma:
Les caractères spécifiques sont définis dans la CGRAM au cours de l'initialisation.
Voici les 8 nouveaux venus avec leur numéro en CGRAM:
1 é
2 è
3 ê
4 à
5 ç
6 ù
7 ü
8 ë
|
Il était tentant de pouvoir taper un "é" sur le clavier azerty pour obtenir un "é" sur l'afficheur LCD;
Un "é" donne le caractère n° 233 de la table de caractères. il suffisait d'un test à la réception du code pour transformer ce 233 en 1. Hélas, le moindre ajout de test perturbe l'affichage. On bute ici sur la limite de vitesse d'exécution des picaxes.
Voici donc le programme donnant le texte affiché sur le LCD 1604 ci dessus;
(C'est une copie d'écran, je vous laisse corriger les fautes de frappes et les erreurs.)
Les caractères standards peuvent s'écrire entre guillemets, ils sont traduits automatiquement en codes caractères. Pour les accentués, il faut les remplacer par le numéro défini dans la CGRAM. C'est un peu moins lisible, mais c'est le prix à payer pour rester français (et c'est pas cher).
Justement, le prix:
6,55 euros sur ebay pour un LCD 2004, plus 3,55 euros de picaxe 20M2, ça fait un afficheur série de 4 lignes de 20 caractères rétroéclairé français à environ 12 euros tout compris.
Pour écrire où on veut, il faut positionner le curseur à l'endroit voulu avec ce tableau:
Exemple, la commande:
serout C.4,baud,(254,221)
positionne le curseur à la ligne 4, colonne 14
Dans les exemples précédents, la position du curseur et le texte sont dans deux "serout" différents, mais:
serout C.4,baud, (254,144,"coucou")
Ecrira coucou en ligne 3, colonne 1
Je ne sais pas comment fonctionne l'afficheur LCD d'origine AXE 133 avec un 18M2, mais avec le 20M2, le dernier test sur l'octet 255 fonctionne mal à la fréquence de 16MHz.
Pour utiliser cette option, il faut augmenter le vitesse de traitement à 32MHz.
En conséquence, la vitesse de transmission passe de 2400 à 4800 baud.
Test final
Voici le programme de test:
Il comprend du texte accentué, le message enregistré n°4, et la commande d'une diode par le port C.5 de l'afficheur.
Pour le LCD 2004 (payé 6,55 euros, reçu 15 jours après la commande dans une lettre airmail, port gratuit....?), il fonctionne très bien, mais la diode ne donne pas le réglage optimum du contraste. Le typon a été amélioré pour faciliter l'implantation du potentiomètre.
Les adresses du curseur sont un peu modifiées:
Voici le LCD 2004 série français |
Et l'adaptateur final à enficher sur le LCD la diode 4007 pourait être remplacée par un strap
|
Le pack complet est en téléchargement ICI
Ce pack mis à jour (14/08/12) comprend:
Le programme .bas à charger dans le 20M2 (ou le 20X2 en supprimant #picaxe 20M2)
Le typon au format .tci à utiliser avec TCI4.3.
Une première application avec un 1604 série est sur cette page.
MHz
Partager cette page
Pour être informé des derniers articles, inscrivez vous :