• 大小: 227KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: 小车巡线  

资源简介

本小车的驱动板只采用一个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


评论

共有 条评论