123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- #include "GoPlus2.h"
- GoPlus2::GoPlus2() {}
- void GoPlus2::begin() { Wire.begin(); }
- void GoPlus2::Servo_write_angle(uint8_t number, uint8_t angle) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(SERVO_ADDR | number);
- Wire.write(angle);
- Wire.endTransmission();
- }
- void GoPlus2::Servo_write_plusewidth(uint8_t number, uint16_t width) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(PLUSE_ADDR | number);
- uint8_t buff_out[2];
- buff_out[0] = width >> 8;
- buff_out[1] = width & 0xff;
- Wire.write(buff_out[0]);
- Wire.write(buff_out[1]);
- Wire.endTransmission();
- }
- void GoPlus2::Motor_write_speed(uint8_t number, int motor_speed) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(MOTOR_ADDR | number);
- Wire.write(motor_speed);
- Wire.endTransmission();
- }
- uint16_t GoPlus2::hub1_d_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue_L;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue_L = Wire.read();
- }
- return RegValue_L;
- }
- uint16_t GoPlus2::hub1_a_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_ANALOG | reg);
- Wire.endTransmission();
- uint8_t RegValue_L, RegValue_H;
- Wire.requestFrom(GOPLUS_ADDR, 2);
- while (Wire.available()) {
- RegValue_H = Wire.read();
- RegValue_L = Wire.read();
- }
- return (RegValue_H << 8) | RegValue_L;
- }
- uint16_t GoPlus2::hub2_a_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_ANALOG | reg);
- Wire.endTransmission();
- uint8_t RegValue_L, RegValue_H;
- Wire.requestFrom(GOPLUS_ADDR, 2);
- while (Wire.available()) {
- RegValue_H = Wire.read();
- RegValue_L = Wire.read();
- }
- return (RegValue_H << 8) | RegValue_L;
- }
- uint16_t GoPlus2::hub2_d_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue_L;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue_L = Wire.read();
- }
- return RegValue_L;
- }
- uint16_t GoPlus2::hub3_a_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_ANALOG | reg);
- Wire.endTransmission();
- uint8_t RegValue_L, RegValue_H;
- Wire.requestFrom(GOPLUS_ADDR, 2);
- while (Wire.available()) {
- RegValue_H = Wire.read();
- RegValue_L = Wire.read();
- }
- return (RegValue_H << 8) | RegValue_L;
- }
- uint16_t GoPlus2::hub3_d_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue_L;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue_L = Wire.read();
- }
- return RegValue_L;
- }
- void GoPlus2::hub1_wire_value(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_WIRE | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- void GoPlus2::hub2_wire_value(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_WIRE | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- void GoPlus2::hub3_wire_value(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_WIRE | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- void GoPlus2::hub1_set_io(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_IO_SET | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- void GoPlus2::hub2_set_io(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_IO_SET | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- void GoPlus2::hub3_set_io(uint8_t reg, uint8_t value) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_IO_SET | reg);
- Wire.write(value & 0xff);
- Wire.endTransmission();
- }
- uint8_t GoPlus2::hub1_d_o_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_O_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue = Wire.read();
- }
- return RegValue;
- }
- uint8_t GoPlus2::hub2_d_o_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_O_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue = Wire.read();
- }
- return RegValue;
- }
- uint8_t GoPlus2::hub3_d_o_read_value(uint8_t reg) {
- Wire.beginTransmission(GOPLUS_ADDR);
- Wire.write(HUB_READ_O_DIGITAL | reg);
- Wire.endTransmission();
- uint8_t RegValue;
- Wire.requestFrom(GOPLUS_ADDR, 1);
- while (Wire.available()) {
- RegValue = Wire.read();
- }
- return RegValue;
- }
|