一、设计简介:
本设计是基于51单片机红外循迹、红外避障、遥控小车系统设计,主要实现以下功能:
1.开机默认红外遥控模式,通过遥控器上的前后左右可以调节行驶方向。
2.按下2键切换为红外避障模式,单侧遇到障碍物转动躲避,双侧均有障碍物向后旋转掉头躲避;
3.按下3键为红外循迹模式,循迹过程中如果红外避障探头检测到有障碍物,小车会停止前进。
4.遥控器左上角的红色按键可以让小车停止运行,并切换为红外遥控模式。
主要硬件组成:
51单片机+最小系统+L293D电机驱动模块+稳压电路+按键电路+红外避障电路+红外遥控电路+红外循迹电路
二、原理图
三、PCB图
四、程序源码
部分代码:
if(f==1)
{
if(Tc>Inum1&&Tc<Inum3)
{
Im[m/8]=Im[m/8]>>1|0x80; m++;
}
if(Tc>Inum2&&Tc<Inum1)
{
Im[m/8]=Im[m/8]>>1; m++; //取码
}
if(m==32)
{
m=0;
f=0;
if(Im[2]==~Im[3])
{
IrOK=1;
}
else IrOK=0; //取码完成后判断读码是否正确
}
//准备读下一码
}
}
/************************************************************************/
//全速前进
void run(void)
{
Left_moto_go ; //左电机往前走
Right_moto_go ; //右电机往前走
}
//全速后退
void backrun(void)
{
Left_moto_back ; //左电机后退
Right_moto_back ; //右电机后退
}
//右转
void rightrun(void)
{
Left_moto_go ; //左电机前进
Right_moto_Stop ; //右电机停止
}
//左转
void leftrun(void)
{
Left_moto_Stop ; //左电机停止
Right_moto_go ; //右电机前进
}
//STOP
void stoprun(void)
{
Left_moto_Stop ; //左电机停止
Right_moto_Stop ; //右电机停止
}
//向右原地打转(掉头)
void rightspin(void)
{
Left_moto_go ; //左电机往前走
Right_moto_back ; //右电机往前走
}
/*********************************************************************/
/*--主函数--*/
void main(void)
{
m=0;
f=0;
IT0=1;
EX0=1;
TMOD=0x11;
TH0=0;
TL0=0;
TR0=1;
EA=1;
yk=1;
bz=0;
xj=0;
delay(100);
while(1) /*无限循环*/
{
if(IrOK==1) //如果处理好后进行红外处理
{
switch(Im[2])
{
case 0x0C: yk=1;bz=0;x
五、资源获取
本项目包含的所有文件都可以点击下面的名片,发送 “ 39、基于51单片机红外循迹、红外避障、遥控小车系统设计 ” 获取!
项目纯手打,不是免费的哦~
希望可以帮到你哈!