找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 26810|回復(fù): 13
收起左側(cè)

求助紅外避障小車(chē)程序

  [復(fù)制鏈接]
ID:29354 發(fā)表于 2011-6-16 16:29 | 顯示全部樓層 |閱讀模式

各位大師好,我現(xiàn)在遇到難題了,希望高手能幫忙指點(diǎn)解決一下,感激不盡,
我需要寫(xiě)避障循跡程序,端口分配大致是這樣:

p1.2 右轉(zhuǎn)方向信號(hào)
p1.5 左轉(zhuǎn)方向信號(hào)
p1.3 左輪pwm調(diào)速信號(hào)
p1.4 右輪pwm調(diào)速信號(hào)
p0.0 左邊紅外避障傳感器輸入信號(hào)
p0.1 前邊紅外避障傳感器輸入信號(hào)
p0.2 右邊紅外避障傳感器輸入信號(hào)
p2.0----p2.7 為循跡傳感器信號(hào)輸入
共有16路用2個(gè)鎖存器控制,只用p2口
實(shí)現(xiàn)功能:當(dāng)左邊傳感器被觸發(fā)小車(chē)右轉(zhuǎn)
          當(dāng)前邊傳感器被觸發(fā)小車(chē)左轉(zhuǎn)
          當(dāng)右邊傳感器被觸發(fā)小車(chē)左轉(zhuǎn)
          當(dāng)左、前邊傳感器被觸發(fā)小車(chē)右轉(zhuǎn)
          當(dāng)右、前邊傳感器被觸發(fā)小車(chē)左轉(zhuǎn)
          當(dāng)同時(shí)觸發(fā)時(shí),小車(chē)后退,直到左、右兩側(cè)傳感器中的任意一個(gè)停止觸發(fā),小車(chē)停止倒退
 以上觸發(fā)都是低電平有效
麻煩您指點(diǎn)一下避障的程序該怎么些,先謝謝你了

評(píng)分

參與人數(shù) 1黑幣 +3 收起 理由
idealize + 3 絕世好帖!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:29354 發(fā)表于 2011-7-3 09:04 | 顯示全部樓層

我已解決此問(wèn)題,特分享給大家,

我有三個(gè)傳感器,分別裝在左、前、右(z、q、y)

程序如下:

 

#include<reg51.h>   
  #define uint unsigned int   
  #define uchar unsigned char   
  sbit z=P0^0;//定義紅外避障檢測(cè)端口
  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í)函數(shù)


  main()//主函數(shù)
  {
   uint i=0;//初始值設(shè)定
   mz=1;
 my=1;
 while(1)//無(wú)限循環(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)//表示前方無(wú)障礙物  直線行駛
  {
   mz=1;
   my=1;
   delay_ms(2);//狀態(tài)保持2ms
  }
 }
  }

 

回復(fù)

使用道具 舉報(bào)

ID:30241 發(fā)表于 2011-8-11 19:53 | 顯示全部樓層

我也試運(yùn)行一下

回復(fù)

使用道具 舉報(bào)

ID:35193 發(fā)表于 2012-3-20 18:03 | 顯示全部樓層
紅外電路是什么樣的?
回復(fù)

使用道具 舉報(bào)

ID:61852 發(fā)表于 2014-5-15 01:28 | 顯示全部樓層
請(qǐng)問(wèn)您的問(wèn)題解決了嗎,能否分享一下經(jīng)驗(yàn)?zāi)?新人在此謝過(guò)
回復(fù)

使用道具 舉報(bào)

ID:69012 發(fā)表于 2014-11-18 23:23 | 顯示全部樓層
vrghdgd
回復(fù)

使用道具 舉報(bào)

ID:110935 發(fā)表于 2016-3-27 19:27 | 顯示全部樓層
就這么簡(jiǎn)單?
回復(fù)

使用道具 舉報(bào)

ID:81140 發(fā)表于 2016-7-21 11:39 | 顯示全部樓層
zhangbiao 發(fā)表于 2011-7-3 09:04
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

跪求大神 完整電路圖
回復(fù)

使用道具 舉報(bào)

ID:219079 發(fā)表于 2017-7-12 15:07 | 顯示全部樓層
i是什么?距離嗎?
回復(fù)

使用道具 舉報(bào)

ID:334186 發(fā)表于 2018-5-20 14:08 來(lái)自手機(jī) | 顯示全部樓層
你好,跪求電路圖和程序
回復(fù)

使用道具 舉報(bào)

ID:334698 發(fā)表于 2018-5-21 10:53 | 顯示全部樓層
zhangbiao 發(fā)表于 2011-7-3 09:04
我已解決此問(wèn)題,特分享給大家,
我有三個(gè)傳感器,分別裝在左、前、右(z、q、y)
程序如下:

樓主主函數(shù)少了個(gè)“}”
回復(fù)

使用道具 舉報(bào)

ID:482433 發(fā)表于 2019-3-31 18:00 | 顯示全部樓層
電路圖

回復(fù)

使用道具 舉報(bào)

ID:482433 發(fā)表于 2019-3-31 19:05 | 顯示全部樓層
有沒(méi)圖
回復(fù)

使用道具 舉報(bào)

ID:505803 發(fā)表于 2019-4-6 17:30 | 顯示全部樓層
也再了解紅外避障小車(chē)的資料,學(xué)習(xí)了,謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表