红外避障小车程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能小车红外避障c语言程序
#include

bit RandomFactor = 0 ;
bit RandomFactorBuf = 0 ;
#include

#define FLeftMotor P0_2 = 1 ; P0_3 = 0
#define BLeftMotor P0_2 = 0 ; P0_3 = 1

#define FRightMotor P0_5 = 1 ; P0_4 = 0
#define BRightMotor P0_5 = 0 ; P0_4 = 1

#define LeftStop P0_2 = 0 ; P0_3 = 0
#define RightStop P0_4 = 0 ; P0_5 = 0

#define CarStop P0_2 = 0 ; P0_3 = 0 ; P0_4 = 0 ; P0_5 = 0

#define RightSenser P0_0
#define LeftSenser P0_1

//********************************************************

// 左转

//********************************************************

void TurnLeft_1()
{
LeftStop ;
FRightMotor ;

}

//********************************************************

// 快速左转

//********************************************************
void TurnLeft_Fast()
{
BLeftMotor ;
FRightMotor ;
}

//********************************************************

// 右转

//********************************************************
void TurnRight_1()
{
RightStop ;
FLeftMotor ;
}

//********************************************************

// 快速右转

//********************************************************
void TurnRight_Fast()
{
BRightMotor ;
FLeftMotor ;
}

//********************************************************

// 用倒退的方式进行车头右转

//********************************************************
void BTurnRight_1()
{
LeftStop ;
BRightMotor ;
}

//********************************************************

// 用倒退的方式进行车头左转

//********************************************************
void BTurnLeft_1()
{ RightStop ;
BLeftMotor ;
}

//********************************************************

// 前进

//********************************************************

void FCar()
{
FLeftMotor ;
FRightMotor ;
}

//********************************************************

// 后退

//********************************************************
void BCar()
{
BLeftMotor ;
BRightMotor ;
}

//********************************************************

// 壁障程序
//********************************************************
void Obstacle_Avoid(void)
{

if(RightSenser && LeftSenser&&PWM)
{
FCar() ;
}

if((!RightSenser) && LeftSenser&&PWM)
{
BTurnLeft_1() ;
}

if(RightSenser && (!LeftSenser)&&PWM)
{
BTurnRight_1() ;
}

if(!(RightSenser || LeftSenser))
{
RandomFactorBuf = RandomFactor ;
while (!(RightSenser || LeftSenser))
{
if(RandomFactorBuf)
{
BTurnLeft_1() ;
delay (300) ;
}

if(!RandomFactorBuf)
{
BTurnRight_1() ;
delay (300) ;
}

}

}

if(!PWM)
{
LeftStop ;
RightStop ;
}


}
//********************************************************

// 跟随程序

//********************************************************

void Follow(void)
{

if(RightSenser && LeftSenser&&PWM)
{
LeftStop ;
RightStop;
}
if((!RightSenser) && LeftSenser&&PWM)
{
TurnRight_1() ;
}

if(RightSenser && (!LeftSenser)&&PWM)
{
TurnLeft_1() ;
}
if(!(RightSenser || LeftSenser))
{
FCar() ;
}

}

//********************************************************

//********************************************************
main()
{
Timer0Setup(500) ;
Timer1Setup(50) ;

Obstacle_Avoid() ;

// Follow() ;

}



相关文档
最新文档