ESP32Cube Logo
Sign In
ESP32/Arduino Scan Device I2C Address

ESP32/Arduino Scan Device I2C Address

esp32cube
May 13, 2026
Tutorial
854 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 Arduino Button Input: Practical Guide and Debouncing

Tutorial·156 views

ESP32 + WS2812B LED Strip + 18650 Battery: Rechargeable RGB Lighting Device

Tutorial·228 views

ESP32 LED Chaser (Running Light) Experiment

Tutorial·115 views

Control GPIO Output: Light Up an LED on ESP32

Tutorial·97 views

ESP32Cube Development Guide

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