isAIServoMultiMoving()

描述

同時檢查多顆伺服機狀態。

語法

isAIServoMultiMoving()
isAIServoMultiMoving(servo1)
isAIServoMultiMoving(servo1servo2)
isAIServoMultiMoving(servo1servo2, … , servo64)

參數

servo1 ~ servo64AIServo 型別的變數。

您可以輸入 1 ~ 64 個 Servo 型別的參數,指定要啟動的伺服機,或者不輸入任何參數;當沒有輸入參數的時候,代表要檢查所有伺服機狀態。

回傳

至少有一個伺服機正在轉動,則回傳 true,當所有伺服機狀態為暫停、停止、釋放或到達目標位置,則回傳 false。

範例

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

#include <AIServo86.h>

 

AIServoPort(ROBOTIS, AX12) bus;

AIServo servo1;

AIServo servo2;

  

void setup()

{

  bus.begin(Serial3, 1000000);

  servo1.attach(bus, 9); servo2.attach(bus, 10);

  servo1.setPosition(150);

  servo2.setPosition(150);

  aiservoMultiRun(servo1, servo2); // 將 servo1、servo2 轉到 150 度

  delay(1000);

}

  

void loop()

{

  servo1.setPosition(280, 2000);

  servo2.setPosition(80, 2000);

  aiservoMultiRun(servo1, servo2); // 使 servo1 和 servo2 同時往新目標角度轉動

  while(isAIServoMultiMoving()  == true); // 等待所有伺服機都轉到目標位置

  servo1.setPosition(170, 2000);

  servo2.setPosition(160, 2000);

  aiservoMultiRun(); // 使 servo1、servo2 同時往新目標角度轉動

  while(isAIServoMultiMoving()  == true); // 等待所有伺服機都轉到目標位置

}

See also

- attach()
- setPosition()
- run()
- servoMultiRun()


函式庫參考主頁面

86Duino 參考資料中的文字修改自 Arduino 參考資料,並根據 知識共享署名-許可證方式共享 3.0 授權相同。參考資料中的程式碼範例已發佈到公共領域。