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

QQ登錄

只需一步,快速開始

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

單片機(jī)紅外對(duì)管尋跡小車設(shè)計(jì)

  [復(fù)制鏈接]
ID:402350 發(fā)表于 2019-1-6 11:30 | 顯示全部樓層 |閱讀模式
IMG20190106112257.jpg IMG20190106112405.jpg

IMG20190106112346.jpg
#include <red52.h>
sbit hongwai1=P1^0;   //定義紅外對(duì)管引腳  4個(gè)                  
sbit hongwai2=P1^1;
sbit hongwai3=P1^2;
sbit hongwai4=P1^3;                       
sbit ENA=P0^0;//電機(jī)驅(qū)動(dòng)
sbit M1A=P0^1;                        
sbit M1B=P0^2;                           
sbit M2A=P0^3;                           
sbit M2B=P0^4;                          
sbit ENB=P0^5;
void tingzhi()         //停止
{
   M1A=0;                                 
   M1B=0;                                 
   M2A=0;                                   
   M2B=0;

}

void qianjin()         //前進(jìn)  
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}

void houtui()    //后退
{
   M1A=0;                                   
   M1B=1;                                   
   M2A=0;                                   
   M2B=1;
}

void zuozhuan()          //左轉(zhuǎn)
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=1;
}
void weizuozhuan() //左微轉(zhuǎn)
{
   M1A=1;                                   
   M1B=0;                                   
   M2A=0;                                   
   M2B=0;
}


void youzhuan()           //右轉(zhuǎn)
{  
   M1A=0;                                   
   M1B=1;                                   
   M2A=1;                                   
   M2B=0;

}
void weiyouzhuan()        //右微轉(zhuǎn)                                
{
   M1A=0;                                   
   M1B=0;                                   
   M2A=1;                                   
   M2B=0;
}


void delay_nus(unsigned int i)  //延時(shí)函數(shù)
{
  i=i/10;
  while(--i);
}   
void delay_nms(unsigned int n) //延時(shí)函數(shù)
{
  n=n+1;
  while(--n)  
  delay_nus(900);         

}  
void ControlCar(unsigned char xunji)   
{

  tingzhi();       //首先是停止
switch(xunji)     //根據(jù)swith里面的值來驅(qū)動(dòng)車                     
{
  case 1:                     
  {
    qianjin();
    break;
  }
  case 2:                       
  {
    houtui();                                
    break;
  }
  case 3:                     
  {
    zuozhuan();                              
        break;
  }
  case 4:                        
  {
    youzhuan();                              
        break;
  }
  case 5:                        
  {
    weiyouzhuan();                              
        break;
  }
   case 6:                     
  {
    weizuozhuan();                              
        break;
  }

  case 7:                    
  {
    tingzhi();
        break;                              
  }
}
}
void main()          //主函數(shù)                     
{
   delay_nms (30);//延時(shí)

  ControlCar(7);//停止
  ControlCar(1);//前進(jìn)
   delay_nms (10);

  while(1)                                
  {  
          Start:          //行號(hào)
    ENA=1;//電機(jī)使能
        ENB=1;

   if(hongwai1==0&&hongwai2 == 0 && hongwai3 == 0&&hongwai4==0)   //尋跡模塊的情況判定,4個(gè)尋跡模塊,可以組合為16種情況
   {                                                            //根據(jù)需要選擇
      ControlCar(7);                     
      delay_nms (3);
          goto NextRun;
   }

    if(hongwai1==0&&hongwai2 == 0 && hongwai3 == 0&&hongwai4==1)   
   {   
      ControlCar(6);                     
      delay_nms (3);
          goto NextRun;
   }
    if(hongwai1==0&&hongwai2 == 0 && hongwai3 == 1&&hongwai4==1)   
   {  
      ControlCar(6);                     
      delay_nms (3);
          goto NextRun;
   }
    if(hongwai1==0&&hongwai2 == 0 && hongwai3 == 1&&hongwai4==0)   
   {
     ControlCar(6);                     
      delay_nms (3);
          goto NextRun;
   }
   if(hongwai1==1&&hongwai2 == 0 && hongwai3 == 0&&hongwai4==0)   
   {
      ControlCar(5);                     
      delay_nms (3);
          goto NextRun;
   }
    if(hongwai1==1&&hongwai2 == 1 && hongwai3 == 0&&hongwai4==0)   
   {
      ControlCar(5);                     
      delay_nms (3);
          goto NextRun;
   }
    if(hongwai1==0&&hongwai2 == 1 && hongwai3 == 0&&hongwai4==0)   
   {  
      ControlCar(5);                     
      delay_nms (3);
          goto NextRun;
   }
         if(hongwai1==1&&hongwai2 == 1 && hongwai3 == 1&&hongwai4==1)   
   {
      ControlCar(7);                     
      delay_nms (3);
          goto NextRun;
   }
            if(hongwai1==0&&hongwai2 == 0 && hongwai3 == 0&&hongwai4==0)   
   {
      ControlCar(7);                     
      delay_nms (3);
          goto NextRun;
   }
   if(hongwai1==0&&hongwai2 == 1 && hongwai3 == 1&&hongwai4==1)   
   {
      ControlCar(3);                     
      delay_nms (3);
          goto NextRun;
   }
   if(hongwai1==1&&hongwai2 == 1 && hongwai3 == 1&&hongwai4==0)   
   {
      ControlCar(4);                     
      delay_nms (3);
          break;
          goto NextRun;
   }

   goto Start;          //相當(dāng)于返回  start行
   NextRun:
   ControlCar(1);

}
}



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:487204 發(fā)表于 2019-3-13 19:43 來自手機(jī) | 顯示全部樓層
四輪的用一個(gè)驅(qū)動(dòng)模塊行嗎
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-4-5 17:04 | 顯示全部樓層
123qs 發(fā)表于 2019-3-13 19:43
四輪的用一個(gè)驅(qū)動(dòng)模塊行嗎

