/* 回读所有舵机反馈参数:位置、速度、负载、电压、温度、移动状态、电流; FeedBack函数回读舵机参数于缓冲区,Readxxx(-1)函数返回缓冲区中相应的舵机状态; 函数Readxxx(ID),ID=-1返回FeedBack缓冲区参数;ID>=0,通过读指令直接返回指定ID舵机状态, 无需调用FeedBack函数。 */ #include HLSCL hlscl; int LEDpin = 13; void setup() { pinMode(LEDpin,OUTPUT); digitalWrite(LEDpin, HIGH); Serial1.begin(1000000);//mega2560 //Serial1.begin(1000000, SERIAL_8N1, 18, 17);//esp32-s32 Serial.begin(115200); hlscl.pSerial = &Serial1; delay(1000); } void loop() { int Pos; int Speed; int Load; int Voltage; int Temper; int Move; int Current; hlscl.FeedBack(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Pos = hlscl.ReadPos(-1); Speed = hlscl.ReadSpeed(-1); Load = hlscl.ReadLoad(-1); Voltage = hlscl.ReadVoltage(-1); Temper = hlscl.ReadTemper(-1); Move = hlscl.ReadMove(-1); Current = hlscl.ReadCurrent(-1); Serial.print("Position:"); Serial.println(Pos); Serial.print("Speed:"); Serial.println(Speed); Serial.print("Load:"); Serial.println(Load); Serial.print("Voltage:"); Serial.println(Voltage); Serial.print("Temper:"); Serial.println(Temper); Serial.print("Move:"); Serial.println(Move); Serial.print("Current:"); Serial.println(Current); delay(10); }else{ digitalWrite(LEDpin, HIGH); Serial.println("FeedBack err"); delay(500); } Pos = hlscl.ReadPos(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo position:"); Serial.println(Pos, DEC); delay(10); }else{ Serial.println("read position err"); digitalWrite(LEDpin, HIGH); delay(500); } Voltage = hlscl.ReadVoltage(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo Voltage:"); Serial.println(Voltage, DEC); delay(10); }else{ Serial.println("read Voltage err"); digitalWrite(LEDpin, HIGH); delay(500); } Temper = hlscl.ReadTemper(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo temperature:"); Serial.println(Temper, DEC); delay(10); }else{ Serial.println("read temperature err"); digitalWrite(LEDpin, HIGH); delay(500); } Speed = hlscl.ReadSpeed(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo Speed:"); Serial.println(Speed, DEC); delay(10); }else{ Serial.println("read Speed err"); digitalWrite(LEDpin, HIGH); delay(500); } Load = hlscl.ReadLoad(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo Load:"); Serial.println(Load, DEC); delay(10); }else{ Serial.println("read Load err"); digitalWrite(LEDpin, HIGH); delay(500); } Current = hlscl.ReadCurrent(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo Current:"); Serial.println(Current, DEC); delay(10); }else{ Serial.println("read Current err"); digitalWrite(LEDpin, HIGH); delay(500); } Move = hlscl.ReadMove(1); if(!hlscl.getLastError()){ digitalWrite(LEDpin, LOW); Serial.print("Servo Move:"); Serial.println(Move, DEC); delay(10); }else{ Serial.println("read Move err"); digitalWrite(LEDpin, HIGH); delay(500); } Serial.println(); }