Encoder#
Introduction#
The encoder class is used with the Optical Shaft Encoder, which measures the rotational position and speed of a shaft. It uses internal optical sensors to detect how far and how fast the shaft turns, making it useful for tracking wheel rotation, arm position, or other mechanisms.

Class Constructor#
encoder(
triport::port &port );
Class Destructor#
Destroys the encoder object and releases associated resources.
virtual ~encoder();
Parameters#
Parameter |
Type |
Description |
|---|---|---|
|
|
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 |
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 encoder’s current position to a specified value.position— Returns how far the encoder has rotated.velocity— Returns the current rotational velocity of the encoder.
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 encoder’s current position to a specified value. This can be used to manually set the tracked position without rotating a motor or other mechanism.
Available Functionsvoid setPosition(
double value,
rotationUnits units);
Parameters |
Type |
Description |
|---|---|---|
|
|
The rotational position to set. |
|
|
The unit that represents the position:
|
This function does not return a value.
position#
Returns how far the shaft connected to the encoder has rotated.
Available Functionsdouble position(
rotationUnits units );
Parameters |
Type |
Description |
|---|---|---|
|
|
The unit that represents the position:
|
Returns a double representing the rotation in the specified units.
velocity#
Returns the rotational velocity of the encoder.
Available Functionsdouble velocity(
velocityUnits units );
Parameters |
Type |
Description |
|---|---|---|
|
|
The unit used to represent the velocity:
|
Returns a double representing the velocity in the specified units.