– title: Motor 393 (Motor Controller 29) | VEX EXP - C++ API description: Reference documentation for the motor29 class in VEX EXP C++. Includes constructors, functions, parameters, notes, and usage examples.#

Motor 393 (Motor Controller 29)#

Introduction#

The motor29 class is used to control a Motor Controller 29 connected to a 3-Wire Port. The Motor Controller 29 sends a PWM signal from the EXP Brain to operate a VEX Motor 393.

The VEX Motor Controller 29.

Class Constructors#

1 Creates a motor29 object on the specified 3-Wire Port.

motor29(
    triport::port &port );

2 Creates a motor29 object on the specified 3-Wire Port and changes the positive turning direction.

motor29(
    triport::port &port,
    bool           reverse );

Class Destructor#

Destroys the motor29 object and releases associated resources.

~motor29();

Parameters#

Parameter

Type

Description

port

triport::port&

The 3-Wire Port that the Motor Controller 29 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).

reverse

bool

Sets whether the motor’s spin direction is reversed:

  • false (default) — Does not reverse the motor’s direction.
  • true — Reverses the motor’s direction.

Example#

// Create a Motor Controller 29 instance in 3-Wire Port A
motor29 Motor393_A = motor29(
    Brain.ThreeWirePort.A );

Member Functions#

The motor29 class includes the following member functions:

  • spin — Spins the motor in a specified direction.

  • stop — Stops the motor.

  • setVelocity — Tells the Motor 393 how fast to spin.

  • setReversed — Sets whether the motor’s rotation direction is reversed.

Before calling any motor29 member functions, an instance must be created, as shown below:

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

// Create a Motor Controller 29 instance in 3-Wire Port A
motor29 Motor393_A = motor29(
    Brain.ThreeWirePort.A );

spin#

Spins the Motor 393 in the specified direction forever.

Available Functions

1 Spins using the currently configured velocity.

void spin(
 directionType dir );

2 Spins at the specified velocity.

void spin(
 directionType dir,
 double        velocity,
 velocityUnits units );

Parameters

Parameter

Type

Description

dir

directionType

The direction in which the motor spins: forward or reverse.

velocity

double

The velocity to spin with from 0% to 100% when using percent.

units

velocityUnits

The velocity unit:

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

Return Values

This function does not return a value.

Notes

  • This function is non-waiting and the project will continue executing immediately after the call.

  • The Motor 393 will continue spinning until stop is called or another spin is used.

stop#

Stops the motor.

Available Functions

void stop();

Parameters

This function does not take any parameters.

Return Values

This function does not return a value.

setVelocity#

Tells a Motor 393 how fast to spin. A higher percentage makes the Motor 393 spin faster and a lower percentage makes the Motor 393 spin slower.

Every project begins with each Motor 393 spinning at 50% velocity by default.

Available Functions

void setVelocity(
    double velocity,
    percentUnits units );

Parameters

Parameter

Type

Description

velocity

double

The velocity to spin with from 0% to 100% when using percent.

units

percentUnits

The velocity unit:percent / pct — percent

Return Values

This function does not return a value.

setReversed#

Sets whether the motor’s rotation direction is reversed.

Available Functions

void setReversed(
    bool value );

Parameters

Parameter

Type

Description

value

bool

Whether the Motor 393’s direction is reversed:

  • true — Reverses the Motor 393’s direction.
  • false — Returns the Motor 393’s direction to its default.

Return Values

This function does not return a value.

Notes

  • Calling setReversed is the same as changing the reverse parameter in the constructor.