ESP32Cube Logo
Sign In
ESP32/Arduino Scan Device I2C Address

ESP32/Arduino Scan Device I2C Address

esp32cube
Apr 7, 2026
Tutorial
750 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
}

Comments

0

Please sign in to post a comment.

No comments yet.

Related Articles

MCU-Controlled Single-Button Power Switch Circuit with Schematic

Tutorial·33 views

L298N DC Motor Driver Module Complete Guide

Tutorial·54 views

AI Chat with Xiaozhi

Tutorial·72 views

AI Chat with Xiaozhi

Tutorial·78 views

Audio Playback with HSC001 and ESP32

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