zykes

Untitled

Nov 25th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 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. #include "Wire.h";
  28.  
  29. void setup()
  30. {
  31. Wire.begin();
  32.  
  33. Serial.begin(9600);
  34. Serial.println("\nI2C Scanner");
  35. }
  36.  
  37.  
  38. void loop()
  39. {
  40. byte error, address;
  41. int nDevices;
  42.  
  43. Serial.println("Scanning...");
  44.  
  45. nDevices = 0;
  46. for(address = 1; address < 127; address++ )
  47. {
  48. // The i2c_scanner uses the return value of
  49. // the Write.endTransmisstion to see if
  50. // a device did acknowledge to the address.
  51. Wire.beginTransmission(address);
  52. error = Wire.endTransmission();
  53.  
  54. if (error == 0)
  55. {
  56. Serial.print("I2C device found at address 0x");
  57. if (address<16)
  58. Serial.print("0");
  59. Serial.print(address,HEX);
  60. Serial.println(" !");
  61.  
  62. nDevices++;
  63. }
  64. else if (error==4)
  65. {
  66. Serial.print("Unknow error at address 0x");
  67. if (address<16)
  68. Serial.print("0");
  69. Serial.println(address,HEX);
  70. }
  71. }
  72. if (nDevices == 0)
  73. Serial.println("No I2C devices found\n");
  74. else
  75. Serial.println("done\n");
  76.  
  77. delay(5000); // wait 5 seconds for next scan
  78. }
Advertisement
Add Comment
Please, Sign In to add comment