Pages: [1]   Go Down
Author Topic: LCD 4x20, affichage des lignes  (Read 1190 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je dispose d'un afficheur 4 lignes, 20 caractères(http://www.sure-electronics.net/mcu,display/DE-LM005.pdf). J'utilise la librairie arduino 4 bits, ca fonctionn bien, maintenant  smiley-wink

Mais, il y a un mais, les lignes s'affichent bizarrement.

Par exemple, pour la phrase "la prairie est verte. Les oies sont belles et le coq chantent", ca donne :

chantent.xxxxxxxxxxxx
la prairie est verte. Les
xxxxxxxxxxxxxxxxxxxx
oies sont belles et le coq

les x etant rien du tout, du "blanc".

Pourquoi est-ce ainsi ?

Merci pour votre aide.
Logged

Sophia-Antipolis (06)
Offline Offline
God Member
*****
Karma: 4
Posts: 618
Rejoignez le club !
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

quel est le code qui te permet d'envoyer tout d'un coup ? je n'ai pas l'habitude d'envoyer tout le texte, d'habitude je spécifie à la librairie où je veux que le texte s'affiche.


Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'écris just :

lcd.print("la phrase que je veux afficher");

comment je doi faire pour spécifier la facon dont je veux que cela s'affiche ?

merci pour votre aide.
Logged

France - Pays de la Loire
Offline Offline
Full Member
***
Karma: 0
Posts: 176
Bidouilleur du dimanche ... et des autres jours de la semaine ...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir,

La commande des afficheurs se fait en envoyant les codes des caractères à des adresses.
A chaque ligne correspond en general une banque mémoire ( adresse 00h pour la 1ère ligne, 40h pour la 2ème, etc ...).

Pour ton problème, j'ai comme l'impression que la routine que tu utilises se mélange un peu les pinceaux ... ou bien, n'est pas adaptée à ton afficheur ( nb ligne et/ou nb de caractères différent ).

Je cherche sur le net une datasheet un peu plus complète de ton afficheur car celle que tu as est un peu légère.
Elle permettra sans doute d'y voir plus clair.

Je te transmets les resultats si je trouve quelque chose.
A+  
Logged

Britanny
Offline Offline
Full Member
***
Karma: 0
Posts: 233
Mais vrai, j'ai trop pleuré, toute lune est atroce
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ben sinon tu découpes ta chaine pour correspondre.

les lcd affichent comme ça.
ligne 1-> ligne 3
ligne 2 -> ligne 4

Code:
// ecriture des lignes
  lcdGotoXY(1, 0);
  strncpy(ligne,chaine,16);
  if (strlen(ligne) >= 16) {
    ligne[16] = '\0';
  }
  // ecrit la ligne
  printStringLCD(ligne);
  delay(100);
  *ligne=" ";
  for (i=2; i<=4;i++) {
    lcdGotoXY(i, 0);
    strncpy(ligne,&chaine[16*(i-1)],16);
    if (strlen(ligne) >= 16) {
      ligne[16] = '\0';
    }
    // ecrit la ligne
    printStringLCD(ligne);
    delay(100);
    *ligne=" ";
  }

j'avais fait un truc comme ça... (un peu de C et de pointeurs)

si ça peut aider :-[
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 207
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, merci je vais tenter ca et vous tient au courant.
Logged

Pages: [1]   Go Up
Jump to: