找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單發(fā)單收超聲波主動(dòng)跟隨小車的arduino程序

[復(fù)制鏈接]
ID:422753 發(fā)表于 2018-11-8 12:14 | 顯示全部樓層 |閱讀模式
單發(fā)單收超聲波跟隨小車程序

單片機(jī)源程序如下:
  1. const int IN1 = 20;//定義控制IO口“D20”
  2. const int IN2 = 21;//定義控制IO口“D21”
  3. const int IN3 = 22;//定義控制IO口“D22”                        
  4. const int IN4 = 23;//定義控制IO口“D23”
  5. const int ENA = 3; //定義控制PWM輸出口“3”                        
  6. const int ENB = 4; //定義控制PWM輸出口“4”
  7. const int Bled = 13; //背光燈控制腳定義D13
  8. const int buzzer= 12; //蜂鳴器控制腳定義D9
  9. const int voltPin = A3; //定義電壓檢測接口A5模擬口。
  10. const int LSPPin = A7; //定義電壓檢測接口A5模擬口。
  11. const int RSPPin = A6; //定義電壓檢測接口A5模擬口。
  12. const int FSPPin = A5; //定義電壓檢測接口A5模擬口。
  13. int LSP=0,RSP=0,LRSP=0,FSP=0;
  14. int chazhi=300;
  15. void setup() {
  16.   pinMode(IN1, OUTPUT);//定義控制IO口為輸出“D2”
  17.   pinMode(IN2, OUTPUT);//定義控制IO口為輸出“D3”
  18.   pinMode(IN3, OUTPUT);//定義控制IO口為輸出“D4”
  19.   pinMode(IN4, OUTPUT);//定義控制IO口為輸出“D5”
  20.   pinMode(ENA, OUTPUT);//定義控制IO口為輸出“D4”
  21.   pinMode(ENB, OUTPUT);//定義控制IO口為輸出“D5”
  22.   pinMode(Bled, OUTPUT); //LCD背光燈控制口設(shè)置為輸出
  23.   pinMode(buzzer, OUTPUT); // 將蜂鳴器引腳9設(shè)置為輸出
  24.   Serial.begin(9600);
  25. }
  26. void loop() {
  27.   FSP = analogRead(FSPPin);
  28.   delay(1);
  29.   LSP = analogRead(LSPPin);
  30.   delay(1);
  31.   RSP = analogRead(RSPPin);
  32.   delay(1);
  33.   LRSP = abs(LSP - RSP);
  34.   Serial.print("robot=");
  35.   Serial.print(FSP);
  36.    Serial.print(",");
  37.    Serial.print(LSP);
  38.    Serial.print(",");
  39.    Serial.print(RSP);
  40.    Serial.print(",");
  41.    Serial.println(LRSP);
  42.    if (LSP > RSP && LRSP > chazhi) {
  43.      zuo(255);
  44.    }
  45.     if (LSP < RSP && LRSP > chazhi) {
  46.     you(255);
  47.    }
  48.    if(FSP > 20 && LRSP < 200){
  49.     qian(255);
  50.    } else
  51.    if(FSP <20){
  52.     ting();
  53.    }
  54. }

  55. void qian(int xo)//定義前進(jìn)帶參數(shù)函數(shù)
  56.   {      
  57.   digitalWrite(IN1,HIGH); //定義D2輸出高電平
  58.   digitalWrite(IN2,LOW); //定義D3輸出低電平
  59.   digitalWrite(IN3,HIGH); //定義D4輸出高電平
  60.   digitalWrite(IN4,LOW); //定義D5輸出低電平
  61.   analogWrite(ENA,xo);//定義D6輸出PWM
  62.   analogWrite(ENB,xo);//定義D7輸出PWM      
  63.   }
  64.   void hou(int xo)//定義后退帶參數(shù)函數(shù)
  65.   {      
  66.   digitalWrite(IN1,LOW); //定義D2輸出低電平
  67.   digitalWrite(IN2,HIGH); //定義D3輸出高電平
  68.   digitalWrite(IN3,LOW); //定義D4輸出低電平
  69.   digitalWrite(IN4,HIGH); //定義D5輸出高電平
  70.   analogWrite(ENA,xo);//定義D6輸出PWM
  71.   analogWrite(ENB,xo);//定義D7輸出PWM      
  72.   }
  73.   void zuo(int xo)//定義左轉(zhuǎn)帶參數(shù)函數(shù)
  74.   {      
  75.   digitalWrite(IN1,LOW); //定義D2輸出低電平
  76.   digitalWrite(IN2,HIGH); //定義D3輸出高電平
  77.   digitalWrite(IN3,HIGH); //定義D4輸出高電平
  78.   digitalWrite(IN4,LOW); //定義D5輸出低電平
  79.   analogWrite(ENA,xo);//定義D6輸出PWM
  80.   analogWrite(ENB,xo);//定義D7輸出PWM      
  81.   }
  82.   void you(int xo)//定義右轉(zhuǎn)帶參數(shù)函數(shù)
  83.   {      
  84.   digitalWrite(IN1,HIGH); //定義D2輸出高電平
  85.   digitalWrite(IN2,LOW); //定義D3輸出低電平
  86.   digitalWrite(IN3,LOW); //定義D4輸出低電平
  87.   digitalWrite(IN4,HIGH); //定義D5輸出高電平
  88.   analogWrite(ENA,xo);//定義D6輸出PWM
  89.   analogWrite(ENB,xo);//定義D7輸出PWM      
  90.   }
  91.   void ting()//定義停止帶參數(shù)函數(shù)
  92.   {      
  93.   digitalWrite(IN1,LOW); //定義D2輸出低電平
  94.   digitalWrite(IN2,LOW); //定義D3輸出低電平
  95.   digitalWrite(IN3,LOW); //定義D4輸出低電平
  96.   digitalWrite(IN4,LOW); //定義D5輸出低電平
  97.   digitalWrite(ENA,LOW);//定義D6輸出PWM
  98.   digitalWrite(ENB,LOW);//定義D7輸出PWM      
  99.   }
復(fù)制代碼

所有資料51hei提供下載:
超聲波追蹤代碼.rar (1.13 KB, 下載次數(shù): 43)


回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2018-11-8 16:01 | 顯示全部樓層
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

ID:384575 發(fā)表于 2019-9-3 23:12 | 顯示全部樓層
謝謝,樓主
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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