I2C ne fonctionne pas malgré Wire

Bonjour,

J’ai mis un DIsplay OLED sur mes deux pin SCL et SDA.
En travaillant la dessus, j’ai vu un script qui permet de scanner les périfériques, afin d’avoir leur adresse.

Pour me facilité la tache et afin de ne pas copier ce code, j’ai décidé de me créé une petite libraire en fonction de ceci:

http://playground.arduino.cc/Main/I2cScanner

NB: Dite moi si j’ai le droit de le faire, mais je pense que oui. Je souhaite faire les choses dans les règles de l’art…

J’ai donc fait ceci
https://github.com/pierrot10/SiI2Cscan

Dans mon fichier .ino, j’ai ceci

#include <SiI2Cscan.h>
SiI2Cscan I2Cscan;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  delay(9000);
  Serial.println(F("\r\n******************************************"));
  Serial.println(F("*               Scan I2C                 *"));
  Serial.println(F("******************************************\r\n"));
  /*
     * Scan the I2C port
     */
  Serial.println(F("\nI2C Scanner"));
  I2Cscan.begin();
}

void loop() {
  // put your main code here, to run repeatedly:

}

J’importe bien les deux librairies pour I2C ic
https://github.com/pierrot10/SiI2Cscan/blob/master/SiI2Cscan.cpp#L3

Puis, j’initialise Wire ici
https://github.com/pierrot10/SiI2Cscan/blob/master/SiI2Cscan.cpp#L15

Alors pourquoi, ceci me retourne une erreur: 2
https://github.com/pierrot10/SiI2Cscan/blob/master/SiI2Cscan.cpp#L30

J’ai du loupé un petit truc,mais je ne vois pas ou…

Merci

Je me demande, si le problème ne viendrai du Wire.

Est-ce qu'il ne devrait pas etre passé en parametre dans la fonction scan? https://github.com/pierrot10/SiI2Cscan/blob/master/SiI2Cscan.cpp#L19

pierrot10: Je me demande, si le problème ne viendrai du Wire.

Est-ce qu'il ne devrait pas etre passé en parametre dans la fonction scan? https://github.com/pierrot10/SiI2Cscan/blob/master/SiI2Cscan.cpp#L19

Non, pas besoin, l'object Wire est déclaré en tant que global, et de toute façon s'il ne l'était pas tu aurais une erreur de compilation, pas d'éxécution... Tu connais l'adresse de ton écran ? Si oui as tu testé directement avec son adresse, pour voir si c'est pas ton montage qui déconne ?

Peut-être que ce n'est pas "Wire" le fautif mais les "wires" que tu as câblé ? :)

Hello, Non mon cablage fonction car j'utilise le LCD I2C. Ce script me permet de lister les modules I2C, et leur adresse.

Je vais essayé ce soir, de tout mettre dans la fonction begin et supprimer la fonction scan...