資源簡介
本小車的驅動板只采用一個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 語音信號的特征提取
- 下一篇:無刷無感電機驅動源程序
評論
共有 條評論