i2c_registers.ino 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include <Adafruit_BusIO_Register.h>
  2. #include <Adafruit_I2CDevice.h>
  3. #define I2C_ADDRESS 0x60
  4. Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS);
  5. void setup() {
  6. while (!Serial) {
  7. delay(10);
  8. }
  9. Serial.begin(115200);
  10. Serial.println("I2C device register test");
  11. if (!i2c_dev.begin()) {
  12. Serial.print("Did not find device at 0x");
  13. Serial.println(i2c_dev.address(), HEX);
  14. while (1)
  15. ;
  16. }
  17. Serial.print("Device found on address 0x");
  18. Serial.println(i2c_dev.address(), HEX);
  19. Adafruit_BusIO_Register id_reg =
  20. Adafruit_BusIO_Register(&i2c_dev, 0x0C, 2, LSBFIRST);
  21. uint16_t id;
  22. id_reg.read(&id);
  23. Serial.print("ID register = 0x");
  24. Serial.println(id, HEX);
  25. Adafruit_BusIO_Register thresh_reg =
  26. Adafruit_BusIO_Register(&i2c_dev, 0x01, 2, LSBFIRST);
  27. uint16_t thresh;
  28. thresh_reg.read(&thresh);
  29. Serial.print("Initial threshold register = 0x");
  30. Serial.println(thresh, HEX);
  31. thresh_reg.write(~thresh);
  32. Serial.print("Post threshold register = 0x");
  33. Serial.println(thresh_reg.read(), HEX);
  34. }
  35. void loop() {}