編碼器#

介紹#

encoder 類與光學軸編碼器配合使用,用於測量軸的旋轉位置和速度。它利用內部光學感測器檢測軸的旋轉角度和速度,因此可用於追蹤車輪旋轉、機械手臂位置或其他機構。

VEX 光學軸編碼器。

類別建構函數#

encoder(
  triport::port &port );

類別析構函數#

銷毀 encoder 物件並釋放相關資源。

virtual ~encoder();

參數#

範圍

類型

描述

port

triport::port &

光學軸編碼器使用的所需雙埠組中的第一個三線連接埠。編碼器佔用主機板或三線擴展器上的兩個相鄰連接埠(A-B、C-D、E-F 或 G-H)。指定連接埠對中的第一個連接埠(A、C、E 或 G),格式為 Brain.ThreeWirePort.X 或 ExpanderName.X ,其中 X 為連接埠字母(例如, Brain.ThreeWirePort.A 或 Expander1.C)。

範例#

// Create an encoder instance in Ports A and B
encoder EncoderA = encoder(Brain.ThreeWirePort.A);

成員功能#

encoder 類別包含以下成員函數:

  • setPosition — 將編碼器的目前位置設定為指定的值。

  • position — 返回編碼器旋轉了多遠。

  • velocity — 傳回編碼器的目前旋轉速度。

在呼叫 encoder 成員函數之前,必須先建立 encoder 實例,如下所示:

/* This constructor is required when using VS Code.
Encoder configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create an encoder instance in Ports A and B
encoder EncoderA = encoder(Brain.ThreeWirePort.A);

setPosition#

將編碼器的目前位置設定為指定值。這可用於手動設定追蹤位置,而無需旋轉馬達或其他機構。

Available Functions
void setPosition(
  double        value,
  rotationUnits units);

Parameters

參數

類型

描述

value

double

要設定的旋轉位置。

units

rotationUnits

The unit that represents the position:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

此函數不傳回值。

position#

返回與編碼器相連的軸旋轉了多遠。

Available Functions
double position(
  rotationUnits units );

Parameters

參數

類型

描述

units

rotationUnits

The unit that represents the position:

  • deg / degrees — degrees
  • turns / rev — revolutions

Return Values

傳回一個 double 的雙精度浮點數,表示以指定單位表示的旋轉角度。

velocity#

返回編碼器的旋轉速度。

Available Functions
double velocity(
  velocityUnits units );

Parameters

參數

類型

描述

units

velocityUnits

速度單位:

  • percent 百分比 pct 百分比
  • rpm — 每分鐘轉數
  • dps — 每秒度數

Return Values

傳回一個 double 之間的雙精度浮點數,表示以指定單位表示的速度。