I2C scanner

main.cpp

Committer:
JohnnyK
Date:
2022-08-02
Revision:
0:6c7b081066fd

File content as of revision 0:6c7b081066fd:

#include "mbed.h"

I2C i2c(ARDUINO_UNO_I2C_SDA, ARDUINO_UNO_I2C_SCL); 

int main(){
    printf("\nI2C Scanner running...\n");
    printf("Mbed OS version %d.%d.%d\n\n", MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION);
    //i2c.frequency(400000);
    int error, address, nDevices;
    nDevices = 0;

    for(address = 0; address < 128; address++ ){
        thread_sleep_for(10);
        /*i2c.start();
        error = i2c.write(address  << 1);
        i2c.stop();*/
        error = i2c.write(address  << 1, "1", 1);
        //pc.printf("Erorr %d\n", error);
        if (error == 0){ //need to be change according to what version of overloaded write method is used
            printf("I2C device found at address 8bit: 0x%X 7bit: 0x%X\n", address, address << 1);
            nDevices++;
        }
    }
        
    if (nDevices == 0){
        printf("No I2C devices found\n");
    }else{
        printf("\ndone\n");
    }
}