/* * Copyright (C) 2021 - Cuautli Garcia - All Rights Reserved * * FabAcademy * * Version 1.0 * Autor: Cuautli Garcia - cuautli.garciaa@gmail.com * */ //DefiniciĆ³n de variables y librerias a utilizar #include //Libreria de Arduino para protocolo I2C byte estatus, direccion;//Creacion de variables para guardar las direcciones y el estatus int nDispositivos; //Creacion de variables para guardar la cantidad de dispositivos void setup(){// La funcion setup se ejecuta solo una vez, cuando el Arduino es energizado // Inicializar el protocolo I2C y Serial de comunicacion Wire.begin(); Serial.begin(115200); } void loop(){//La funcion loop se ejecuta infinitamente Serial.println("Buscando..."); //Imprimir buscando nDispositivos = 0; //Inicializar numero de dispositivos for(direccion = 1; direccion < 127; direccion++ )//Ciclo for del 1 al 127 para hacer ping { Wire.beginTransmission(direccion); //Comienza transmision con la direccion del for estatus = Wire.endTransmission(); //Guarda el valor del estatus en la direccion if (estatus == 0){ //Si el estatus es 0 significa hay un dispositivo Serial.println("Un dispositivo I2C se ha encontrado"); //Imprime titulo Serial.print("La direccion es: 0x"); //Imprime la direccion if (direccion<16) //Si el la direccion es menor a 16 Serial.print("0"); //Imprime un 0 antes Serial.println(direccion,HEX); //Imprime la direccion de manera hexadecimal nDispositivos++; //Aumenta el numero de dispositivos } else if (estatus==4) //Si el estatus es 4 significa que el dispositivo no es I2C { Serial.println("Un dispositivo I2C se ha encontrado"); //Imprime titulo Serial.print("La direccion es: 0x"); //Imprime la direccion if (direccion<16) //Si el la direccion es menor a 16 Serial.print("0"); //Imprime un 0 antes Serial.println(direccion,HEX); //Imprime la direccion de manera hexadecimal } } if (nDispositivos == 0) //Si el numero de dispositivos es igual a 0 Serial.println("No se han encontrado dispositivos I2C\n");//Imprimir else //Si el numero de dispositivos es mayor a 1 Serial.println("Busqueda terminada\n"); //Imprime Busqueda terminda delay(5000); //Espera por cinco segundos }