Ecran LCD 16*2

Bonjour à tous.
Après des heures de recherches (3) sans succé, je décide de m’adresser à vous.
J’ai acheté un kit qui contient, en autre, afficheur LCD 16*2. Il n’y a aucune information technique dans le kit.
Cet afficheur LCD est relié à un système I2c.

Le problème, c’est que je ne sais pas comment l’utiliser. J’ai regardé sur Internet, il y avait très peu de chose à ce sujet, mais aucune ne fonctionnait.

Pouvez vous donc m’indiquer le code à écrire pour afficher quelque chose.

Merci

Bonsoir,

Nathanmart: Après des heures de recherches (3) sans succé, je décide de m'adresser à vous. J'ai acheté un kit qui contient, en autre, afficheur LCD 16*2. Il n'y a aucune information technique dans le kit. Cet afficheur LCD est relié à un système I2c.

Etonnant que tu n'aies rien trouvé sur le net car c'est un classique dans le monde arduino. Un lien sur ton kit serait le bienvenue.

Nathanmart: Le problème, c'est que je ne sais pas comment l'utiliser. J'ai regardé sur Internet, il y avait très peu de chose à ce sujet, mais aucune ne fonctionnait.

le premier lien trouver sur le net lcd i2c

D'après la photo aucun pont n'est mis pour les adresses. Un petit scan sur le bus i2c te permettra de connaître l'adresse utilisée par le module. @+

Bonsoir, j’ai suivi toutes les indications, j’ai fait le scan de bus i2c, j’ai tester le code exemple en modifiant bien l’adresse du port, mais cela ne fonction, l’écran se met juste à clignoter.

Re,

Nathanmart: Bonsoir, j'ai suivi toutes les indications, j'ai fait le scan de bus i2c, j'ai tester le code exemple en modifiant bien l'adresse du port, mais cela ne fonction, l'écran se met juste à clignoter.

Quand tu dis que l'écran se met juste à clignoter cela veut dire quoi? L'affiche clignote avec le texte ou quoi ?

Rien ne s'affiche, c'est l'éclairage led qui clignote.

bonjour, si tu mettais une photo de ton montage et le code utilisé.

Bonjour,

Le lien du kit: http://www.lextronic.fr/P38570-ensemble-dextension-expert.html

Le code:

#include "Arduino.h"
#include "Wire.h"
#include "lcd_I2C.h"
 
LCD_I2C lcd(0x3F, 2, 16);
 
void setup()
{
  lcd.begin();
}
 
void loop() {
        
         lcd.println(F("Const char in flash"));
}

Photo du resultat en pièce jointe.

Le SDA et le SDL de l’écran branché sur le SDA et le SDL de l’arduino.

J’ai alors testé ce code:

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

#define I2C_ADDR    0x3F // <<----- Add your address here.  Find it from I2C Scanner
#define BACKLIGHT_PIN     3
#define En_pin  2
#define Rw_pin  1
#define Rs_pin  0
#define D4_pin  4
#define D5_pin  5
#define D6_pin  6
#define D7_pin  7

int n = 1;

LiquidCrystal_I2C  lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

void setup()
{
  lcd.begin (16,2); //  <<----- My LCD was 16x2

  
// Switch on the backlight
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
lcd.setBacklight(HIGH);
lcd.home (); // go home

  lcd.print("---F8ASB.COM---");  
   lcd.setCursor (0,1);
   lcd.print("    Le Blog    "); 
}

void loop()
{

}

Mais l’IDE me donne ce message d’erreur:

Arduino : 1.6.13 (Windows 7), Carte : "Arduino/Genuino Uno"

C:\Users\Nathan\Desktop\Nathan\Autre\Arduino projets\Code\APFD_Chapter7_ArduinoClock_LCDTester\APFD_Chapter7_ArduinoClock_LCDTester.ino:2:17: fatal error: LCD.h: No such file or directory

 #include <LCD.h>

                 ^

