Victor 883 Motor#

Introduction#

The motor_victor class is used to control a Victor 883 Motor Controller connected to a 3-Wire Port. The Victor 883 Motor Controller sends a PWM signal from the V5 Brain to control compatible VEXpro or VEX EDR DC motors that cannot be connected directly to Smart Ports.

The Victor 883 Motor Controller can not be configured in VEXcode and must be manually constructed in code in order to be used.

Class Constructors#

1 Creates a motor_victor object for the Victor 883 Motor Controller connected to the specified 3-Wire Port.

motor_victor( triport::port& port );

2 Creates a motor_victor object on the specified 3-Wire Port and optionally reverses its direction.

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

Class Destructor#

Destroys the motor_victor object and releases associated resources.

~motor_victor();

Parameters#

Parameter

Type

Description

port

triport::port&

The 3-Wire Port that the Victor 883 Motor 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 the positive direction of motor rotation:

  • false (default) — Clockwise rotation is treated as forward (positive direction).
  • true — Counterclockwise rotation is treated as forward (positive direction).

Example#

// Create the motor_victor instance on 3-Wire Port A
motor_victor victor = motor_victor(Brain.ThreeWirePort.A);

// Create the motor_victor instance with reversed direction
motor_victor victor2 = motor_victor(Brain.ThreeWirePort.B, true);

Member Functions#

The motor_victor class includes the following member functions:

  • spin — Spins the motor in a specified direction.

  • stop — Stops the motor.

  • setVelocity — Sets the default velocity for the motor.

  • setReversed — Sets the motor direction to be reversed or not.

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

/* This constructor is required to use a
Victor 883 Motor. Replace the values
as needed. */

// Create the motor_victor instance on 3-Wire Port A
motor_victor victor = motor_victor(Brain.ThreeWirePort.A);

spin#

Spins the motor in the specified direction indefinitely.

Available Functions

1 Spins the motor using the currently configured motor velocity.

void spin(
 directionType dir );

2 Spins the motor 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
  • reverse

velocity

double

The velocity value applied to the motor.

units

velocityUnits

The unit used to represent velocity:

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

Return Values

This function does not return a value.

Notes
  • The motor will continue spinning until stop is called or another movement function is executed.

Examples
// Spin forward, then stop
victor.spin(forward);
wait(1, seconds);
victor.stop();

// Spin forward at 100 rpm
victor.spin(forward, 100, rpm);
wait(1, seconds);
victor.stop();

stop#

Stops the motor from spinning.

Available Functions
void stop();

Parameters

This function does not accept any parameters.

Return Values

This function does not return a value.

Notes
  • Calling stop immediately stops any current motor movement.

Examples
// Spin and then stop
victor.spin(forward);
wait(1, seconds);
victor.stop();

setVelocity#

Sets the default velocity for the Victor 883 Motor. This velocity setting will be used for subsequent calls to any motor functions if a specific velocity is not provided.

Available Functions
void setVelocity(
    double       velocity,
    percentUnits units );

Parameters

Parameter

Type

Description

velocity

double

The velocity value to apply to the motor.

units

percentUnits

The unit used to represent velocity:

  • percent / pct — percent

Return Values

This function does not return a value.

Notes
  • Any subsequent Victor 883 Motor movement function (such as spin) that does not explicitly specify a velocity will use this value.

Examples
// Set velocity to 50%, then spin
victor.setVelocity(50, percent);
victor.spin(forward);

setReversed#

Sets the motor direction to be reversed or not.

Available Functions
void setReversed( bool value );

Parameters

Parameter

Type

Description

value

bool

A boolean value to set the direction to reversed or not:

  • true — Motor direction is reversed
  • false — Motor direction is normal

Return Values

This function does not return a value.

Notes
  • This is the same as changing the reverse parameter in the constructor.

Examples
// Reverse the motor direction
victor.setReversed(true);
victor.spin(forward); // Will actually spin in reverse