Color Sensor#
Introduction#
The colorsensor class is used to access data from the Color Sensor. It uses reflected light to detect objects, identify colors, and measure brightness and hue.
Class Constructor#
colorsensor Color1 = colorsensor(index);
Class Destructor#
Destroys the colorsensor object and releases associated resources.
virtual ~colorsensor();
Parameters#
Parameter |
Type |
Description |
|---|---|---|
|
|
The Smart Port that the Color Sensor is connected to, written as |
Examples#
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
Member Functions#
The colorsensor class includes the following member functions:
setLight– Turns the Color Sensor’s LED on, off, or to a set brightness level.isNearObject– Returns whether or not an object is close to the Color Sensor.detects– Returns whether or not a specified color is detected by the Color Sensor.colorname– Returns the name of the color detected by the Color Sensor.brightness– Returns the detected brightness of an object.hue– Returns the detected hue value.
Before calling any colorsensor member functions, an colorsensor instance must be created, as shown below:
/* This constructor is required when using VS Code.
Color Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create an colorsensor instance in Port 1
colorsensor Color1 = colorsensor(PORT1);
setLight#
Sets the light power of the Color Sensor’s LED. The light can help the Color Sensor detect objects and colors more clearly.
If the Color Sensor’s light is off, setting the light power above 0% will turn the light on.
If the Color Sensor’s light is on, setting the light power at 0% will turn the light off.
A higher percentage makes the light brighter. A lower percentage makes the light dimmer.
Available Functions1 — Turns the led on or off using
ledState.void setLight( ledState state );
Parameters2 — Turns the led on to a specific intensity.
void setLight( int32_t intensity, percentUnits units = percent );
Parameter |
Type |
Description |
|---|---|---|
|
|
Sets the LED on or off. |
|
|
The power level to set the light from 0 – 100. |
|
|
The unit that represents the light intensity: |
This function does not return a value.
Examples// Set the light power to 50 percent.
Color1.setLight(50, percent);
isNearObject#
Returns if the Color Sensor detects a nearby object.
Available Functionsbool isNearObject();
This function does not accept any parameters.
Return ValuesThis function returns a Boolean indicating if a nearby object is detected:
true– The Color Sensor detects an object.false– The Color Sensor does not detect an object.
// If an object is detected by the Color Sensor, print
// "near object".
if (Color1.isNearObject()){
Brain.Screen.print("near object");
}
detects#
Returns if the Color Sensor is detecting a specified color.
Available Functions1 — Detects a
colorType.bool detects( colorType color );
Parameters2 — Detects a
vex::color.bool detects( vex::color color );
Parameters |
Type |
Description |
|---|---|---|
|
|
A valid color:
|
|
|
A valid custom color, or one of the predefined colors listed above. |
true– The Color Sensor detects the color.false– The Color Sensor does not detect the color.
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Drive until a red object is seen
Drivetrain.drive(forward);
while (true) {
if (Color1.detects(red)) {
Drivetrain.stop();
break;
}
wait(0.5, seconds);
}
}
colorname#
Returns the closest matching color detected.
Available FunctionscolorType colorname();
This function does not accept any parameters.
Return ValuesWhen printed directly, it shows the numeric value associated with that color:
Color |
Numeric Value |
|---|---|
|
0 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
The function
convertColorToStringis automatically created by VEXcode when a Color Sensor is configured in the Devices window. It is only available inside VEXcode IQ projects and will not work in other environments.When using
colornameoutside of VEXcode, comparisons should be made directly with acolorTypevalue — any color that begins withcolorType::(for example,colorType::greenorcolorType::red).
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with "red"
if (convertColorToString(Color1.colorname()) == "red") {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
int main() {
// Initializing Robot Configuration. DO NOT REMOVE!
vexcodeInit();
// Continuously check the detected color
while (true) {
// Compare the color name with the colorType
if (Color1.colorname() == colorType::red) {
Brain.Screen.print("Red object!");
} else {
Brain.Screen.print("Not red");
}
wait(0.5, seconds);
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
}
}
brightness#
Returns the amount of light reflected from the object.
A higher percentage means more light is reflected back to the Color Sensor. A lower percentage means less light is reflected back.
Available Functionsdouble brightness(bool bRaw = false);
Parameter |
Type |
Description |
|---|---|---|
|
|
A Boolean value to read raw brightness data instead of percentage. The default is |
A double representing the brightness detected by the Color Sensor in the range 0 - 100%, or a double representing the raw data detected by the sensor.
Examples// Set a variable, brightness, to the value of the brightness
// detected by the Color Sensor
double brightness = Color1.brightness();
// Print the brightness detected by the Color Sensor to the
// Brain's screen
Brain.Screen.print(brightness);
hue#
Returns the hue detected by the Color Sensor.
Hue is a way to describe color using numbers around a color wheel.

double hue();
This function does not accept any parameters.
Return ValuesA double representing the value of the hue detected by the Color Sensor in the range 0 — 359.00.
Examples// Set a variable, hue, to the value of the hue detected
// by the Color Sensor.
double hue = Color1.hue();