Untitled
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