Encoder#

Introduction#

The encoder class is used to measure shaft rotation using the VEX Optical Shaft Encoder connected to a V5 3-Wire port. It tracks rotational movement by detecting changes in the encoder’s internal optical disk.

Class Constructor#

encoder(
  triport::port &port );

Class Destructor#

Destroys the encoder object and releases associated resources.

virtual ~encoder();

Parameters#

Parameter

Type

Description

port

triport::port &

The first 3-Wire Port of a required two-port group used by the Optical Shaft Encoder. The encoder occupies two adjacent ports (A–B, C–D, E–F, or G–H) on either the Brain or a 3-Wire Expander. Specify the first port in the pair (A, C, E, or G), written as Brain.ThreeWirePort.X or ExpanderName.X where X is the port letter (for example, Brain.ThreeWirePort.A or Expander1.C).

Examples#

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

Member Functions#

The encoder class includes the following member functions:

  • setPosition — Sets the recorded position of the Encoder Sensor.

  • position — Returns the current position of the Encoder Sensor.

  • velocity — Returns the velocity of the Encoder Sensor.

Before calling any encoder member functions, a encoder instance must be created, as shown below:

/* 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#

Sets the position of the Encoder Sensor.

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

Parameters

Parameters

Type

Description

value

double

The value to represent the new position.

units

rotationUnits

The unit that represents the new position:

  • degrees
  • turns
Return Values

This function does not return a value.

position#

Returns the current position of the Encoder Sensor.

Available Functions
double position(
  rotationUnits units );

Parameters

Parameters

Type

Description

units

rotationUnits

The unit that represents the position:

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

Return Values

Returns a double representing the rotation in the specified units.

velocity#

Returns the current velocity of the Encoder Sensor.

Available Functions
double velocity(
  velocityUnits units );

Parameters

Parameters

Type

Description

units

velocityUnits

The unit used to represent the velocity:

  • percent / pct — percent
  • rpm — rotations per minute
  • dps — degrees per second

Return Values

Returns a double representing the velocity in the specified units.