我正在尝试在 RobotC 中创建一个非常简单的程序。在此程序中,机器人将向前移动,直到触摸传感器被击中。
#pragma config(Sensor, S2, touchSensor, sensorTouch)
void setMotors(int a, int b){
motor[motorA] = a;
motor[motorB] = b;
}
task main(){
wait1Msec(100);//Wait for sensor to init
setMotors(50, 50);
while(sensorValue(touchSensor) == 0){
//Do Nothing
}
setMotors(0, 0);
}
此代码应该使机器人向前移动,直到触发触摸传感器。 每当我尝试使用触摸传感器做任何事情时,它都不起作用。当我将值输出到调试日志时,按下时显示 180,释放时显示 1024。我通过查看砖块本身的值来验证它是否正常工作。
机器人C版本:4.0
显然,您的触摸传感器停留在 SensorRaw 模式。目前还不清楚 - 从我可以找到的文档 - 如何在代码中解决这个问题,但解决方法是明确地将传感器置于原始模式(以防将来情况发生变化),然后计算布尔值具有这样的函数的值:
bool sensorIsOn(short sensorRawValue)
{
bool isOn = false;
if(sensorRawValue > 512)
{
isOn = true;
}
return isOn;
}