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.