GoPlus2.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef __GOPLUS2_H__
  2. #define __GOPLUS2_H__
  3. #include <Wire.h>
  4. #define GOPLUS_ADDR 0x38 //I2C ADDR
  5. #define SERVO_ADDR 0x00 //SERVO angle register
  6. #define PLUSE_ADDR 0x10 //SERVO pluse width register
  7. #define SERVO_NUM0 0x00
  8. #define SERVO_NUM1 0x01
  9. #define SERVO_NUM2 0x02
  10. #define SERVO_NUM3 0x03
  11. #define SERVO_NUM0_PW 0x00
  12. #define SERVO_NUM1_PW 0x02
  13. #define SERVO_NUM2_PW 0x04
  14. #define SERVO_NUM3_PW 0x06
  15. #define MOTOR_ADDR 0x30 //MOTOR register
  16. #define MOTOR_NUM0 0x00
  17. #define MOTOR_NUM1 0x01
  18. #define HUB1_R_ADDR 0x00
  19. #define HUB2_R_ADDR 0x02
  20. #define HUB3_R_ADDR 0x04
  21. #define HUB1_W_ADDR 0x00
  22. #define HUB2_W_ADDR 0x01
  23. #define HUB3_W_ADDR 0x02
  24. #define HUB_READ_ANALOG 0x40 //HUB ANALOG_INPUT register
  25. #define HUB_READ_DIGITAL 0x50 //HUB DIGITAL_INPUT register
  26. #define HUB_WIRE 0x60 // HUB DIGITAL_OUTPUT register
  27. #define HUB_READ_O_DIGITAL 0x70 // HUB DIGITAL_INPUT2(the 'O' pin) register,pull_up
  28. #define HUB1_R_O_ADDR 0x00
  29. #define HUB2_R_O_ADDR 0x01
  30. #define HUB3_R_O_ADDR 0x02
  31. #define HUB_IO_SET 0x80 //HUB SET INPUT(1) OR OUTPUT(0) mode (OUTPUT by default)
  32. class GoPlus2 {
  33. public:
  34. GoPlus2();
  35. void begin();
  36. void Servo_write_angle(uint8_t number, uint8_t angle);
  37. void Servo_write_plusewidth(uint8_t number, uint16_t width);
  38. void Motor_write_speed(uint8_t number, int motor_speed);
  39. uint16_t hub1_a_read_value(uint8_t reg);
  40. uint16_t hub1_d_read_value(uint8_t reg);
  41. uint16_t hub2_d_read_value(uint8_t reg);
  42. uint16_t hub3_d_read_value(uint8_t reg);
  43. uint16_t hub2_a_read_value(uint8_t reg);
  44. uint16_t hub3_a_read_value(uint8_t reg);
  45. void hub1_wire_value(uint8_t reg,uint8_t value);
  46. void hub2_wire_value(uint8_t reg,uint8_t value);
  47. void hub3_wire_value(uint8_t reg,uint8_t value);
  48. void hub1_set_io(uint8_t reg, uint8_t value);
  49. void hub2_set_io(uint8_t reg, uint8_t value);
  50. void hub3_set_io(uint8_t reg, uint8_t value);
  51. uint8_t hub1_d_o_read_value(uint8_t reg);
  52. uint8_t hub2_d_o_read_value(uint8_t reg);
  53. uint8_t hub3_d_o_read_value(uint8_t reg);
  54. };
  55. #endif