offsets[]

描述

存放機器人各軸伺服機偏移量微調值的整數陣列,每個陣列元素數值範圍為 -256 ~ 256,單位為 us。

ServoOffset 在初始化時,沒有指定載入偏移量微調值檔案,則使用者可改由直接設定此陣列的元素值來設定偏移量微調值。

語法


myoffset.offsets[channel]

參數

myoffsetServoOffset 型別的物件。

channel:指定陣列元素,範圍為 0 ~ 44。第 n 個元素值代表要指定給第 n 個 Servo 的位置,請見下面範例說明。(注意:在 86Duino One 上所有陣列元素都有效;在86Duino EduCake 上只有 0 ~ 25 的範圍有效;在 86Duino Zero 上只有 0 ~ 16 的範圍有效。)

回傳

範例

#include <Servo86.h> 

Servo  myservo0;  // 第 0 個 Servo
Servo  myservo1;  // 第 1 個 Servo
Servo  myservo2;  // 第 2 個 Servo
ServoFrame myframe; // 宣告一個動作幀物件
ServoOffset myoffset; // 宣告一個伺服機偏移量物件

void setup() 
{ 
  myservo0.attach(9); 
  myservo1.attach(11); 
  myservo2.attach(5);

  myoffset.offsets[0] = -200; // 設定各 Servo 的偏移量微調值
  myoffset.offsets[1] = 50;
  myoffset.offsets[2] = -100;

  // 將偏移量微調值設定給各伺服機,即令:
  // myservo0 的偏移量微調值為 offsets[0],
  // myservo1 的偏移量微調值為 offsets[1],
  // myservo2 的偏移量微調值為 offsets[2]。
  myoffset.setOffsets(myservo0, myservo1, myservo2);

  myframe.positions[0] = 1800; // 設定動作幀內容
  myframe.positions[1] = 1300;
  myframe.positions[2] = 2000;

  // 設定以 500ms 的時間將伺服機由當前位置轉動到 myframe 指定的位置
  myframe.setPositions(500, myservo0 , myservo1, myservo2);  

  // 命令所有伺服機開始轉動 (將自動以先前設定的偏移量微調值修正各伺服機位置)
  servoMultiRun();
} 

void loop() {} 

See also

setOffsets


函式庫參考主頁面

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.