Advertisement
RuiViana

I2C_Scanner

Apr 7th, 2016
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. // --------------------------------------
  2. // i2c_scanner
  3. //
  4. // Version 1
  5. // This program (or code that looks like it)
  6. // can be found in many places.
  7. // For example on the Arduino.cc forum.
  8. // The original author is not know.
  9. // Version 2, Juni 2012, Using Arduino 1.0.1
  10. // Adapted to be as simple as possible by Arduino.cc user Krodal
  11. // Version 3, Feb 26 2013
  12. // V3 by louarnold
  13. // Version 4, March 3, 2013, Using Arduino 1.0.3
  14. // by Arduino.cc user Krodal.
  15. // Changes by louarnold removed.
  16. // Scanning addresses changed from 0...127 to 1...119,
  17. // according to the i2c scanner by Nick Gammon
  18. // http://www.gammon.com.au/forum/?id=10896
  19. // Version 5, March 28, 2013
  20. // As version 4, but address scans now to 127.
  21. // A sensor seems to use address 120.
  22. //
  23. //
  24. // This sketch tests the standard 7-bit addresses
  25. // Devices with higher bit address might not be seen properly.
  26. //
  27.  
  28. #include <Wire.h>
  29.  
  30.  
  31. void setup()
  32. {
  33. Wire.begin();
  34.  
  35. Serial.begin(9600);
  36. Serial.println("\nI2C Scanner");
  37. }
  38.  
  39.  
  40. void loop()
  41. {
  42. byte error, address;
  43. int nDevices;
  44.  
  45. Serial.println("Scanning...");
  46.  
  47. nDevices = 0;
  48. for(address = 1; address < 127; address++ )
  49. {
  50. // The i2c_scanner uses the return value of
  51. // the Write.endTransmisstion to see if
  52. // a device did acknowledge to the address.
  53. Wire.beginTransmission(address);
  54. error = Wire.endTransmission();
  55.  
  56. if (error == 0)
  57. {
  58. Serial.print("I2C device found at address 0x");
  59. if (address<16)
  60. Serial.print("0");
  61. Serial.print(address,HEX);
  62. Serial.println(" !");
  63.  
  64. nDevices++;
  65. }
  66. else if (error==4)
  67. {
  68. Serial.print("Unknow error at address 0x");
  69. if (address<16)
  70. Serial.print("0");
  71. Serial.println(address,HEX);
  72. }
  73. }
  74. if (nDevices == 0)
  75. Serial.println("No I2C devices found\n");
  76. else
  77. Serial.println("done\n");
  78.  
  79. delay(5000); // wait 5 seconds for next scan
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement