// Read GP2D12 Sensor output and displays distance (in cm) // on RCX display (requires RCX 2 firmware) int value,temp; task main() { SetUserDisplay(value,1); // Display "value" on LCD SetSensor(SENSOR_1,SENSOR_LIGHT); // Active mode: starts charging sensor Wait(100); // Wait for full charge on startup until (false) { SetSensor(SENSOR_1,SENSOR_TOUCH); // Passive mode: starts measure Wait(5); // Wait for GP2D12 conversion time (50ms) SetSensorMode(SENSOR_1,SENSOR_MODE_RAW); temp=SENSOR_1; // reads sensor value SetSensor(SENSOR_1,SENSOR_LIGHT); // Recharge sensor Wait(25); // for 250 ms temp=10000/((21*temp+6*temp/10)/100-72)-20; //linearize and convert in mm value=temp; // displays distance in cm (format:xx.x) } }