Arduino – Scanner I2C

Scanner I2C

Ce programme détecte si un périphérique en I2C et connecté à l’Arduino et affiche sur le moniteur série l’adresse de ce périphérique. Ceci est bien utile lors de l’achat d’un périphérique en I2C dont nous ne connaissons pas l’adresse.

Sketch scanner-i2c.ino

// i2c_scanner/
//* Ce sketch est un scanner I2C: il essaye de communiquer avec toutes les adresses I2C possibles et affiche celle(s) qui réponde(nt). *//
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
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
}
Scanner I2C.ino

Ouvrir l’IDE Arduino, puis nouvelle page. Faire un copier/coller du programme, puis faire une compilation, si compilation OK faire un téléversement du programme sur l’Arduino, le résultat des adresses détectées sur le ou les module(s) raccordés sur les broches A4 et A5 de l’Arduino sont affichées dans le moniteur série de l’IDE.

Ce contenu a été publié dans Actualité du site, Arduino. Vous pouvez le mettre en favoris avec ce permalien.