可以的
回復(fù)

使用道具 舉報(bào)

ID:506440 發(fā)表于 2019-4-7 19:30 | 顯示全部樓層
請(qǐng)問是stc12c5a60s2的嗎
回復(fù)

使用道具 舉報(bào)

ID:502460 發(fā)表于 2019-4-10 09:53 來自手機(jī) | 顯示全部樓層
123qs 發(fā)表于 2019-3-13 19:43
四輪的用一個(gè)驅(qū)動(dòng)模塊行嗎

可以,左側(cè)兩個(gè)輪子接一個(gè)輸出口,右側(cè)輪子接一個(gè)輸出口。
回復(fù)

使用道具 舉報(bào)

ID:369974 發(fā)表于 2019-4-10 16:28 | 顯示全部樓層
請(qǐng)問這個(gè)速度怎么控制
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-4-10 19:57 | 顯示全部樓層
求大神寫編程 發(fā)表于 2019-4-7 19:30
請(qǐng)問是stc12c5a60s2的嗎

stc51
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-4-10 19:58 | 顯示全部樓層
zpj159 發(fā)表于 2019-4-10 16:28
請(qǐng)問這個(gè)速度怎么控制

pwm調(diào)速,定時(shí)器調(diào)脈沖寬度
回復(fù)

使用道具 舉報(bào)

ID:517628 發(fā)表于 2019-4-21 10:54 | 顯示全部樓層
請(qǐng)問能把您做的c51循跡小車的電路圖發(fā)給我嗎??還有配件清單
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-4-25 08:42 | 顯示全部樓層
dats333 發(fā)表于 2019-4-21 10:54
請(qǐng)問能把您做的c51循跡小車的電路圖發(fā)給我嗎??還有配件清單

L298N電機(jī)驅(qū)動(dòng)模塊,紅外對(duì)管,最小系統(tǒng),電源,
回復(fù)

使用道具 舉報(bào)

ID:514746 發(fā)表于 2019-5-8 13:06 來自手機(jī) | 顯示全部樓層
請(qǐng)問樓主可以發(fā)工程嗎?
回復(fù)

使用道具 舉報(bào)

ID:514746 發(fā)表于 2019-5-14 10:26 來自手機(jī) | 顯示全部樓層
請(qǐng)問這是用一個(gè)l298nma
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-5-14 12:40 | 顯示全部樓層
Rainson 發(fā)表于 2019-5-14 10:26
請(qǐng)問這是用一個(gè)l298nma

嗯,我使用了一個(gè),兩個(gè)也可以
回復(fù)

使用道具 舉報(bào)

ID:498152 發(fā)表于 2019-5-14 20:24 來自手機(jī) | 顯示全部樓層
這個(gè)可以用嗎?
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-5-16 20:58 | 顯示全部樓層

可以
回復(fù)

使用道具 舉報(bào)

