找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 4245|回复: 2

疑问:nxc 超声波问题

[复制链接]
发表于 2011-11-29 11:23:22 | 显示全部楼层 |阅读模式

比如我有两个超声波,一个侦测到右转另一个侦测到就左转  问题来了如果我两个超声波都测到的话,我要让它后退 具体程式要怎麼打呢?

如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
发表于 2011-11-29 23:20:22 | 显示全部楼层
#define NEAR 20 // 预设距离为20cm
//右后退
void goBackRight()
{
  OnRev(OUT_B,100);
  Wait(800);
  Off(OUT_B);
}
//左后退
void goBackLeft()
{
  OnRev(OUT_C,100);
  Wait(800);
  Off(OUT_C);
}

//向后
void goBack()
{
  //OnRev(OUT_BC,100);
  OnRevReg(OUT_BC,100,OUT_REGMODE_SPEED);
  Wait(800);
  Off(OUT_BC);
}

//自动往一个方向转弯
void autoTrunOff(){
    SetSensorLowspeed(IN_1); //超声波A
    SetSensorLowspeed(IN_2); //超声波B
    while(true){
       OnFwd(OUT_BC, 60);
       while(SensorUS(IN_1) > NEAR && SensorUS(IN_2) > NEAR);
       Off(OUT_BC);
       int r = 0;
       if(SensorUS(IN_1) <= NEAR && SensorUS(IN_2) > NEAR) {
           goBackRight();  //向右后方
       }else if(SensorUS(IN_1) > NEAR && SensorUS(IN_2) <= NEAR){
           goBackLeft();   //向左后方
       } else{
           goBack();        //向后
       }
       Wait(500);
    }
}

task main()
{
    autoTrunOff() ;
}

基本就是这个样子我没调试接线按照8547的纸质教程上的接
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

发表于 2012-2-16 10:28:15 | 显示全部楼层
while(SensorUS(IN_1) > NEAR && SensorUS(IN_2) > NEAR);
楼上的,问下你这行代码有意义么。。。
如果您觉得我的帖子对您有用,请不吝给我一个“赞”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

手机版|中文乐高 ( 桂ICP备13001575号-7 )

GMT+8, 2024-11-21 20:44 , Processed in 0.097102 second(s), 19 queries .

Powered by Discuz! X3.5

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表