Arduino智能车如何让它在指定第几次碰到黑线停止
简单的智能车循迹功能,现在要给他加个条件我不会,本人不是计算机专业,稍微懂点c基础,不确定循环总是加不对,有没有大神帮帮我,小车想让它在遇到第三根黑线时候停止(四个传感器都碰到黑线第三次即: if (SL == HIGH&&SR==HIGH&&SL_1==HIGH && SR_1== HIGH)这个条件满足第三次,brake()是停止代码 )。万分感谢!有需要我提供的我会尽快恢复您!下面是我的loop语句void loop(){
while(1)
{ int i;
//有信号为LOW没有信号为HIGH
SR = digitalRead(SensorRight);//有信号表明在白色区域,车子底板上L3亮;没信号表明压在黑线上,车子底板上L3灭
SL = digitalRead(SensorLeft);//有信号表明在白色区域,车子底板上L2亮;没信号表明压在黑线上,车子底板上L2灭
SL_1 = digitalRead(SensorLeft_1);
SR_1 = digitalRead(SensorRight_1);
if (SL == LOW&&SR==LOW&&SL_1==LOW && SR_1== LOW)
run(10);
else if (SL_1 == LOW && SL == LOW && SR==HIGH && SR_1== LOW ) // 右循迹红外传感器,检测到信号,车子向左偏离轨道,向右转
left(30);
else if(SL_1==LOW && SL== HIGH&&SR == LOW &&SR_1==LOW)
right(30);
else if(SL_1==HIGH && SL == LOW && SR==LOW && SR_1==LOW)
sright(30);
else if(SL_1==LOW && SL == LOW && SR==LOW && SR_1==HIGH)// 左循迹红外传感器,检测到信号,车子向右偏离轨道,向左转
sleft(30);
else if(SL_1 == LOW && SL == LOW && SR==HIGH && SR_1== HIGH)
left(30);
else if(SL_1==HIGH && SL== HIGH&&SR == LOW &&SR_1==LOW)
right(30);
if (SL == HIGH&&SR==HIGH&&SL_1==HIGH && SR_1== HIGH)
brake();
}
} 我的想法是定义一个flag,每进一次if,flag加1,当flag等于3时执行停止函数,同时将flag清0 :lol楼上标准套路解决方案
页:
[1]