当超声波传感器的值小于5 5cm时,我想停止延时功能。我不能使用中断,因为超声波传感器发送数字信号。这是我的代码。这里的时间延迟函数是,forward();delay(4000);实际上,如果声纳读数在4000ms之前小于5 5cm,我想停止这个forward函数
有谁知道我要做什么吗?
void loop {
if(angleDegrees -10 <headingDegrees && angleDegrees +10 >headingDegrees ) {
forward();
delay(4000);
}
if(safeZone>cm) {
Stop();
}
else {
search();
}
} 发布于 2013-04-05 19:47:13
例如,您可以运行循环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
}
}https://stackoverflow.com/questions/15525981
复制相似问题