ESP32Cube Logo
Sign In
ESP32/Arduino Scan Device I2C Address

ESP32/Arduino Scan Device I2C Address

esp32cube
Nov 3, 2026
Tutorial
1529 views
LEDAI

ESP32/Arduino finds the address of I2C device

When uses I2C devices, it often needs to check whether the I2C device communicates rightly, or the device's I2C address is set wrong.

This code will scan the I2C bus from address 1 to address 127 and will print out the address of any devices that respond.

#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(115200);
  Serial.println("I2C device 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
}

Share this article

Comments

0

Please sign in to post a comment.

No comments yet.

Related Articles

ESP32 4-Wire PT100/PT1000 High-Accuracy Temperature Measurement with MAX31865

Tutorial·524 views

ESP32 DFPlayer Mini (MP3-TF-16P): Wiring, Arduino Code, Playback and Troubleshooting

Tutorial·5077 views

ESP32 Buttons in Arduino: Wiring, Debouncing, and Interrupts

Tutorial·650 views

ESP32-C3 vs ESP32-S3 vs ESP32-C6: How to Choose for Real Firmware Projects

Tutorial·3830 views

ESP32 Arduino Button Input: Practical Guide and Debouncing

Tutorial·1805 views
View more in this category→
Copyright © 2026 ESP32Cube. All rights reserved.•1.0.1•Terms·Privacy
Source codeTwitterDiscord