|
简单的智能车循迹功能,现在要给他加个条件我不会,本人不是计算机专业,稍微懂点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();
- }
- }
复制代码 |
|