Difference between revisions of "I2cScanner"

From
Jump to: navigation, search
(Code mini)
 
(8 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
https://playground.arduino.cc/Main/I2cScanner/
 
https://playground.arduino.cc/Main/I2cScanner/
  
==== Code ====
+
==== Code i2c_scanner ====
 +
<pre>
 +
// --------------------------------------
 +
// 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.
 +
//
 +
</pre>
 +
 
 +
 
 +
[[File:Grove Base for XIAO 1.PNG|200px]]
 +
[[File:XIAO-ESP32S3 1.PNG|125px]]
 +
[[File:16x2 LCD White on Blue 01.jpg|200px]]
 +
 
 +
Grove Base for XIAO (Port <b>i2c</b>) &#9989; <b>résultat : </b> I2C device found at address  <b>0x3E  !</b><br>
 +
XIAO-ESP32S3 <br>
 +
16x2 LCD White on Blue
 +
 
 +
<pre>
 +
 
 +
#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
 +
}
 +
</pre>
 +
 
 +
-----
 +
<br>
 +
 
 +
==== Code Vérification de l’adresse I2C <b>Petit Scanner</b> ====
 +
 
 +
<PRE>
 +
#include <Wire.h>
 +
 
 +
void setup() {
 +
  Wire.begin();
 +
  Serial.begin(115200);
 +
  Serial.println("Scanning I2C...");
 +
  for (byte i = 1; i < 127; i++) {
 +
    Wire.beginTransmission(i);
 +
    if (Wire.endTransmission() == 0) {
 +
      Serial.print("Found device at 0x");
 +
      Serial.println(i, HEX);
 +
    }
 +
  }
 +
  Serial.println("Done.");
 +
}
 +
 
 +
void loop() {
 +
}
 +
</PRE>

Latest revision as of 21:03, 21 October 2025

I2cScanner

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

Code i2c_scanner

// --------------------------------------
// 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.
//


Grove Base for XIAO 1.PNG XIAO-ESP32S3 1.PNG 16x2 LCD White on Blue 01.jpg

Grove Base for XIAO (Port i2c) ✅ résultat : I2C device found at address 0x3E  !
XIAO-ESP32S3
16x2 LCD White on Blue


#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
}


Code Vérification de l’adresse I2C Petit Scanner

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(115200);
  Serial.println("Scanning I2C...");
  for (byte i = 1; i < 127; i++) {
    Wire.beginTransmission(i);
    if (Wire.endTransmission() == 0) {
      Serial.print("Found device at 0x");
      Serial.println(i, HEX);
    }
  }
  Serial.println("Done.");
}

void loop() {
}