触摸传感器不工作

时间:2014-07-27 22:26:17

标签: c robot nxt

我正在尝试在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。我已经通过查看砖块本身的值来验证它是否正常工作。

Robot C版本:4.0

1 个答案:

答案 0 :(得分:1)

显然,您的触摸传感器是stuck in SensorRaw mode。目前还不清楚 - 从我可以找到的文档中 - 如何在代码中修复它,但解决方法是将传感器显式置于原始模式(以防将来情况发生变化),然后计算布尔值使用如下函数的值:

bool sensorIsOn(short sensorRawValue)
{
    bool isOn = false;
    if(sensorRawValue > 512)
    {
        isOn = true;
    }
    return isOn;
}