/*
*  i2c_scanner
*
*  Version 1
*  Este programa (código que aparece) se pueden encontrar en muchos sitios.
*  Por ejemplo, en el foro Arduino.cc.
*  El autor original no se conoce.
*  Version 2, Juni 2012, Using Arduino 1.0.1
*  Adaptado para ser lo más simple posible por usuario Krodal Arduino.cc
*  Version 3, Feb 26 2013 by louarnold
*  Version 4, March 3, 2013, Using Arduino 1.0.3
*  by Arduino.cc user Krodal.
*  Version 5, March 28, 2013
*  Como la versión 4, pero las exploraciones de direcciones ahora a 127. 
* 
*  Este boceto prueba las direcciones estándar de 7 bits. 
*  Los dispositivos con dirección de bits más alta 
*  no pueden ser vistas correctamente.
*/
#include "Wire.h" ; si no aparece la librería es por motivos del soft "< "

void setup()
 {
  Wire.begin();

  Serial.begin(9600);
  Serial.println("\nI2C Scanner");
}

 void loop()
 {
  byte error, address;
  int nDevices;

  Serial.println("Scanning...");

  nDevices = 0;
  for(address = 1; address < 127; address++ ) 
  {
  // El i2c_scanner utiliza el valor devuelto o el 
  // Write.endTransmisstion para ver si un 
  // dispositivo reconoció la dirección.
  Wire.beginTransmission(address);
  error = Wire.endTransmission();

  if (error == 0)
  {
   Serial.print("Dispositivo I2C en dirección 0x");
   if (address<16) 
   Serial.print("0");
   Serial.print(address,HEX);
   Serial.println(" !");

   nDevices++;
  }
  else if (error==4) 
  {
   Serial.print("Error desconocido en dirección 0x");
   if (address<16) 
   Serial.print("0");
   Serial.println(address,HEX);
   } 
  }
  if (nDevices == 0)
  Serial.println("Dispositivo I2C No hallado.\n");
  else
  Serial.println("hecho\n");

  delay(5000);   // espera 5 segundos para otro scan
}