porthub.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #ifndef __PORTHUB_H__
  2. #define __PORTHUB_H__
  3. #include <Wire.h>
  4. #define IIC_ADDR1 0x61
  5. #define IIC_ADDR2 0x62
  6. #define IIC_ADDR3 0x63
  7. #define IIC_ADDR4 0x64
  8. #define IIC_ADDR5 0x65
  9. #define IIC_ADDR6 0x66
  10. #define IIC_ADDR7 0x67
  11. #define IIC_ADDR8 0x68
  12. #define HUB1_ADDR 0x40
  13. #define HUB2_ADDR 0x50
  14. #define HUB3_ADDR 0x60
  15. #define HUB4_ADDR 0x70
  16. #define HUB5_ADDR 0x80
  17. #define HUB6_ADDR 0xA0
  18. class PortHub {
  19. public:
  20. PortHub();
  21. PortHub(uint8_t iic_addr);
  22. void begin();
  23. uint16_t hub_a_read_value(uint8_t reg);
  24. uint8_t hub_d_read_value_A(uint8_t reg);
  25. uint8_t hub_d_read_value_B(uint8_t reg);
  26. void hub_d_wire_value_A(uint8_t reg, uint16_t level);
  27. void hub_d_wire_value_B(uint8_t reg, uint16_t level);
  28. void hub_a_wire_value_A(uint8_t reg, uint16_t duty);
  29. void hub_a_wire_value_B(uint8_t reg, uint16_t duty);
  30. void hub_wire_length(uint8_t reg, uint16_t length);
  31. void hub_wire_index_color(uint8_t reg, uint16_t num, uint8_t r, int8_t g,
  32. uint8_t b);
  33. void hub_wire_fill_color(uint8_t reg, uint16_t first, uint16_t count,
  34. uint8_t r, int8_t g, uint8_t b);
  35. void hub_wire_setBrightness(uint8_t reg, uint8_t brightness);
  36. public:
  37. private:
  38. uint8_t _iic_addr = IIC_ADDR1;
  39. private:
  40. };
  41. #endif