找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助紅外避障小車程序

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

各位大師好,我現(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ā)都是低電平有效
麻煩您指點一下避障的程序該怎么些,先謝謝你了

評分

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

查看全部評分

回復(fù)

使用道具 舉報

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

我已解決此問題,特分享給大家,

我有三個傳感器,分別裝在左、前、右(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;//定義電機Mz電平輸出端口
  sbit my=P1^2;//定義電機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方有障礙物  進行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)//表示前方有障礙物  進行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方有障礙物  進行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前方有障礙物  進行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前方有障礙物  進行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)//表示前有障礙物  進行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
  }
 }
  }

 

回復(fù)

使用道具 舉報

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

我也試運行一下

回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

回復(fù)

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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