probleme adresse lcd I2C

bonsoir
débutant sur arduino , je commence à bafouiller un peu de programmation et sur un projet j’ai besoin d’utilice un écran lcd 16x2c I2C avec un arduino uno , je me suis procurer cela chez gotronic et je suis confronter à un probleme d’adresse , j’ai téléverser le programme “i2c_scanner” que l’on peut trouver sur le site arduino

 --------------------------------------
// i2c_scanner
//
// Version 1
//    This program (or code that looks like it)
//    can be found in many places.
//    For example on the Arduino.cc forum.
//    The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
//     Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26  2013
//    V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
//    by Arduino.cc user Krodal.
//    Changes by louarnold removed.
//    Scanning addresses changed from 0...127 to 1...119,
//    according to the i2c scanner by Nick Gammon
//    https://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
//    As version 4, but address scans now to 127.
//    A sensor seems to use address 120.
// Version 6, November 27, 2015.
//    Added waiting for the Leonardo serial communication.
// 
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//

#include <Wire.h>


void setup()
{
  Wire.begin();

  Serial.begin(115200);
  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("Unknown 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
}

et sur le moniteur série j’ai :

Scanning…
No I2C devices found

en faisant des recherche sur le net j’ai pu voir que l’on pouvait changer la vitesse des baud de 9600 en 115200 , j’ai testé et toujours le même résultat . sur le site de GOTRONIC il y a un programme pour différencier 2 adresses possible 0x27 et 0x3F et qui ne fonctionne pas .

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 
 
//----- Adressage matériel ----- 
// En cas de non fonctionnement, mettez la ligne 8 en 
// commentaire et retirez le commentaire à la ligne 9. 
 
LiquidCrystal_I2C lcd(0x27, 20, 4);
//LiquidCrystal_I2C lcd(0x3F,20,4); 
 
void setup() {   lcd.init();
 // initialisation de l'afficheur 
} 
 
void loop() {   lcd.backlight();   // Envoi du message   lcd.setCursor(0, 0);   lcd.print(" Go Tronic");   lcd.setCursor(0,1);   lcd.print(" I2C Serial LCD");
 }

merci pour vos retours
jluc

Toujours la même histoire.

Comment obtenir de l'aide sans fournir les renseignements nécessaire ?

  • schéma de câblage ?
  • carte ARDUINO (ou autre) utilisée

j'ai procédé comme indiqué sur le pdf avec un arduino uno

jluc

j’ai lu le post qu’a pu faire KAMMO sur tuto et j’ai hélas pas trouvé ma solution ,j’ai testé avec 3 ecrans lcd , petite info j’ai que la 1ere ligne qui apparait , le rétroéclairage fonctionne bien , les soudures sur kes 3 écran me paraissent saines.

petite info j’ai que la 1ere ligne qui apparait

C’est à dire ? des rectangles blancs ou du texte ?
Le problème avec I2Cscanner est-il résolu ?

D’où vient ce LCD ?

bonjour
c'est des rectangle blanc ,pour ce qui est de la provenance j'ai fait venir de chez gotronic il y a un estampillage "qapass" et une jolie étiquette "joy-it" collé à coté ,et j'en ai un autre lcd pur produit chinois avec le meme estampillage " qapass" mais lui il n'a pas d'étiquette de collé . :o

j'aurais bienfait une photo pour vous montrez les 2 écrans lcd , mais je vois pas trop la manip à faire :-*

Un lien sur le site d'achat serait préférable à une photo.

carte arduino uno à 19,50

https://www.gotronic.fr/art-carte-arduino-uno-12420.htm
https://www.gotronic.fr/art-afficheur-lcd-i2c-2x16-caracteres-25650.htm

voila les produits achetés

je viens de découvrir une bizarrerie de l'électronique ; j'ai rebrancher tout comme hier pour me confirmer que j'avais pas fait de bêtises , avant de téléverser je regarde dans outils je valide carte arduino uno et le port avait changer je ne suis plus en port com12 mais en com 10 et je suis certain d'etre sur la bonne prise usb bon je valide , téléversement et cela fonctionne .
attendez ce n'est pas fini je ais un deuxieme montage a l'identique du premier la prise usb n'a pas bouger et je passe en com 12 et bien sur cela ne fonctionne pas ??????
donc c'est une reconnaissance des ports COM qui me fait la misère , comment y remédier ?
si vous avez des idées je suis preneur
jluc

A partir du moment où le chargement se passe bien, cela ne peut pas être un problème de COM.

Il me semble que Windows identifie les périphériques USB et leur réattribue le même COM à chaque fois.

Si l'un des deux ne fonctionne pas c'est que tu as un problème de branchement.

et portant j'utilise le meme cable sur la meme prise usb , dés que je change d'arduino je passe du com 10 au com 12 , suite de l'aventure , normalement une fois le téléversement fait, le programme reste en place sur la carte , si je débranche et que je le branche quelques minutes plus tard je dois voir inscrit sur l'écran lcd "gotronic" et bien l'écran s'allume mais plus d'inscription .
je pense que j'ai été marabouter :grinning: :grinning: :grinning:

dés que je change d'arduino je passe du com 10 au com 12

Comme je le dis : Il me semble que Windows identifie les périphériques USB et leur réattribue le même COM à chaque fois. A chaque ARDUINO son port de COM.

"le programme reste en place sur la carte , si je débranche et que je le branche quelques minutes plus tard je dois voir inscrit sur l'écran lcd "gotronic" et bien l'écran s'allume mais plus d'inscription ."

quand le croquis est flashé, je ne vois pas en quoi le changement de com ait une importance, la prise usb sert juste d'alim 5 volts
cable usb foireux ? un coup çà marche un coup çà marche pas ?
ou il y a une information qui manque

bonjour
j'ai trouvé la cause qui faisait que l'écran s'allume , ne s'allume pas , s'affiche ou pas , je suis tout honteux de dire cela et pourtant cela provenait des cable de liaison entre arduino et le lcd , j'ai testé la continuité et effectivement c'était plus que aléatoire , je me suis fier à mon matériel tout neuf et je me suis fait couillonner , quoiqu'il en soit cette mésaventure m'a permis d'avancer dans la compréhension de la programmation .

Ce n'est pas une question de programmation, mais une bizarrerie du matériel.

Par contre, quelque chose m'intrigue:

vous utilisez un scanner I2C qui m'a toujours donné satisfaction -quitte à m'obliger à revoir mon câblage- , et je ne sais toujours pas pas si votre afficheur LCD est détecté ou pas?

hello

idem pour le scan: il fonctionne.

à tout hasard:

il m'est arrivé d’être obligé de croiser les fils A4 et A5 pour lire l'adresse.

comme adresse, j'ai déjà eu: 0x26, 0x27, 0x3E, 0x3F.

pas claires tes explications:
un coup tu dis que tu ne trouves pas l'adresse puis qu'il affiche "gotronic", puis qu'il ne l'affiche plus...

ton fil foireux t'as probablement empêché de lire l'adresse avec le scan

si tu as l'adresse et que tu ne parviens pas à afficher du texte, tu n'as peut etre pas le bonne librairie

commence avec l'exemple "hello world" que tu trouveras dans:
"fichiers" "exemples" "liquidCrystal I2C" "hello_world"

dbrion06:
Ce n’est pas une question de programmation, mais une bizarrerie du matériel.

Par contre, quelque chose m’intrigue:

vous utilisez un scanner I2C qui m’a toujours donné satisfaction -quitte à m’obliger à revoir mon câblage- , et je ne sais toujours pas pas si votre afficheur LCD est détecté ou pas?

bonjour dbrion06
tu as mis pile dans le probleme , c’était bien un souci de cablerie , j’ai sonné tous mes cable à l’hometre et j’avais des valeurs partant de 2 ohms , 97 ohms ou alors pas de continuité !!!
un peu dépité que j’étais , cela fait partie des check-up que tout petit débutant comme moi devrais faire avant de ce lancer dans un montage .
désoler de vous avoir embêter avec un soucis aussi futile .
jluc