#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("\nEscaneando dispositivos I2C");
}
void loop() {
byte erro, endereco;
int quantidade;
Serial.println("Escaneando...");
quantidade = 0;
for(endereco = 1; endereco < 127; endereco++) {
Wire.beginTransmission(endereco);
erro = Wire.endTransmission();
if (erro == 0)
{
Serial.print("Dispositivo I2C encontrado no endereço 0x");
if (endereco<16) {
Serial.print("0");
}
Serial.print(endereco,HEX);
Serial.println(" !");
quantidade++;
}
else if (erro==4) {
Serial.print("Erro no endereço 0x");
if (endereco<16) {
Serial.print("0");
}
Serial.println(endereco,HEX);
}
}
if (quantidade== 0) {
Serial.println("Nenhum dispositivo I2C encontrado\n");
}
else {
Serial.println("Fim\n");
}
delay(5000);
}