[Résolu] Porblème d'affichage LCD 20x4 I2C

Bonjour, je poste c sujet aujourd’hui car je commence à désespérer !!

J’ai acheté un LCD 20x4 avec son module I2C il y a peu et impossible de lui faire afficher quelque chose.
Voici le code qui ne marche pas et je ne comprend pas pourquoi il doit y avoir un problème avec la librairies pourtant j’ai regardé et je ne vois vraiment rien donc je fais appel à vous pour m’aider ! :wink:

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4) ;

void setup() 

lcd.init() ; 
lcd.cursor_on() ;
lcd.blink_on() ;
lcd.backlight() ;
lcd.setCursor(0,0) ;
lcd.print("Hello, world !") ;
lcd.setCursor(4,2) ;
lcd.cursor_off() ;
lcd.blink_off() ;

void loop(){
  
}

Et la première erreur qui s’affiche est celle ci :

LCD_try:5: error: invalid conversion from 'int' to 't_backlighPol' [-fpermissive]

 LiquidCrystal_I2C lcd(0x27,20,4) ;

J’espère que vous pourrez m’aidez ! A plus

Bichongri:
Bonjour, je poste c sujet aujourd'hui car je commence à désespérer !!

J'ai acheté un LCD 20x4 avec son module I2C il y a peu et impossible de lui faire afficher quelque chose.

bonjour
Il semble y avoir pas mal de problemes avec certaines libs I²C/LCD (basées sur du PCF8574/A)
j'ai aussi pas mal cherché "du fiable" au debut
perso j'utulise celle ci sans aucun soucis

attention à bien nettoyer :
// Get the LCD I2C Library here:
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.

Bonjour,

Quel type de carte ?
Quel afficheur?
Quelle interface I2C ?

Comme le dit Artouste, il y a des problèmes avec certaine libs et des incompatibilités avec certaines cartes.

J'ai déjà essayé avec cette librairie pourrais tu mettre un exemple de ton programme car même avec les exemples fournis je n'arrive pas à faire fonctionner le LCD. Le programme se téléverse bien mais rien ne s'affiche à l'écran ! La ligne 1 et 3 sont remplies de carrées pleins et rien ne s'affiche.

J'utilise une carte UNO, un afficheur LCD 20x4, il n'y a pas l'air d'avoir vraiment de référence à part 2004A et une interface I2C pour display 20x4.

Bichongri:
J’ai déjà essayé avec cette librairie pourrais tu mettre un exemple de ton programme car même avec les exemples fournis je n’arrive pas à faire fonctionner le LCD. Le programme se téléverse bien mais rien ne s’affiche à l’écran ! La ligne 1 et 3 sont remplies de carrées pleins et rien ne s’affiche.

J’utilise une carte UNO, un afficheur LCD 20x4, il n’y a pas l’air d’avoir vraiment de référence à part 2004A et une interface I2C pour display 20x4.

photo de ton adaptateur I²C/LCD ?

test rapide avec ce que j’ai sous la main

#include <Wire.h>  // Comes with Arduino IDE
// Get the LCD I2C Library here: 
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads
// Move any other LCD libraries to another folder or delete them
// See Library "Docs" folder for possible commands etc.
#include <LiquidCrystal_I2C.h>

/*-----( Declare Constants )-----*/
//none
/*-----( Declare objects )-----*/
// set the LCD address to 0x20 for a 20 chars 4 line display
// Set the pins on the I2C chip used for LCD connections:
//                    addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address
long sec=0;
  long pm=0;
byte ad;
/*-----( Declare Variables )-----*/
byte c0[8] = {17,10,17,21,21,17,10,17};
byte c1[8] = {31,17,17,17,17,17,17,31};
byte c2[8] = {25,21,19,17,19,21,25,0};
byte c3[8] = {3,3,4,9,18,4,24,24};
byte c4[8] = {24,24,4,18,9,4,3,3};
;
//none

