Page 72 - The Unofficial Guide to Lego Mindstorms Robots
P. 72
61
SetSensor(expression sensor, const configuration)
T his command tells the RCX how to configure the given input. Valid values for sensor are SENSOR_1, SENSOR_2, and
SENSOR_3, which represent the three inputs of the RCX. The sensor configuration s are detailed in Table 4-1. See Appendix
A , Finding Parts and Programming Environments, which lists the sensors that are available for the RCX.
Table 4-1. NQC Sensor Modes
Configuration Sensor Type Input Value ClearSensor()
SENSOR_TOUCH Touch 1 (pressed) or 0 (not pressed) -
SENSOR_LIGHT Light 0 (dark) to 100 (bright) -
SENSOR_ROTATION Rotation 16 units per full rotation yes
SENSOR_CELSIUS Temperature Celsius degrees times 10 -
SENSOR_FAHRENHEIT Temperature Fahrenheit degrees times 10 -
S ENSOR_PULSE Touch Count of presses yes
SENSOR_EDGE Touch Count of state transitions yes
The actual sensor value can be read using SENSOR_1, SENSOR_2, and SENSOR_3. These are shorthand for the following
command:
SensorValue(const input)
This command returns the current value of the given input, which should be 0, 1, or 2, for input 1, input 2, and input 3
respectively. The values returned from an input depend on the i nput's configuration and are described in Table 4-1.
SENSOR_1, SENSOR_2, a nd SENSOR_3 actually have a dual purpose in life. Their first purpose is to
identify the inputs on the RCX to co mmands like
SetSens or(). Their second purpose is to ret rieve values from the inputs. Thus, there are two distinct uses for
SENSOR_1, SENSOR_2, and SENSOR_3.
The SENSOR_PULSE and SENSOR_EDGE configurations are variations on SENSOR_TOUCH. The SENSOR_PULSE
configuration counts the times the touch sensor has been pressed, while SENSOR_EDGE counts the transitions from on to off
and from off to on. When you read the value of an input in one of these configurations, the input value is the accumulated
count.
The configurations that keep a count can be reset with a call to ClearSensor() (as shown in Table 4-1):
ClearSensor(expression sensor)
This command resets the current count for the given input to 0.