Aide problème LCD I2C

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 !

ce qu'il y a souvent, c'est que ces modules LCD chinois ont souvent un cablage entre le PCF et l'écran qui est différent de celui de la librairie.

sur un que j'avais acheté, j'ai bidouillé une semaine avant de trouver le bon câblage pour corriger la lib.

je joins la lib qui fonctionne sur le mien, à tout hasard.

LiquidCrystal_I2C.zip (339 KB)

Bonjour !

J'ai eu le même problème (enfin je crois bien : les carrés blanc au début, et puis lorsque je téléverse le programme "hello word" je perd le contraste).
En fait, j'ai téléchargé une autre bibliothèque pour mon LCD 16x2 ici https://arduino-info.wikispaces.com/LCD-Blue-I2C
Après j'ai juste changé l'adresse qui était pour moi 0x20 (et non 0x27).

je sais pas si ça va aider quelqu'un mais je partage :slight_smile:

Bonne journée

[ RESOLU] Bonjours à tous,
je ré up... des p' tits soucis aussi!!! :fearful:
pour ma part, c' est un LCD bleu QAPASS 1602A et un PCF 8574P, donc adresse 0x20,
j' ai testé plusieurs bibliothèques avec IDE 0023, ( faut dire aussi que j' en ai marre de passer d' un ide à un autre). ]:smiley:
pour l' instant j' utilise celle de F Malpartida, aussi j' ai réglé le contraste de l' ecran avec un potard. ( qui fonctionne très bien).

Lorsque j' upload ( ou televerse si vous préférez ), il n' y a aucune réaction de l' écran. Je soupçonne les broches P0, P1, P2, P3 d' être en cause et peut-être la P5 ( où j' ai câblé la broche R/W de mon écran LCD ), d' ailleur, voici le câblage:
-résistance pulldown de 4.7k pour SCL & SDA
-PCF 8574p P0 -> lcd D4, P1 -> D5, P2 -> D6, P3 -> D7, P4 -> E, P5 -> RW, P6 -> RS.

Voici le code que j' utilise:

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

LiquidCrystal_I2C lcd(0x20,16,2);  // set the LCD address to 0x20 for a 16 chars and 2 line display

void setup()
{
  
  lcd.init();
  lcd.backlight();
  lcd.print("Hello, world!");
}
//int i=0;
void loop()
{
 
}

J' ai ouvert les libs pour essayer de comprendre le câblage à faire, mais je n' ai pas compris pour les broches RS R/W E où il fallait les câbler sur le PCF, pour ça que j' ai gardé le brochage " classique " que l' on trouve dans les tutos courant :~ (

@ bricofoy, j' ai essayé ta librairie, as-tu changé les brochages de ceux que j' utilise? ( car ça n' a pas fonctionné )
@ ArthurV, pour la bibliothèque LCD-Blue-I2C, il faut utiliser la LiquidCrystal_V1.2.1 ou une autre, désolé mais je rame un peu, et en fait le sens de ma question va vers est-ce que je peux revenir sur Arduino 1.0.5?

Voilà, merci à vous pour avoir lu ce post, en espèrant ne pas vous avoir blessé les yeux. 8)

édit: dans mon cas, il m' a juste fallu inverser les broches RS R/W E: voici le câble qui fonctionne pour moi: RS -> P6 ( 11 ), R/W -> P5 ( 10 ), E ->P4 ( 9 ).
Trop cool!