54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
//====================================================================
|
|
// GENERAL FUNCTION SECTION
|
|
//====================================================================
|
|
// I2C DECIVES SCANNER
|
|
//--------------------------------------------------------------------
|
|
|
|
void scanI2C()
|
|
{
|
|
byte error, address;
|
|
int nDevices;
|
|
|
|
Serial.println(" -> Scanning I2C Devices ...");
|
|
|
|
nDevices = 0;
|
|
for(address = 1; address < 127; address++ )
|
|
{
|
|
// The i2c_scanner uses the return value of
|
|
// the Write.endTransmisstion to see if
|
|
// a device did acknowledge to the address.
|
|
Wire.beginTransmission(address);
|
|
error = Wire.endTransmission();
|
|
|
|
if (error == 0)
|
|
{
|
|
Serial.print(" --> Device Found At Address 0x");
|
|
if (address<16)
|
|
Serial.print("0");
|
|
Serial.print(address,HEX);
|
|
Serial.println(" !");
|
|
|
|
nDevices++;
|
|
}
|
|
else if (error==4)
|
|
{
|
|
Serial.print(" --> Unknown error at address 0x");
|
|
if (address<16)
|
|
Serial.print("0");
|
|
Serial.println(address,HEX);
|
|
}
|
|
}
|
|
if (nDevices == 0)
|
|
Serial.println(" --> No I2C devices found\n");
|
|
else
|
|
Serial.println(" --> done");
|
|
}
|
|
|
|
//--------------------------------------------------------------------
|
|
// Float Number Mapping Function
|
|
//--------------------------------------------------------------------
|
|
|
|
double mapf(double val, double in_min, double in_max, double out_min, double out_max) {
|
|
return (val - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
|
|
}
|