Potentiometer#

Introduction#

The pot and potV2 classes are used with Potentiometers, which are analog sensors that measure the angular position of a rotating shaft. A Potentiometer outputs a voltage proportional to its position.

Depending on the Potentiometer version, the amount of rotation it can detect varies:

  • Potentiometer - Up to 250 degrees

  • Potentiometer V2 - 330 degrees (Continuous)

The VEX EXP Potentiometer V1.

The VEX EXP Potentiometer V2.

Potentiometer

Potentiometer V2

Potentiometer#

Class Constructors#

pot(
  triport::port &port );

Class Destructor#

Destroys the pot object and releases associated resources.

~pot();

Parameters#

Parameter

Type

Description

port

triport::port &

The 3-Wire Port the Potentiometer is connected to, written as Brain.ThreeWirePort.X or ExpanderName.X, where X is the port letter (for example, Brain.ThreeWirePort.A or Expander1.A).

Example#

// Create a pot instance in Port A
pot PotentiometerA = pot(Brain.ThreeWirePort.A);

Potentiometer V2#

Class Constructors#

potV2(
  triport::port &port );

Class Destructor#

Destroys the potV2 object and releases associated resources.

~potV2();

Parameters#

Parameter

Type

Description

port

triport::port &

The 3-Wire Port the Potentiometer V2 is connected to, written as Brain.ThreeWirePort.X or ExpanderName.X, where X is the port letter (for example, Brain.ThreeWirePort.A or Expander1.A).

Examples#

// Create a Potentiometer V2 on 3-Wire Port A
potV2 PotentiometerV2A = potV2(Brain.ThreeWirePort.A);

Member Functions#

The pot and potV2 classes include the following member functions:

  • angle — Returns the angular position of the Potentiometer in degrees or as a percent.

Before calling any pot or potV2 member functions, a pot or potV2 instance must be created, as shown below:

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

// Create a potV2 instance in Port A
potV2 PotentiometerV2A = potV2(Brain.ThreeWirePort.A);

angle#

Returns the angular position of the Potentiometer.

1 This function represents the angle as a percent.

int32_t angle (
  percentUnits units = percentUnits::pct );

2 This function represents the angle as the chosen rotation units.

double angle(
  rotationUnits units );

Parameters

Parameter

Type

Description

units

percentUnits

The unit that represents the position as a percentage of full rotation: percent / pct (default) — percent, from 0 to 100%.

units

rotationUnits

The unit that represents the angle:

  • deg / degrees — degrees, from 0 to 250 for a Potentiometer or 0 to 330 for a Potentiometer V2
  • turns / rev — revolutions

Return Values

Returns:

  • An int32_t when using percentUnits.

  • A double when using rotationUnits.

Examples
// Get the current angle of the Potentiometer V2 in the
// range 0 to 330 degrees.
double angle = PotentiometerV2A.angle(degrees);

// Print the current angle of the Potentiometer to the
// brain screen.
Brain.Screen.print(angle);