HarzSR

Untitled

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