Bonjour,
Je viens d'acheter un module afficheur lcd 4x20 avec sont driver série chez lextronic http://www.lextronic.fr/P765-afficheur-4-x-20-caracteres-retro-eclaire-bleu.html
Les commandes pour le piloter sont de simple valeurs HEXA (cf doc page 7 http://www.lextronic.fr/~lextronic_doc/ELCD.pdf )
J'envoie donc ca :
Serial.begin(19200);
Serial.print(A3,BYTE); //efface le contenu de l'écran
Serial.print(01,BYTE);
delay(5000);
Serial.print(A1,BYTE); //défini la position du texte
Serial.print(00,BYTE);
Serial.print(A2,BYTE); // commande pour afficher une chaine de caractère ASCII
Serial.print("HELLO");
Serial.print(00,BYTE);
Ca marche pas ! j'ai tenté ca :
Serial.begin(19200);
Serial.print(0XA3);
Serial.print(0X01);
delay(5000);
Serial.print(0XA1);
Serial.print(0X00);
Serial.print(0XA2);
Serial.print("HELLO");
Serial.print(0X00);
Toujours rien avez vous des idées ? Merci
Grag38
April 28, 2011, 9:46am
2
As tu le convertisseur TTL<->RS232 comme indiqué dans le pdf (réalisation avec un MAX232 et 4 capas) ?
Si oui : Essaye d'intervertir le TX et RX pour vérifier.
sinon pour les commandes :
Serial.print(0xA0, BYTE);
me semble la bonne syntaxe.
Sinon essayer :
Serial.write(0xA0); etc...
As tu le convertisseur TTL<->RS232 comme indiqué dans le pdf (réalisation avec un MAX232 et 4 capas) ?
Non justement l'afficheur est en interface TTL. Il faut l'attaquer en 0 +5V.
Grag38
April 28, 2011, 11:27am
4
Ca devrait fonctionner alors...
Serial.print(0xA0, BYTE);
me semble la bonne syntaxe.
C'est effectivement la bonne syntaxe.
Serial.print(A1,BYTE);
le compilteur devrait te renvoyer une erreur disant que la variable A1 n'est pas déclarée
Serial.write(0xA0);
devrait envoyer la chaine 160 vers l'afficheur
Bonjours,
Je n'est jamais utilisé ce genre de lcd, par contre j'ai souvent utilisé des cubloc de comfile qui possède une option pour les contrôler.
Essaye ce bout de code pour voir:
void setup() {
Serial.begin(19200);
ELCD_initialize();
delay(200);
ELCD_Clear_LCD();
ELCD_Cursor_Position(0, 0);
ELCD_put_str("Hello World !");
}
void loop() {
}
/* Low Level ELCD routine */
void ELCD_initialize(){
Serial.print(0xA0, BYTE);
}
void ELCD_Cursor_OFF(){
Serial.print(0xA3, BYTE);
Serial.print(0x0C, BYTE);
}
void ELCD_Cursor_ON(){
Serial.print(0xA3, BYTE);
Serial.print(0x0E, BYTE);
}
void ELCD_Clear_LCD(){
Serial.print(0xA3, BYTE);
Serial.print(0x01, BYTE);
}
void ELCD_Cursor_Position(int x, int y){
Serial.print(0xA1, BYTE);
Serial.print(x, BYTE);
Serial.print(y, BYTE);
}
void ELCD_put_str(char *str){
Serial.print(0xA2, BYTE);
while(*str)
Serial.print(*str++);
Serial.print(0, BYTE);
}
void ELCD_put_ch(char ch){
Serial.print(0xA2, BYTE);
Serial.print(ch);
Serial.print(0, BYTE);
}
Tu devrais voir s'écrire le grand classique "hello world".
Merci skywodd le morceau de code que tu utilise marche aussi avec ce driver .
Merci a tous pour les infos