如何停止延时功能

时间:2013-03-20 14:12:50

标签: arduino

当超声波传感器值<1时,我想停止延时功能。 5厘米。 我不能使用中断,因为超声波传感器发送数字信号。 在这里我的代码。这里的延时功能是,                            向前();                            延迟(4000); 实际上,如果声纳读数在4000ms之前<5cm

,我想要停止此向前功能

任何人都知道我必须做什么?

void loop {
    if(angleDegrees -10 <headingDegrees && angleDegrees +10 >headingDegrees  ) {
        forward();
        delay(4000);
    }
    if(safeZone>cm) {
        Stop();
    }
    else {
        search();
    }
}   

1 个答案:

答案 0 :(得分:1)

例如,您可以运行40次循环,每次检查超声波传感器读数。 例如:

void loop {
if(angleDegrees -10 <headingDegrees && angleDegrees +10 >headingDegrees  ) {
    forward();
    for(int times=0; times<40; times++) //runs 40 times
    { 
        search(); //Check the sensor
        if(cm<safeZone)
        {
            Stop();
            break; //This exits the for loop
        }
        delay(100); //Waits for 100 ms
    }
}