各位大師好,我現(xiàn)在遇到難題了,希望高手能幫忙指點解決一下,感激不盡,
我需要寫避障循跡程序,端口分配大致是這樣:
p1.2 右轉(zhuǎn)方向信號
p1.5 左轉(zhuǎn)方向信號
p1.3 左輪pwm調(diào)速信號
p1.4 右輪pwm調(diào)速信號
p0.0 左邊紅外避障傳感器輸入信號
p0.1 前邊紅外避障傳感器輸入信號
p0.2 右邊紅外避障傳感器輸入信號
p2.0----p2.7 為循跡傳感器信號輸入
共有16路用2個鎖存器控制,只用p2口
實現(xiàn)功能:當(dāng)左邊傳感器被觸發(fā)小車右轉(zhuǎn)
當(dāng)前邊傳感器被觸發(fā)小車左轉(zhuǎn)
當(dāng)右邊傳感器被觸發(fā)小車左轉(zhuǎn)
當(dāng)左、前邊傳感器被觸發(fā)小車右轉(zhuǎn)
當(dāng)右、前邊傳感器被觸發(fā)小車左轉(zhuǎn)
當(dāng)同時觸發(fā)時,小車后退,直到左、右兩側(cè)傳感器中的任意一個停止觸發(fā),小車停止倒退
以上觸發(fā)都是低電平有效
麻煩您指點一下避障的程序該怎么些,先謝謝你了
我已解決此問題,特分享給大家,
我有三個傳感器,分別裝在左、前、右(z、q、y)
程序如下:
#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit z=P0^0;//定義紅外避障檢測端口 sbit q=P0^4; sbit y=P0^2; sbit mz=P1^5;//定義電機(jī)Mz電平輸出端口 sbit my=P1^2;//定義電機(jī)My電平輸出端口 void delay_ms(uint z);//聲明延時函數(shù) main()//主函數(shù) { uint i=0;//初始值設(shè)定 mz=1; my=1; while(1)//無限循環(huán) { if(z==0&&q==1&&y==1)//表示z方有障礙物 進(jìn)行y轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=1; my=0; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==1&&q==0&&y==1)//表示前方有障礙物 進(jìn)行y轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=1; my=0; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==1&&q==1&&y==0)//表示y方有障礙物 進(jìn)行z轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=0; my=1; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==0&&q==0&&y==1)//表示z前方有障礙物 進(jìn)行y轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=1; my=0; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==1&&q==0&&y==0)//表示y前方有障礙物 進(jìn)行z轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=0; my=1; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==0&&q==0&&y==0)//表示前有障礙物 進(jìn)行hou轉(zhuǎn)向 { for(i=0;i<5;i++) { mz=0; my=0; delay_ms(100);//狀態(tài)保持100ms mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } if(z==1&&q==1&&y==1)//表示前方無障礙物 直線行駛 { mz=1; my=1; delay_ms(2);//狀態(tài)保持2ms } } }
我也試運行一下
zhangbiao 發(fā)表于 2011-7-3 09:04
**** 作者被禁止或刪除 內(nèi)容自動屏蔽 ****
zhangbiao 發(fā)表于 2011-7-3 09:04
我已解決此問題,特分享給大家,
我有三個傳感器,分別裝在左、前、右(z、q、y)
程序如下:
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |