Brain#

In VEX V5 C++, the Brain is represented by the brain class. You create (or use the default project-provided) Brain object and then access Brain features through its member objects.

Derived Classes#

The brain class serves as a base class for the following derived classes:

  • Screen — This class provides access to the Brain’s built-in color touchscreen, allowing programs to display text, graphics, and receive touch input.

  • Timer — This class provides high-resolution timing utilities for measuring elapsed time and controlling time-based behavior in programs.

  • Battery — This class allows programs to monitor the Brain’s battery status, including voltage, current, capacity, and temperature.

  • ThreeWirePort (triport / 3-Wire Port) — This class provides access to the Brain’s 3-Wire ports for connecting and controlling legacy sensors and devices such as limit switches, potentiometers, and LEDs.

  • SDcard — This class enables reading from and writing to the Brain’s SD card for file storage, data logging, and loading external resources.

Class Constructors#

brain();

Parameters#

The brain constructor uses no parameters.

Notes#

  • Only one brain object should be created in a project.

Example#

// Create the V5 Brain
brain Brain = brain();

Member Functions#

The brain class includes the following member functions:

  • programStop — Stops the currently running project on the V5 Brain.

  • timer — Returns the current value of the Brain’s internal timer in the specified units.

  • resetTimer — Resets the Brain’s internal timer to zero and restarts timing.

  • setTimer — Sets the Brain’s internal timer to a specified value and time unit.

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

// Create the V5 Brain
brain Brain = brain();

programStop#

Stops the currently running project on the V5 Brain.

Available Functions
void programStop();

Parameters

This function does not accept any parameters.

Return Values

This function does not return a value.

Examples
// Stop the project when the Brain screen is pressed
while (true) {
  if (Brain.Screen.pressing()) {
    Brain.programStop();
  }
  wait(20, msec);
}

timer#

Returns the current value of the Brain’s internal timer in the specified units.

Available Functions
double timer(
  timeUnits units );

Parameters

Parameter

Type

Description

units

timeUnits

The unit of time to return:

  • seconds / sec — seconds
  • msec — milliseconds

Return Values

Returns a double representing the elapsed time since the program started, in the specified units.

Examples
  • The timer starts automatically when the project begins.

  • The timer can be reset with the use of resetTimer.

Examples
// Stop the project after 3 seconds
while (Brain.timer(seconds) < 3) {
  wait(20, msec);
}

Brain.programStop();

resetTimer#

Resets the Brain’s internal timer to zero, Afterwards, the timer immediately begins counting up again from zero.

Available Functions
void resetTimer();

Parameters

This function does not accept any parameters.

Return Values

This function does not return a value.

Notes
  • The timer begins counting again immediately after it is reset.

  • Calling resetTimer affects the value returned by subsequent calls to timer.

Examples
// Reset the timer and measure elapsed time
Brain.resetTimer();

while (Brain.timer(sec) < 5) {
  wait(20, msec);
}

// 5 seconds have elapsed since reset
Brain.Screen.print("5 seconds passed");

setTimer#

Sets the Brain’s internal timer to a specified value and time unit.

Available Functions
void setTimer(
  double value,
  timeUnits units );

Parameters

Parameter

Type

Description

value

double

The time to set the timer to, based on the timeUnits provided in the units parameter.

units

timeUnits

The unit used to interpret the value parameter:

  • seconds / sec — seconds
  • msec — milliseconds

Return Values

This function does not return a value.

Notes
  • The timer continues counting forward after being set.

  • Calling setTimer immediately changes the value returned by timer.

Examples
// Set the timer to start at 10 seconds
Brain.setTimer(10, sec);

// Wait until the timer is at 3 seconds
while (Brain.timer(sec) < 3) {
  wait(20, msec);
}

// 5 seconds have elapsed since setTimer was called
Brain.Screen.print("5 seconds passed");