changement adresse I2C sur module LCD

Bonjour,

je possède 3 afficheurs LCD 16x2 avec modules I2C (sans nom, chinois vraisemblablement).
Je souhaite utiliser ces afficheurs sur trois dispositifs identiques en tout point, devant tourner avec le même sketch.
Deux des modules I2C ont un chip PCF8574AT, avec une adresse de base 0x3C.
Le troisième a un chip PCF8574T, avec une adresse de base 0x27.
J'ai relevé ces adresses avec un sketch-scanner I2C (Arduino Playground - I2cScanner)
Je ne peux donc pas utiliser le même sketch sur les 3 dispositifs puisque les adresses sont différentes.
Donc voici ma question: est-il possible de changer l'adresse 0x27 en 0x3C par exemple ?
NB: les modules sont équipés de "paires de plots" A0, A1 et A2. Ils sont tous non strappés, donc à l'état 1 je crois, sur les trois modules. J'ai essayé de strapper (avec une goutte de soudure) ces plots mais je ne suis pas arrivé à retrouver le code 0x27. Il faut dire que je n'ai essayé que 3 combinaisons mais je suis en fait un peu embrouillé....
Pouvez-vous m'aider SVP

Cordialement

il suffit de changer l'adresse dans ton sketch qui est destiné au lcd avec l'adresse h03c

Pour info :
le 8574 a h020 comme adresse de base : avec les a0 a1 a2 tu ne peux que aller de h027 à h020, A0-2 a sont a 1 quand ils ne sont pas "strappés" sur ton module= h027
le 8574A a comme adresse base h038 : les adresses possibles h3F à h38
tes lcd h3c ont a2 a 1 et a1 a0 à zero

Bonjour Elektrax,

Merci pour ta réponse claire.
J'ai effectivement changé l'adresse dans mon sketch mais ce n'est pas ce que je veux. Ces arduino sont utilisés dans un dispositif industriel, en trois exemplaires identiques. Ils doivent avoir exactement les mêmes caractéristiques de fonctionnement, y compris le prgm d'automatisme pour des questions de maintenance éventuelle. Ces prgms sont susceptibles d'évoluer et il n'est pas bon qu'il y ait à chaque fois deux sketches à modifier.
Grâce à tes explications, je crains malheureusement de comprendre que les différentes versions du chip, A ou AT, n'ont pas les adresses qui se recouvrent et que je ne pourrais donc pas arriver à mes fins.
J'ai acheté les 3 LCD chez le même fournisseur et pas de bol, ils n'avaient pas le même chip. Il faudrait que je lui en commande un nouveau en lui précisant bien de vérifier qu'il s'agit d'un T. Ça va être compliqué je crois....

Bien cordialement

Bonsoir,
Même adresse1 pour les P, T et TS
de même les A, AP, AT et ATS ont la même adresse2
adresse1 est différente de adresse2
@+

Ambo73:
Ces arduino sont utilisés dans un dispositif industriel, en trois exemplaires identiques. Ils doivent avoir exactement les mêmes caractéristiques de fonctionnement, y compris le prgm d'automatisme pour des questions de maintenance éventuelle.

A projet industriel vendeur industriel, l'échange doit se faire très simplement.

Il est vrai qu'avec des cartes arduino mises dans un projet industriel peut-être que les composants ne sont pas ......:

DISCLAIMER OF WARRANTIES.- except for the above limited warranty, Arduino Srl and/or its respective manufacturers and distributors to the maximum extent permitted by law make no representations about the suitability, reliability, availability, timeliness, and accuracy of the information, software, products, services and related graphics contained on its web site for any purpose. except for the above limited warranty, all such information, software, products, services and related graphics are provided "as is" "with all faults," and without warranty of any kind, whether express, contractual, or statutory. except for the above limited warranty,

et

1.5 UNAUTHORIZED USE.- Arduino Srl products are not authorized for use in safety-critical applications where a failure of the Arduino Srl product would reasonably be expected to cause severe personal injury or death. safety-critical applications include, without limitation, life support devices and systems, equipment or systems for the operation of nuclear facilities and weapons systems. Arduino Srl products are neither designed nor intended for use in military or aerospace applications or environments and for automotive applications or environment. customer acknowledges and agrees that any such use of Arduino Srl products which is solely at the customer's risk, and that customer is solely responsible for compliance with all legal and regulatory requirements in connection with such use.

Cf http://www.arduinosrl.it/catalog/index.php?main_page=warranties&zenid=mqgpvnplc7960nr8e9om1a3o97

Elektrax, me revoici...

petite erreur de de ma part: les chips 8574A ont l'adresse 0x3F et non 3C, ce qui correspond bien à l'adresse de base, sans strap, du moins je pense.
Selon le datasheet (http://www.nxp.com/documents/data_sheet/PCF8574.pdf), l'adresse du 8574A est du type 0111A2A1A0.
Avec les 3 strap en l'air, cela fait 0111111 soit 3F en hexa.
L'adresse la plus basse est 0111000, soit 38 en hexa. Il faut alors avoir les 3 A strappés.
Selon moi, l'absence de strap correspond à 1 (probablement un pullup en interne). En effet, pour le 8574, l'adresse est de type 0100A2A1A0. Avec les 3 A non strappés, j'ai bien 0100111 qui correspond à 27 en hexa, valeur donnée par le scanner.
Est-ce que tu es d'accord?

Là, maintenant je comprends définitivement que je ne peux rien faire de ce coté là pour mon pb....
Peut-être une idée: je vais voir s'il est possible d'intégrer le sketch de scan I2C à mon propre sketch. Comme je débute, ça va pas être facile pour moi....
Si ça marche ce serait super car je n'aurais plus à me soucier du type de module....
A plus....

Bonsoir 68tjs,

oui, je suis d'accord avec toi pour les "réserves" annoncée par Arduino.
Quand je dis procédé industriel, j'y vais un peu fort... J'ai utilisé ce mot parce que je le fais en "série" de 3 exemplaires, pour une application bien spécifique, sans aucun risque en cas de défaillance de l'Arduino... C'est juste pour afficher le déplacement d'un organe, pour informer l'opérateur.

Bonjour,
a mon avis, si tu ne veux pas faire des frais pour l'achat d'un nouveau display, le plus simple est de personnaliser la carte Arduino.
Si tu as une pin libre, tu la connectes au GND pour un type d'afficheur et tu laisses en l'air pour l'autre modele.
Ton programme commence par lire l'etat de cette pin dans le setup et suivant le resultat, il choisit une ou l'autre adresse de base.
2 contraintes :

  • avoir une pin libre
  • accepter d'avoir 2 cablages (legerement) differents et ne pas inverser les couples ainsi formes.

Bon courage pour ton developpement.

Jacques

Bonsoir JMe87,

la solution que tu proposes me convient parfaitement.
En effet, j'ai été obligé de réaliser des shield pour transformer du 24 V alternatif en 9 V continu pour alimenter les Arduino. Donc je peux sans pb mettre une pin à 0 comme tu le dis, sur un des 3 shields. J'ai toutes les pin digitales libres. La différence de câblage sera donc au niveau des shields, ce qui ne me gène pas du tout. D'ailleurs je vais mettre un strap amovible au cas où j'aurais à changer l'écran et que celui-ci aurait l'autre adresse.
Merci encore, c'est une excellente solution pour mon pb.
Bonne fin de soirée.