picaxe 20m2 et lcd 2004A en i2c...

spheris

Senior Member
Bonsoir,
je n'arrive pas à faire fonctionner un LCD 2004A avec interface I2C sur un 20m2
Il s'allume, mais affiche que des carrés. j'ai vérifié le rétro éclairage, tout est ok.
voici le code de test :

pause 1500 'wait for display to initialise
hi2csetup i2cmaster,%01110000,i2cslow,i2cbyte 'set up i2c master for LCD
main:
hi2cout (254,128,255) 'move to start of first line
pause 100 'wait for LCD to process data
hi2cout ("Hello123",255) 'output text
end

A0,A1,et A2 je les ai soudé respectivement à la verticale pour les mettre à la masse et ainsi avoir l'adresse %01110000.
Au démarrage il sintille, mais n'affiche que des carrés sur la 1ere et 3eme ligne.
Avez vous eu ce genre de souci?
Merci pour votre aide.
 

MGU

Senior Member
Bonjour,

Il n'y a pas de soucis. Les LCD I2C ne sont pas des LCD série, mais des LCD parallèle avec liaison I2C, et c'est totalement différent.
Si ça peut aider : http://electromag1.wifeo.com/lcd-i2c-expandeur-pcf8574.php

Et si tu veux un véritable LCD série , il y a le FRM010, plus performant que l'interface picaxe:

MM
 
Last edited:

spheris

Senior Member
merci pour ta réponse MGU, j'ai réussi à le faire fonctionner. Par contre j'ai une latence abominable pour afficher la totalité des 80 caractères. Ceci est dû probablement à la boucle for next.
N'y a-t-il pas moyen plutôt d'envoyer toutes la chaine complète par i2c?
Y-a-t-il cette latence avec le FRM010 ou l'AXE33 ?
 

MGU

Senior Member
De toute façon, le LCD n'affiche qu'un caractère à la fois et on envoie qu'un caractère à la fois.
Le basic picaxe est lent, il faut vérifier la fréquence de 32mhz.
Je n'ai pas comparé les vitesses lcd i2c et FRM010, mais le FRM010 est un pic programmé et probablement optimisé.
L'axe033 est à base de picaxe, donc plus lent que le FRM010

MM
 

spheris

Senior Member
J'ai modifié la frequence et cela marche à merveille un grand merci.
Juste petite précision:
Dans l'exemple il est précisé que pour aller à la ligne 1 c'est le code car=128
a la ligne 2 le code car=192,
et pour la ligne 3 ou 4 ?
J'ai essayé car = 256 ou car = 64 ou car=0, cela ne fonctionne pas.
 
Top