LCD I2C ne fonctionnant pas

Bonjour à vous communauté arduino, j'ai récemment décidé de plonger dans le monde des ardunos, et j'ai fait l’acquisition d'un arduino Mega 2560, et d'un lcd I2C.

Mais celui ci s'obstine à ne rien m'afficher lors-que je lui demande .

Voila le code que j'utilise :

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

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); 
void setup()
{
  
  lcd.begin (16,2);
  lcd.clear();
  
}
void loop()
{
  lcd.home (); 
  lcd.setCursor(0,1);
  lcd.print("Yolo"); 
  lcd.setCursor(2,1);
  lcd.print("Bitchez"); 

}

Broches SDA connectée et SCL aussi.

j'ai également joint une photo de mes librairies pour que vous puissiez voir si j'ai les bonnes.

Merci :wink:

Les 2 datées du 5/10 sont celles que j'ai rajouté pour rendre l’écran compatible

Capture.PNG

Il y a un sacré nombre de librairies LiquidCrystal_I2C sur le net.
Où as-tu trouvé la tienne?
Je trouve qu'il y a beaucoup d'arguments sur cette ligne

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);

par rapport aux exemples que j'ai pu voir.

Magicaldj:
..., et d'un lcd I2C.

bonjour
Il y a plusieurs adaptateurs faisant de l'I²C/LCD
il faut déjà connaitre le composant utilisé (ex PCF8574) pour trouver "la" bonne lib

déjà je suis etonné de l'include LCD.h

@ fdufnews
perso je trouve qu'il n'y en pas assez :grin:

avec mes adaptateurs (PCF8574) c'est sous cette forme

#include <Wire.h>  // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>



// set the LCD address to 0x27 
// 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);

hello
fais un test en remplaçant 0x27 par 0x3F

dfgh:
hello
fais un test en remplaçant 0x27 par 0x3F

bonjour
principe de base avec l'I²C , déjà passer un coup de scanner

Bonjour,
J'ai moi aussi un problème avec mon lcd 20x4 en i2c avec un PCF8574T adr 27 (par défaut).
Il semble ne pas réagir à ce que je televerse. Par principe, j'ai contrôlé avec le scanner, essayé le bout de code proposé par Artouste, ça ne fonctionne pas. Je suis au fond du lac.
Merci pour votre aide précieuse.

Bonjour,
Si le code proposé par Artouste ne donne rien, c'est que le problème est ailleurs.
Il faut vérifier le câblage, les pins utilisées et éventuellement les composants.
Montre nous le schéma utilisé et le câblaage que tu as fait.
@+

Zarb94:
Bonjour,
J'ai moi aussi un problème avec mon lcd 20x4 en i2c avec un PCF8574T adr 27 (par défaut).
Il semble ne pas réagir à ce que je televerse. Par principe, j'ai contrôlé avec le scanner, essayé le bout de code proposé par Artouste, ça ne fonctionne pas. Je suis au fond du lac.
Merci pour votre aide précieuse.

bonjour
si ton LCD est equipé avec un retroeclairage , il est déjà simple de voir si la librarie est fonctionnelle
faire qq backlight on et off.
attention aussi à aune chose , la gestion du contraste = ne pas oublier de regler le potentiometre sur le module I²C , la zone utile est faible.
copie de la lib I²C que j'utilise

programme de test simple avec qq backlight au reset

#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("ARTOUSTE ");   
  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 ) */

Voici le branchement.

Zarb94:
Voici le branchement.

bonsoir
au moins chez moi, le "visuel" n'est pas très ... intuitif 8)

C'est mieux là: