ARDUINO MEGA Functions Sensors

From ROBOTC API Guide
Revision as of 01:56, 10 May 2012 by Tfriez (Talk | contribs)

Jump to: navigation, search
ARDUINOFunctions and Variables → ARDUINO MEGA Functions Sensors
Color Key
Function:
Variable:


Information

The VEX 2.0 Cortex is equipped with 20 sensor ports. There are 8 Analog Sensor Ports and 12 Digital Sensor Ports. Note that unlike the VEX - PIC microcontroller, all Analog sensors must be in Analog ports, while all Digital sensors must be in Digital ports.

There are a variety of functions and variables used for configuring these ports and accessing their values.

Configuring sensors can be complicated. ROBOTC has a built-in wizard that can be used to configure the VEX 2.0 Cortex sensors. The wizard contains a number of PC windows that allow you to set the following fields for the sensor:

  • The variable name that you want to assign to the sensor. Using a name like “leftBumper” makes for a more readable program than 'dgtl3'!
  • The port that the sensor is connected to.
  • The type of sensor – touch, quadrature encoder, sonar, line follower, etc.


SensorBoolean

const word SensorBoolean[tSensors sensor]
(word) This returns a true or false reading from the sensor. (Mostly used by Touch sensors).


Parameter Explanation Data Type
sensor A sensor port or name tSensors


while(SensorBoolean[touchSensor]) // Loop while robot's bumper/touch sensor is pressed in
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward
}


SensorRaw

word SensorRaw[tSensors sensor]
(word) This array value will return the "raw" (un-normalized) value of a sensor. Usually this is the raw A-D converted value, which is an analog value between 0 to 1023.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


if(SensorRaw[lightSensor] > 512) // If the Raw Value of the Light Sensor is greater than 512:
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward 
}


SensorType

TSensorTypes SensorType[tSensors sensor]
(TSensorTypes) The SensorType array is used to specify what type of sensor is connected to a certain port. Most users should not have to use this functionality and should use the Motors and Sensor Setup instead.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


SensorType[sonarSensor] = sensorSonar;  // set 'SonarSensor' to be of type sensorSonar (the Motors and 
                                        // sensors Setup screen does this for you in the background)


SensorValue

word SensorValue[tSensors sensor]
(word) This array value returns the value of the sensor in a normalized fashion. Rather than returning a raw value of 0 to 1023, ROBOTC will interpret the data from the "SensorType" and return a more accurate representation of the sensor's data. An example of this is the Light Sensor, which will return a percentage value from 0 to 100.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


while(SensorValue(touchSensor) == 0) //Loop while robot's bumper/touch sensor isn't pressed in
{
   motor[rightMotor] = 63;   // Right motor is run at half (63) power forward
   motor[leftMotor]  = 63;   // Left motor is run at half (63) power forward
}