Bonsoir à tous,
Sur les conseils de Barbudor, j'ai réussi à faire fonctionner correctement mon écran CLCD Comfile via le bus I2C. Comme je disposais également d'un afficheur LCD03 (écran + clavier), j'ai entrepris de faire une interface logicielle pour le piloter à partir de l'Arduino.
La plus part des commandes fonctionnent mais l'affichage du texte est un peu surprenant.
Pour l'afficheur CLCD :
CLCDPrint("Bonjour"); donne à l'écran Bonjour via la fonction :
/*
Fonction destinée à afficher du texte sur l'afficheur CLCD Comfile
*/
void CLCDPrint(char *str) {
Wire.beginTransmission(0x00); //Adresse esclave 0x00 et Start
while(*str) //On arrête sur le caractère nul '\0'marqueur
//de fin d'une chaine de caractères en C
Wire.write(*str++); //Envoi les caractères et passe au suivant
Wire.endTransmission(); //Stop
}
Pour l'afficheur LCD03 :
CLCDPrint("Bonjour"); donne à l'écran onjour via la fonction :
/*
Fonction destinée à afficher du texte sur l'afficheur LCD03
*/
//void LCD03Print(char Texte[]) {
void LCD03Print(char *str) {
Wire.beginTransmission(0x63); //Adresse esclave 0x63 et Start
while(*str) //On arrête sur le caractère nul '\0'marqueur
//de fin d'une chaine de caractères en C
Wire.write(*str++); //Envoi les caractères et passe au suivant
// Wire.write(Texte);
Wire.endTransmission(); //Stop
}
Je n'arrive pas à comprendre pourquoi cette différence !!!
Si j'espionne le bus I2C je constate que tous les caractères de Bonjour sont transmis :
63> 42+ 6F+ 6E+ 6A+ 6F+ 75+ 72+
** B o n j o u r**
Par contre CLCDPrint(" Bonjour"); donne à l'écran Bonjour (en mettant un espace devant le B)
On pourrait croire que ce défaut de fonctionnement vient de l'afficheur mais l'utilisation d'un micro-contrôleur Cubloc donne un résultat correcte.
Si une personne à une idée sur ce dysfonctionnement, je suis preneur.
Merci pour votre aide
Icare