资源简介
本小车的驱动板只采用一个L298N驱动板来控制四个电机,两个两个电机并联,传感器采用红外传感器模块,有白线是为0,黑线时为1。
一共用了三个红外传感器模块。(具体的驱动电路和单片机接口程序中都有说明)
代码片段和文件信息
/********************************************************/
//功能:小车寻迹
//功能描述:小车前身有六对红外灰度传感器,
//传感器检测到黑线来控制电机工作,从而达到
//寻线的目的
//时间:2010年3月18日
//***************************头函数**********************//
#include
#include
//***************************位定义*********************//
//bit flag;//小车转向标志变量
sbit left1=P2^0;//小车左轮向前后控制
sbit left2=P2^1;// left1=1left2=0:小车行走,left1=0,left2=1后退
//left1=1,left2=1停止,left1=0,left2=0制动。
sbit right1=P2^2;//小车右轮向前后控制
sbit right2=P2^3;
sbit leftout1=P2^4;//左边灰度转感器1位控制
sbit leftout2=P2^5;//左边灰度转感器2位控制
sbit rightout1 =P2^6;//右边灰度转感器1位控制
sbit rightout2=P2^7;//右边灰度转感器2位控制
sbit midout1=P0^2;///中间灰度传感器1
sbit midout2=P0^3; //中间灰度传感器2
sbit ENABLEA=P0^0;//右电机A使能端控制
sbit ENABLEB=P0^1 ;//左电机B使能端控制
unsigned char highrhighl;//定义高电平时间
unsigned char period=30;//定义PWM周期函数
//unsigned char equal=1;
//********************初始化函数************************//
void init()
{ TH0=(65536-20000)/256;//定时器0初值装载
TL0=(65536-20000)%256;//20ms计时
TH1=(65536-20000)/256;//定时器1初值装载
TL1=(65536-20000)%256;//20ms计时
ET0=1;//定时器中断0允许
TR0=1;//开启定时器T0
ET1=1;//定时器中断1允许
TR1=1;//开启定时器T1
EA=1;//开启总的中断
//left1=1;
//left2=1;
// right1=1;
//right2=1;
leftout1=1;//初始化置一小车控制
leftout2=1; //要必须向单片机写先写一
rightout1=1;
rightout2=1;
}
//*********************延时函数************************//
void delay(unsigned char k)
{unsigned char ijn;
for(i=0;i for(j=0;j<200;j++)
for(n=0;n<500;n++);
}
//******************小车控制函数**********************//
void contorl()
{ if(leftout1==1&&(midout1|midout2)==1)//左端传感器1检测到黑线
{ highr=20;//转速低,轻微调整
highl=20;
right1=1;//右轮行走
right2=0; //(左转弯)
left1=1;//左轮停止
left2=1;
}
if(leftout2==1&&(midout1|midout2)==1)//左端传感器2检测到黑线
{ highr=25; //转速高,大幅度跳整
highl=25;
right1=1;//右轮行走
right2=0; //(左转弯)
left1=1;//左轮停止
left2=1;
}
if(rightout2==1&&(midout1|midout2)==1)//右端传感器1检测到黑线
{ highr=20;//转速低,轻微调整
highl=20;
right1=1;//右轮停止
right2=1; //(右转弯)
left1=1;//左轮行走
left2=0;
}
if(rightout1==1&&(midout1|midout2)==1)//右端传感器2检测到黑线
{ highr=25;//转速低,轻微调整
highl=25;
right1=1;//右轮停止
right2=1; //(右转弯)
left1=1;//左轮行走
left2=0;
}
if((leftout1|leftout2|rightout1|rightout2)==0 && (midout1|midout2)==1)//检测不到黑线则正常行走
{ highr=25;
highl=25;
right1=1; //正常向前行走,加速前进
right2=0;
left1=1;
left2=0;
}
if(leftout1&leftout2&rightout1&rightout2&midout1&midout2)//如果都为黑线则小车停止
{
right1=1;//马达1停止
right2=1;
left1=1;//马达2停止
left2=1;
}
if((midout1|midout2|leftout1|leftout2|rightout1|rightout2)==0) //倒车程序都为白色则倒车
{
highr=25;
highl=25;
right1=0;//马达1反转
right2=1; //(倒车)
left1=0;//马达2反转
left2=1;
}
}
//**********************PWM产生函数1*********************//
void timer0()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6700 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹
文件 4464 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.c
文件 1458 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.hex
文件 33 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.lnp
文件 8081 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.LST
文件 8936 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.M51
文件 7281 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.OBJ
文件 974 2010-03-13 15:13 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.opt.bak
文件 2113 2010-03-13 15:13 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.Uv2.bak
....... 56126 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.uvopt
文件 13249 2010-03-13 16:48 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.uvproj
文件 0 2010-03-13 14:37 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹_Uv2.Bak
....... 56130 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹_uvopt.bak
文件 749 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)\小车寻迹.plg
文件 33774 2010-03-12 16:44 小车巡线(淮信 )\L298N电机驱动.pdf
文件 193 2010-03-20 21:47 小车巡线(淮信 )\说明.txt
文件 66048 2010-03-12 16:44 小车巡线(淮信 )\L298N电机驱动板使用说明.doc
文件 28744 2010-03-20 21:55 小车巡线(淮信 )\IMG0254A.jpg
文件 29048 2010-03-20 21:54 小车巡线(淮信 )\IMG0250A.jpg
文件 32872 2010-03-20 21:54 小车巡线(淮信 )\IMG0251A.jpg
文件 31944 2010-03-20 21:54 小车巡线(淮信 )\IMG0252A.jpg
文件 32336 2010-03-20 21:54 小车巡线(淮信 )\IMG0253A.jpg
..A..H. 68 2010-03-20 21:58 小车巡线(淮信 )\.picasa.ini
目录 0 2010-03-20 21:38 小车巡线(淮信 )\小车寻迹3.18(转弯行走)
目录 0 2010-03-20 21:46 小车巡线(淮信 )
----------- --------- ---------- ----- ----
421321 25
- 上一篇:RASTA--PLP 语音信号的特征提取
- 下一篇:无刷无感电机驱动源程序
评论
共有 条评论