Aide problème LCD I2C

bonjour albertrand

Voici le code que j'utilise.

//Compatible with the Arduino IDE 1.0
//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
 
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display
 
void setup()
{
  lcd.init();                      // initialize the lcd 
  
  // Print a message to the LCD.
  lcd.backlight();
  lcd.print("Hello, world!");
}
 
void loop()
{
}

J'ai bien "lcd.backlight();"

Je teste debuit le debut avec ce Sketch.

Je suis exactement dans la même situation que toi, je possède le même écran LCD qui a perdu son rétro-éclairage et sur lequel je suis incapable d'afficher quoi que ce soit.
Si quelqu'un saurait nous sortir de là :slight_smile:

Bonsoir fullarmor

As-tu testé le Scan I2C qu'a indiquée albertrand.

http://todbot.com/blog/2009/11/29/i2cscanner-pde-arduino-as-i2c-bus-scanner/

Teste-le et dis moi l'adresse que le scan trouve.

Bonsoir,
Je n'ai malheureusement pas réussi à le faire fonctionner, j'ai entré le code trouvé sur le lien mais il ne compile pas. Comment faut-il s'y prendre ?
Sinon j'ai entendu qu'il y avait possibilité de se servir d'un écran LCD I2C rien qu'avec la bibliothèque Wire.

Salut,

En effet ce sketch ne compile pas chez moi non plus avec Arduino v1.0.2. Il faut désormais passer un 4e argument à la fonction twi_writeto. Ci-joint le sketch corrigé.

Sinon il est tout à fait possible de se passer de la bibliothèque LCD I2C en tapant directement sur la bibliothèque Wire. Mais il y aura forcément plus de travail puisque tu devras réaliser le pilotage du PCF8574 et du LCD.

++

twi_scan.ino (1.91 KB)

Merci beaucoup pour ce sketch corrigé, je trouve une valeur à addr 39. Comment savoir à quelle adresse cela correspond ?
Savez-vous quelle doit êtres la valeur des résistances de pull-up ?

fullarmor:
Savez-vous quelle doit êtres la valeur des résistances de pull-up ?

Datasheet...

Bonsoir fullarmor

J'ai lu sur le livre de Christan Tavernier que la valeur est 4,7 K en general pour le bus I2C.
Sur d'autre site c'etait 10K,j'ai fais le teste avec 10k,4.7 et 2.2k,cela n'a rien changer. :frowning:

fullarmor:
Merci beaucoup pour ce sketch corrigé, je trouve une valeur à addr 39. Comment savoir à quelle adresse cela correspond ?

C'est l'adresse de l'écran Lcd sur le bus I2C (ou plus précisément celle du PCF8574).

Bonsoir nolimit60
Merci je pense que je vais me procurer des 10k pour le montage.
En ce qui concerne l'adresse de l'écran il n'y a que lorsque je téléverse le programme sur la carte avec l'adresse normalement correct (0x27) que l'écran s'éteint. Si je change d'adresse il n'y a strictement aucune réaction donc l'adresse est probablement bonne, le problème doit venir d'ailleurs.

J'ai lu sur le livre de Christan Tavernier que la valeur est 4,7 K en general pour le bus I2C.
Sur d'autre site c'etait 10K,j'ai fais le teste avec 10k,4.7 et 2.2k,cela n'a rien changer. smiley-sad

Wikipédia pour commencer

Norme I2C pour continuer:
http://www.nxp.com/documents/user_manual/UM10204.pdf

je trouve une valeur à addr 39. Comment savoir à quelle adresse cela correspond ?

Cette valeur est du DECIMAL et en HEX cela correspond a 0x27.

nolimit60:

je trouve une valeur à addr 39. Comment savoir à quelle adresse cela correspond ?

Cette valeur est du DECIMAL et en HEX cela correspond a 0x27.

En effet, j'ai omis de le préciser dans mon message...

Petite question : le branchement de vos PCFxxxx sur l'écran corresponde avec la librairie
LiquidCrystal_I2C.
Car moi j'ai réaliser des pcb avec des PCF8574 et sur une carte (erreur de ma part) j'ai brancher le transitor du backlight sur une autre broche du PCF.
Peut-être quand testant les broches une par une on peut trouver la broche de commande du backlight.

PS: si tu vois l'adresse avec le scanner I2C tes résistances son bonnes.

Bonjour

Sur mon module, je n'ai pas de transitor.
Il est commande par le PCF8574T.

Bonjour,

nolimit60:
...
Il est commande par le PCF8574T.

D'autres ont galèré aussi, avec le 8574T et le backlight et les librairies

http://arduino.cc/forum/index.php/topic,106655.15.html
2°page, non francophone!
Mais LCD d'un autre type, adresse différente!!

mais comme c'est "solved" ça peut (peut-être) vous aider, :wink:

Bonjour,
Merci pour le lien papybricol mais malheureusement je n'ai pas réussi à résoudre mon problème.
Par contre avec un code très légèrement modifié j'arrive à faire se rallumer le rétro-éclairage qui n'aurait jamais du s'éteindre avec la fonction lcd.backlight().
Je ne sais pas si tu arriveras à allumer le tien aussi nolimit60, voici le code:

#include <LiquidCrystal_I2C.h>
#include <Wire.h>

LiquidCrystal_I2C lcd(0x27,16,2); 

void setup() 
{
  lcd.init(); 
  lcd.cursor_on();
  lcd.blink_on();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.cursor_off();
  lcd.blink_off();
}

void loop()
{

}

Il ne manque plus que le plus important: les caractères :slight_smile:
Ajuster le potentiomètre qui se trouve à l'arrière du lcd pourrait-il-servir à quelque chose.

Remarque: Si je penche mon écran LCD pour voir en dessous des carrées noir, je peux apercevoir un 0 dans l'angle supérieur droit.

Tu as pû avancer ? Je viens de recevoir le mien je vais tester demain. Par contre je viens de me rappeler un truc : sur la mienne derrière il y a des pastille "prêtes à souder" A B C, il me semble avoir vu quelque part que c'est la qu'on choisit par quel protocole de communication on passe.

Bonjour B@tto

Non cela ne marche toujours pas , le problème vient sûrement du circuit imprimer car j'ai dessoudé le PCF8574, il est monté sur une autre plaque que j'ai fait et il fonctionne bien.

Pour les prêts à souder, je n'en n'avais pas sur ma plaque.
J'espère que tu n'auras pas autan de problème que moi.

À bientôt

Non en effet moi pas de soucis ça a marché direct !