compilation terminated.

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

Ce rapport pourrait être plus détaillé avec
l'option "Afficher les résultats détaillés de la compilation"
activée dans Fichier -> Préférences.

Je ne sais vraiment pas quoi faire.

l'I2C se trouve sur pins A4 A5 sur arduino et non comme tu le connecte en 12-13 on dirait gnd ==>gnd vcc==> 5v SDA==> A4 SCL===> A5

Toujours aucun résultats. Je ne sais pas si je vais y arriver un jour...

Bonjour,
Et les résistances de pullup sont-elles présentes ?

Nathanmart: Bonsoir, j'ai suivi toutes les indications, j'ai fait le scan de bus i2c, j'ai tester le code exemple en modifiant bien l'adresse du port, mais cela ne fonction, l'écran se met juste à clignoter.

bonjour Si le retroeclairage clignote , déjà ça indique que la liaison I²C fonctionne. Tu a regler le contraste des caracteres avec le potentiometre de reglage du module I²C ? la marge de manoeuvre est restreinte.

hello
d’ou sort ta librairie?

peux tu faire un test avec celle ci en lançant le prg “hello word” des exemples:

fichiers, exemples, liquidCrystal_I2C, “helloword”

sans oublier de mettre la bonne adresse

LiquidCrystal_I2C.zip (7.95 KB)

Le croquis à bien été téléversé mais rienne se passe. Il y a toujours les rectangles sur la première lignne.

Icare, que veut tu dire par "Et les résistances de pullup sont-elles présentes ?"

dfgh: hello d'ou sort ta librairie?

peux tu faire un test avec celle ci en lançant le prg "hello word" des exemples:

fichiers, exemples, liquidCrystal_I2C, "helloword"

sans oublier de mettre la bonne adresse

J'ai installer cette bibliothèque et j'ai compilé l'exemple avec la bonne adresse, mais cela ne fonctionne toujours pas...Les carré de la première ligne sont toujours allumés. Sinon,petite question. Pourquoi je doit brancher les broches SDA et SCL de mon afficheur sur les et A4 et A5 alors que j'ai des broche SDA et SDL sur l'arduino.

donc ce n’est pas un arduino uno
A4-5 sont l’I2C sur un arduino uno

charge ce code et colle le résultat dans ta réponse
0x3F me parait zarbi

#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("\nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknow error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices found\n");
  else
    Serial.println("done\n");
 
  delay(5000);           // wait 5 seconds for next scan
}

@infobarquee: je confirme que 0x3F est possible, j'en ai

dfgh:
@infobarquee:
je confirme que 0x3F est possible, j’en ai

j’en ai jamais eu et pourtant quelques un sont passés entre mes mains, mais bon, je me coucherais moins idiot ce soir :slight_smile:

J’ai fait le scan et c’est bien 0X3f.
Et c’est bien une arduino uno, acheté chez lextronic.

Photo en pièce jointe.

J’ai testé ce code:

#include <LiquidCrystal_I2C.h>

#include <Wire.h>

LiquidCrystal_I2C (0x3F,16,2);

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.print("victoire") ;
  delay(1000) ;
  lcd.cursor_off() ;
  lcd.blink_off() ;
}
void loop()
{}

Mais il me met un message d’erreur sur la ligne “LiquidCrystal_I2C (0x3F,16,2);”:

Arduino : 1.6.13 (Windows 7), Carte : "Arduino/Genuino Uno"

HelloWorld:5: error: expected unqualified-id before numeric constant

 LiquidCrystal_I2C (0x3F,16,2);

                    ^

HelloWorld:5: error: expected ')' before numeric constant

C:\Users\Nathan\Documents\Arduino\HelloWorld\HelloWorld.ino: In function 'void setup()':

HelloWorld:11: error: 'lcd' was not declared in this scope

   lcd.init();

   ^

exit status 1
expected unqualified-id before numeric constant