void setup()   /*----( SETUP: RUNS ONCE )----*/
{
  Serial.begin(9600);  // Used to type in characters

  lcd.begin(20,4);         // initialize the lcd for 20 chars 4 lines and turn on backlight
  lcd.createChar(0, c0);
  lcd.createChar(1, c1);
  lcd.createChar(2, c2);
  lcd.createChar(3, c3);
  lcd.createChar(4, c4);
 

// ------- Quick 3 blinks of backlight  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
  lcd.backlight(); // finish with backlight on  
  
//-------- Write characters on the display ----------------
// NOTE: Cursor Position: CHAR, LINE) start at 0  
lcd.home ();
  lcd.setCursor(3,0); //Start at character 4 on line 0
  lcd.print("Hello, world!");
  delay(1000);
  
  lcd.setCursor(0,2);
  lcd.print("20 by 4 Line Display");
  
  delay(2000);
  lcd.clear();
// Wait and then tell user they can start the Serial Monitor and type in characters to
// Display. (Set Serial Monitor option to "No Line Ending")
  lcd.setCursor(0,0); //Start at character 0 on line 0
  lcd.print("TOP LCD 20X4 ");
  lcd.setCursor(0,3);
  lcd.print("BICHONGRI ");   
  lcd.setCursor(2,1); 
  lcd.print("Ligne 2 ");
  lcd.write(byte(0));
  lcd.write(byte(1));
  lcd.write(byte(2));
  lcd.write(byte(3));
  lcd.write(byte(4));
  lcd.write(byte(3));
  lcd.write(byte(4));
  lcd.write(byte(3));
  lcd.write(byte(4));
  lcd.setCursor(0,2);
  lcd.print("        Ligne 3 ");   
  


}/*--(end setup )---*/


void loop()   /*----( LOOP: RUNS CONSTANTLY )----*/
{
  {
    // when characters arrive over the serial port...
    if (Serial.available()) {
      // wait a bit for the entire message to arrive
      delay(100);
      // clear the screen
      lcd.clear();
      // read all the available characters
      while (Serial.available() > 0) {
        // display each character to the LCD
        lcd.write(Serial.read());
      }
    }
    if (pm<= millis()-100) {
    sec=sec + 1;
    lcd.setCursor(14,3);
   
  lcd.print(sec);
  ad=sec % 20;
  lcd.setCursor(ad,2);
  lcd.print(" >");
  pm=millis();  
    }
  }

}/* --(end main loop )-- */


/* ( THE END ) */

La photo de mon module I2C. Et en essayant ton code cela ne marche pas non plus le code se téléverse bien sur ma carte mais rien à l’écran et et il me met juste en orange les erreurs suivantes :

Plusieurs bibliothèque trouvées pour "LiquidCrystal_I2C.h"
Utilisé : C:\Users\basti\OneDrive\Documents\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal
Non utilisé : C:\Program Files (x86)\Arduino\libraries\NewliquidCrystal

20160626_163013[1].jpg

Bichongri:
La photo de mon module I2C. Et en essayant ton code cela ne marche pas non plus le code se téléverse bien sur ma carte mais rien à l'écran et et il me met juste en orange les erreurs suivantes :

Plusieurs bibliothèque trouvées pour "LiquidCrystal_I2C.h"

tu n'a pas fait le ménage 8)
voir ma reponse en #2

hello
testes avec 0x3F au lieu de 0x27

Je viens de le re-téléverser en mettant la librairie et en enlevant les autres et toujours rien !

Les erreurs mais pas en orange donc je pense pas que ça soit grave :

Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX

Le croquis utilise 6 422 octets (19%) de l'espace de stockage de programmes. Le maximum est de 32 256 octets.
Les variables globales utilisent 586 octets (28%) de mémoire dynamique, ce qui laisse 1 462 octets pour les variables locales. Le maximum est de 2 048 octets.
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones : C:\Users\basti\OneDrive\Documents\Arduino\libraries\arduino_tones
Bibliothèque non valide trouvée dans C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX : C:\Users\basti\OneDrive\Documents\Arduino\libraries\__MACOSX

Et aussi l'image de ce que m'affiche le LCD dès que je le branche au 5V et qui ne change jamais !

20160626_165848[1].jpg

dfgh:
hello
testes avec 0x3F au lieu de 0x27

vu la photo , je ne pense pas que ce soit un probleme d'adresse
ceci etant ça ne coute rien de passer un coup de scanner I²C
déjà ça permettra de lever le doute sur l'I²C en lui meme

Je n'avais pas vu le message

hello
testes avec 0x3F au lieu de 0x27

Et je vous remerci énormement je comprend pas pourquoi l'adresse doit changer mais merci merci merci encore je commencais à vraiment désespérer :smiley:

**Merci à tous pour vos réponses et pour votre temps. ** :wink: :wink: :wink: