VALON HOTI
/
Nucleo411_i2c_scanner
I2C Scanner
main.cpp@0:c3dab0101dea, 2017-08-26 (annotated)
- Committer:
- Valoni
- Date:
- Sat Aug 26 22:41:16 2017 +0000
- Revision:
- 0:c3dab0101dea
I2C Scanner to detect LCD1602/LCD2004 adress for using with TEXTLCD library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Valoni | 0:c3dab0101dea | 1 | // Original program found here: http://playground.arduino.cc/Main/I2cScanner |
Valoni | 0:c3dab0101dea | 2 | // Modified by Domen Ornik, 4.5.2015 |
Valoni | 0:c3dab0101dea | 3 | // Modified by Valon Hoti 27.08.2017 00:40 |
Valoni | 0:c3dab0101dea | 4 | #include "mbed.h" |
Valoni | 0:c3dab0101dea | 5 | |
Valoni | 0:c3dab0101dea | 6 | I2C i2c(I2C_SDA , I2C_SCL ); |
Valoni | 0:c3dab0101dea | 7 | |
Valoni | 0:c3dab0101dea | 8 | int main() { |
Valoni | 0:c3dab0101dea | 9 | printf("\nI2C Scanner"); |
Valoni | 0:c3dab0101dea | 10 | |
Valoni | 0:c3dab0101dea | 11 | while(1) { |
Valoni | 0:c3dab0101dea | 12 | int error, address; |
Valoni | 0:c3dab0101dea | 13 | int nDevices; |
Valoni | 0:c3dab0101dea | 14 | |
Valoni | 0:c3dab0101dea | 15 | printf("Scanning...\n"); |
Valoni | 0:c3dab0101dea | 16 | |
Valoni | 0:c3dab0101dea | 17 | nDevices = 0; |
Valoni | 0:c3dab0101dea | 18 | |
Valoni | 0:c3dab0101dea | 19 | for(address = 1; address < 127; address++ ) |
Valoni | 0:c3dab0101dea | 20 | { |
Valoni | 0:c3dab0101dea | 21 | i2c.start(); |
Valoni | 0:c3dab0101dea | 22 | error = i2c.write(address << 1); //We shift it left because mbed takes in 8 bit addreses |
Valoni | 0:c3dab0101dea | 23 | i2c.stop(); |
Valoni | 0:c3dab0101dea | 24 | if (error == 1) |
Valoni | 0:c3dab0101dea | 25 | { |
Valoni | 0:c3dab0101dea | 26 | printf("I2C device found at address 0x%X", (address >>1); //Returns 8-bit addres |
Valoni | 0:c3dab0101dea | 27 | nDevices++; |
Valoni | 0:c3dab0101dea | 28 | } |
Valoni | 0:c3dab0101dea | 29 | |
Valoni | 0:c3dab0101dea | 30 | } |
Valoni | 0:c3dab0101dea | 31 | if (nDevices == 0) |
Valoni | 0:c3dab0101dea | 32 | printf("No I2C devices found\n"); |
Valoni | 0:c3dab0101dea | 33 | else |
Valoni | 0:c3dab0101dea | 34 | printf("\ndone\n"); |
Valoni | 0:c3dab0101dea | 35 | |
Valoni | 0:c3dab0101dea | 36 | wait(5); // wait 5 seconds for next scan |
Valoni | 0:c3dab0101dea | 37 | |
Valoni | 0:c3dab0101dea | 38 | } |
Valoni | 0:c3dab0101dea | 39 | } |