Problème d'adresse I2C avec écran LCD

Bonjourà tous,

Je suis nouveau et j'essaye depuis quelque jours de faire des programmes un peu plus "passionnant" que de faire clignotter des led :slight_smile:

J'ai donc acheté un écran LCD avec un module I2C (PCF8574T) que je viens de recevoir mais je n'arrive pas à récupérer l'adresse du modue. J'ai essayé plusieurs programmes de scan don celui-ci sur votre forum "tutoriel et cours" et le moniteur série m'indique toujours "no I2C devices found".

// --------------------------------------
// 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
//    http://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(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("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
}

j'ai même essayé d'inverser SDA et SCL mais toujours rien. Est-il possible qu'il n'y ait pas d'adresse dans le module? j'ai aussi vu en faisant des recherches qu'il était possible de reprogrammer cette adresse mais je n'ai pas trouvé comment.

Merci pour votre réponse

Et la carte ARDUINO ?
Et le câblage ?
On devine tout seuls ?

Il ne fallait créer un nouveau message mais demander le déplacement du premier en utilisant le lien "Report to Moderator"

Dans les Règles du forum francophone il est demandé de décrire tous les composants du montage et de donner des liens vers le matériel.

Désolé mais premier message ou second on ne connaît toujours rien de ton matériel et c'est toujours :
boule_cristal_irma.jpg

boule_cristal_irma.jpg

Bonsoir,

Sur la photo jointe, j'imagine que c'est l'afficheur LCD ?
D'après cette photo, je pense qu'il faut paramétrer une adresse sur A1, A2 et A3
C'est à toi de le faire (fer à souder) ou utiliser l'adresse de base. = 000b si aucune soudure ?

Référence du machin ? Il n'y a pas d'explications ?
Un lien sur celui commandé ?

Concernant le pcf8574, l'adresse par défaut est 0x20. (0x20 à 0x27 = 8 possibilités)
Par défaut et en principe, toutes ces broches (A1, A2 et A3) sont mises à l'état BAS par les cavaliers ou des switchs.

Bonjour,

Quand je vois un fil vert pour VCC, j'ai tendance à mettre en cause le câblage.

trois choses à faire
1-Vérifier son câblage
2-Revérifier son câblage
3-Rerevérifier son câblage

Avec un câblage aussi simple, ça devrait fonctionner sans problème.

Un bon conseil: utilises un fil rouge pour VCC et un fil noir pour GND, ça limite les erreurs qui peuvent être catastrophiques pour les composants.

Alors voilà niveau composants , je possède un arduino mega 2560 et un afficheur LCD 1620. Sur l'afficheur est soudé le module I2C avec comme référence PCF8574T. Voici le lien où j'ai commandé le starter kit : Kit d'apprentissage Ultimate Starter adapté pour Arduino MEGA 2560 LCD1602- Tomtop.com

j'ai branché :

SCL => pine A5
SDA => pine A4
VCC => 5V
GND => GND

Je viens de recommencer le câblage en respectant les couleurs des fils mais je n'ai toujours pas d'adresse avec le programme de scan.

@geryco : Effectivement il n'y a pas de lien avec les broche A0 A1 et A2. faut-il les souder ?

Sur une méga 2560, sda et scl ne sont pas sur a4 a5.
Utilises les pins sda et scl.
Ou les pins 20 et 21.

Un lien vers des tableaux de brochage qui te seront utiles :
https://arduino.pinout.guide/

et pour la Mega le sous lien direct :

A imprimer et à avoir sous la main.

ça fonctionne j'ai une adresse 0X27. Je ne savais pas qu'il y avais des brochages spécifiques pour la transmission de données sur le mega.

Merci pour les infos :slight_smile: j'essayerais demain d'afficher quelque chose :slight_smile:

Greg89:
Je ne savais pas qu'il y avais des brochages spécifiques pour la transmission de données sur le mega.

C'est général avec les microcontrôleurs.
Une broche de sortie a une fonction principale et une ou des fonctions secondaires.
Les microcontrôleurs plus récents que celui de la Méga ont plus de possibilités de re-routage en interne mais «plus» ne veut pas dire que l'on peut tout faire.
D'où le plan de brochage que je t'ai indiqué où tu trouvera les fonctions principales et les fonctions secondaires.

J'ai aussi un problème,
un Nano
broche 7 SDA
broche 8 SCL
broche 17 +broche 29 masse
Test avec un oled, GME 12864-11 0.96"4P …..
Test avec barometric ….
Ne trouve pas d'adresse ????

Bonjour,

SDA c'est la pin 8
SCL c'est la pin 9

Pourquoi tu utilises le numéro de pin alors que les nano sont sérigraphiées avec la fonction de la pin?

J'ai des brochages différents suivant l'endroit ou je recherche des informations ( c'est le coté Arduino ….!!!).
Si je prends es broches 8 & 9

Je n'ai que la ligne "0123456789ABCDEF"
Suivit d'une ligne "0 "
Et puis plus rien ……??????????
Et cela avec 'afficheur oled ou le barometric

Comme il est difficile de trouver des indications sérieuses, je pensais que la borne 3.3v fournissait la tension . J'ai essayé en me mettant sur la broche 5v, cela me donne une valeur avec le "barometric" …
Demain je vais essayer avec d'autres (dont l'écran) …….

OK ça marche avec l'écran(76h) , le barometric(3Ch), l'adaptateur afficheur(20h à 27h) ….C'était un problème de tension et aussi suivant l'endroit ou l'on trouve les informations SDA, SCL
Pour la carte Nano j'avais trouvé les broches 7 et 8, on m'a dit très justement que c'tait les broches 8 et 9,
J'ai même trouvé aprés …. les broches 6 et 6 ….. Pour une carte Nano , tout dépend ou on regarde …..!!!!!!

Sur une carte NANO : SDA = A4 SCL = A5.
Et ça c'est invariable.

OK,
Mais je me basais sur les descriptions des cartes "Nano" qui indiquaient suivant les endroits les broches: 6&7, 7&8 ou 8&9,
Il y était clairement marqué "SDA" & "SDL"....
Comme sur certains endroits: On a la broche 1 = D0 & la broche 2 = D1, ailleurs c'est inversé
C'est le problème avec Arduino, c'est simple mais la documentation, et les sources d'informations, très folklorique …..!!!!
Je vais maintenant essayer de faire marcher mon afficheur Oled, j'espère que ce sera moins le souk !!!!! …..

Sur le schéma officiel il y a deux connecteurs 15 broches J1 & J2.
A4=J2.8
A5=J2.7
Personne n'utilise ces N° de pins. On parle toujours de A4 & A5 (sérigraphiés).

Les seuls cas où l'on utilise des N° de pins 1 à 30 est lorsque l'on réalise un PCB. Dans ce cas le N° de pin du schéma doit correspondre au N° de pin de l'empreinte.
Sur une empreinte officielle Kicad :

Le 1 correspond à D0.

OK …. !!!!
Je pensais qu'on pouvais se fier au indications 'SDA'" , "SCL" (sur les docs), bon maintenant je sais qu'il vaut mieux se fier à A4 et A5, le tout était, d'en être informé ….. Merci !!!!!…..
Je vais essayer maintenant de faire fonctionner l'Oled, en espérant, que ce ne soit pas trop galère ….
Pour l'instant rien ne s'allume , et c'est le calme plat ….!!!!