当超声波传感器值<1时,我想停止延时功能。 5厘米。 我不能使用中断,因为超声波传感器发送数字信号。 在这里我的代码。这里的延时功能是, 向前(); 延迟(4000); 实际上,如果声纳读数在4000ms之前<5cm
,我想要停止此向前功能任何人都知道我必须做什么?
void loop {
if(angleDegrees -10 <headingDegrees && angleDegrees +10 >headingDegrees ) {
forward();
delay(4000);
}
if(safeZone>cm) {
Stop();
}
else {
search();
}
}
答案 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
}
}