Untitled

 avatar
unknown
plain_text
9 months ago
998 B
22
Indexable
// I2C Scanner
// Works on Arduino, NodeMCU (ESP8266), etc.

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  while (!Serial) { delay(1); }
  Serial.println("\nI2C Scanner");
  Wire.begin();
  delay(100);
}

void loop() {
  Serial.println("Scanning I2C bus...");
  byte count = 0;
  for (uint8_t addr = 1; addr < 127; addr++) {
    Wire.beginTransmission(addr);
    uint8_t error = Wire.endTransmission();
    if (error == 0) {
      Serial.print("Device found at 0x");
      if (addr < 16) Serial.print("0");
      Serial.print(addr, HEX);
      Serial.print("  (");
      Serial.print(addr, DEC);
      Serial.println(")");
      count++;
    }
    else if (error == 4) {
      Serial.print("Unknown error at 0x");
      if (addr < 16) Serial.print("0");
      Serial.println(addr, HEX);
    }
  }
  if (count == 0) Serial.println("No I2C devices found.\n");
  else {
    Serial.print("Done. ");
    Serial.print(count);
    Serial.println(" device(s) found.\n");
  }
  delay(4000); 
}
Editor is loading...
Leave a Comment