ID:564037 發(fā)表于 2019-6-16 23:36 | 顯示全部樓層
我的電機(jī)驅(qū)動(dòng)模塊用的是L1109S,但我覺得原理都一樣,不過我實(shí)現(xiàn)不了循跡,就像一個(gè)斷了線的風(fēng)箏一樣,走的是唯心派,可以幫我解決一下嗎,我可以把代碼發(fā)給你
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-6-17 10:28 | 顯示全部樓層
電信172 發(fā)表于 2019-6-16 23:36
我的電機(jī)驅(qū)動(dòng)模塊用的是L1109S,但我覺得原理都一樣,不過我實(shí)現(xiàn)不了循跡,就像一個(gè)斷了線的風(fēng)箏一樣,走的 ...

嗯吶,可以發(fā)過來一起學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:539167 發(fā)表于 2019-6-18 16:16 來自手機(jī) | 顯示全部樓層
能循黑線走不?
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-6-19 09:50 | 顯示全部樓層

可以尋黑線
回復(fù)

使用道具 舉報(bào)

ID:539167 發(fā)表于 2019-6-19 14:12 來自手機(jī) | 顯示全部樓層
止于心 發(fā)表于 2019-6-19 09:50
可以尋黑線

為啥我檢測(cè)到黑線就走不動(dòng)
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-6-19 16:07 | 顯示全部樓層
來日可期1 發(fā)表于 2019-6-19 14:12
為啥我檢測(cè)到黑線就走不動(dòng)

你可以調(diào)整一下紅外對(duì)管之間的距離
回復(fù)

使用道具 舉報(bào)

ID:526830 發(fā)表于 2019-8-5 20:20 | 顯示全部樓層
你好,這樣不需要用到晶振嗎
回復(fù)

使用道具 舉報(bào)

ID:611926 發(fā)表于 2019-9-19 09:20 來自手機(jī) | 顯示全部樓層
請(qǐng)問這個(gè)紅外模塊的電路是怎樣的?
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-9-20 21:03 | 顯示全部樓層
厚樸 發(fā)表于 2019-8-5 20:20
你好,這樣不需要用到晶振嗎

需要,最小系統(tǒng)里面有
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2019-9-20 21:05 | 顯示全部樓層
qq19990601 發(fā)表于 2019-9-19 09:20
請(qǐng)問這個(gè)紅外模塊的電路是怎樣的?

紅外對(duì)管一共有三個(gè)接口,一個(gè)接vcc一個(gè)接gnd還有一個(gè)接單片機(jī)的IO口,具體的可以上網(wǎng)查一下手冊(cè)。
回復(fù)

使用道具 舉報(bào)

ID:434283 發(fā)表于 2020-2-24 11:17 | 顯示全部樓層
有沒有PCB、原理圖
回復(fù)

使用道具 舉報(bào)

ID:808225 發(fā)表于 2020-8-7 22:38 | 顯示全部樓層
樓主,請(qǐng)問,在轉(zhuǎn)彎處,在檢測(cè)到黑線后,電機(jī)沒來得及反應(yīng),小車就沖出黑線了,應(yīng)該怎么調(diào)?
回復(fù)

使用道具 舉報(bào)

ID:692524 發(fā)表于 2020-8-9 18:20 | 顯示全部樓層
樓主,頭文件寫錯(cuò)了嗎?應(yīng)該是#include<reg51.h>??
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2020-11-13 15:37 | 顯示全部樓層
漠城 發(fā)表于 2020-8-7 22:38
樓主,請(qǐng)問,在轉(zhuǎn)彎處,在檢測(cè)到黑線后,電機(jī)沒來得及反應(yīng),小車就沖出黑線了,應(yīng)該怎么調(diào)?

可以用pwm調(diào)速
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2020-11-13 15:38 | 顯示全部樓層
三旬 發(fā)表于 2020-8-9 18:20
樓主,頭文件寫錯(cuò)了嗎?應(yīng)該是#include??

我用的是52系列的單片機(jī)
回復(fù)

使用道具 舉報(bào)

ID:848452 發(fā)表于 2020-11-26 19:55 | 顯示全部樓層
123qs 發(fā)表于 2019-3-13 19:43
四輪的用一個(gè)驅(qū)動(dòng)模塊行嗎

可以的。。。
回復(fù)

使用道具 舉報(bào)

ID:926637 發(fā)表于 2021-5-27 14:32 | 顯示全部樓層
紅外對(duì)管怎么接上去
回復(fù)

使用道具 舉報(bào)

ID:402350 發(fā)表于 2021-6-19 21:33 | 顯示全部樓層
自傳zz 發(fā)表于 2021-5-27 14:32
紅外對(duì)管怎么接上去

看程序定義的端口
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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