久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4811|回復: 3
打印 上一主題 下一主題
收起左側

Arduino智能小車超聲波避障

[復制鏈接]
跳轉到指定樓層
樓主
ID:426797 發(fā)表于 2019-12-1 13:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 周成瑞 于 2019-12-5 15:01 編輯

#include <Servo.h>  //調用舵機函數(shù)庫
#define enable_L  13    //左輪
#define INA1  3   
#define INA2  5
#define enable_R  A4    //右輪
#define INTB1  6
#define INTB2  9
int myangle;//定義角度變量
int pulsewidth;//定義脈寬變量
int val;
int Front_Distance = 0;//
int Left_Distance = 0;
int Right_Distance = 0;
const int Trig = 7;  //超聲波
const int Echo = 8;
int myservo=10;//設置舵機驅動腳到數(shù)字口2
void setup()
{
   Serial.begin(9600);
  /*引腳初始化*/
  pinMode(enable_L,OUTPUT);
  pinMode(INA1,OUTPUT);
  pinMode(INA2,OUTPUT);
  pinMode(enable_R,OUTPUT);
  pinMode(INTB1,OUTPUT);
  pinMode(INTB2,OUTPUT);
  pinMode(myservo,OUTPUT);
  /*電機驅動使能*/
  digitalWrite(enable_L,HIGH);      // 左電機使能
  digitalWrite(enable_R,HIGH);     // 右電機使能
  pinMode(Trig, OUTPUT);         //超聲波
  pinMode(Echo, INPUT);
}
/*===========================小車基本動作===================
   小車運動函數(shù)
   后退Back
   前進Forward
   左轉Left
   右轉Right
   剎車Brake
*/
void Back(int time)                       //小車后轉
{
  analogWrite(INA1,95);           
  analogWrite(INA2,LOW);            //左PWM 調速
  
  analogWrite(INTB1,100);         
  analogWrite(INTB2,LOW);           //右PWM 調速
  delay(time * 100);     //執(zhí)行時間,可以調整  
}
void Right(int time)                        //小車左轉(右輪不動,左輪前進)
{
  analogWrite(INA1,LOW);           
  analogWrite(INA2,LOW);            //左PWM 調速
  
  analogWrite(INTB1,LOW);         
  analogWrite(INTB2,100);           //右PWM 調速
  delay(time * 100);     //執(zhí)行時間,可以調整  
}
void Forward()                      //小車前進
{
  analogWrite(INA1,LOW);           
  analogWrite(INA2,100);            //左PWM 調速
  
  analogWrite(INTB1,LOW);         
  analogWrite(INTB2,100);           //右PWM 調速
}
void Left(int time)                         //小車右轉(左輪不動,右輪前進)
{
  analogWrite(INA1,LOW);           
  analogWrite(INA2,100);            //左PWM 調速
  
  analogWrite(INTB1,LOW);         
  analogWrite(INTB2,LOW);           //右PWM 調速
  delay(time * 100);     //執(zhí)行時間,可以調整   
}
void spin_left(int time)         //左轉(左輪后退,右輪前進)
{
  analogWrite(INA1,LOW);           
  analogWrite(INA2,100);            //左PWM 調速
  
  analogWrite(INTB1,100);         
  analogWrite(INTB2,HIGH);           //右PWM 調速
  delay(time * 100);     //執(zhí)行時間,可以調整  
}
void Brake(int time)                     //剎車
{  
  analogWrite(INA1,LOW);           
  analogWrite(INA2,LOW);            //左PWM 調速
  
  analogWrite(INTB1,LOW);      
  analogWrite(INTB2,LOW);           //右PWM 調速
  delay(time * 100);     //執(zhí)行時間,可以調整
}
//==================超聲波===============
float Distance_test()   // 量出前方距離
{
  digitalWrite(Trig, LOW);   // 給觸發(fā)腳低電平2μs
  delayMicroseconds(2);
  digitalWrite(Trig, HIGH);  // 給觸發(fā)腳高電平10μs,這里至少是10μs
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);    // 持續(xù)給觸發(fā)腳低電
  float Fdistance = pulseIn(Echo, HIGH);  // 讀取高電平時間(單位:微秒)
  Fdistance= Fdistance/58;       //為什么除以58等于厘米,  Y米=(X秒*344)/2
  return Fdistance;
}
void servopulse(int myservo,int myangle)/*定義一個脈沖函數(shù),用來模擬方式產生PWM值舵機的范圍是0.5MS到2.5MS 1.5MS 占空比是居中周期是20MS*/
{
  pulsewidth=(myangle*11)+500;//將角度轉化為500-2480 的脈寬值 這里的myangle就是0-180度  所以180*11+50=2480  11是為了換成90度的時候基本就是1.5MS
  digitalWrite(myservo,HIGH);//將舵機接口電平置高                                      90*11+50=1490uS  就是1.5ms
  delayMicroseconds(pulsewidth);//延時脈寬值的微秒數(shù)  這里調用的是微秒延時函數(shù)
  digitalWrite(myservo,LOW);//將舵機接口電平置低
// delay(20-pulsewidth/1000);//延時周期內剩余時間  這里調用的是ms延時函數(shù)
  delay(20-(pulsewidth*0.001));//延時周期內剩余時間  這里調用的是ms延時函數(shù)
}
void front_detection()
{
  //此處循環(huán)次數(shù)減少,為了增加小車遇到障礙物的反應速度
  for(int i=0;i<=5;i++) //產生PWM個數(shù),等效延時以保證能轉到響應角度
  {
    servopulse(myservo,90);//模擬產生PWM
  }
  Front_Distance = Distance_test();
}
void left_detection()
{
  for(int i=0;i<=15;i++) //產生PWM個數(shù),等效延時以保證能轉到響應角度
  {
    servopulse(myservo,175);//模擬產生PWM
  }
  Left_Distance = Distance_test();
}
void right_detection()
{
  for(int i=0;i<=15;i++) //產生PWM個數(shù),等效延時以保證能轉到響應角度
  {
   servopulse(myservo,5);//模擬產生PWM
  }
  Right_Distance = Distance_test();
}
void loop()
{
  while(1)
  {
    front_detection();//測量前方距離
    if(Front_Distance < 30)//當遇到障礙物時
    {
      Back(2);//后退減速
      Brake(2);//停下來做測距
      left_detection();//測量左邊距障礙物距離
      right_detection();//測量右邊距障礙物距離
      if((Left_Distance < 30 ) &&( Right_Distance < 30 ))//當左右兩側均有障礙物靠得比較近
        spin_left(0.7);//旋轉掉頭
      else if(Left_Distance > Right_Distance)//左邊比右邊空曠
      {      
        Left(3);//左轉
        Brake(1);//剎車,穩(wěn)定方向
      }
      else//右邊比左邊空曠
      {
        Right(3);//右轉
        Brake(1);//剎車,穩(wěn)定方向
      }
    }
    else
    {
      Forward(); //無障礙物,直行     
    }
  }
}


4e2cb94784526fa1.jpg (213.64 KB, 下載次數(shù): 110)

4e2cb94784526fa1.jpg

-71d4027d625f6db5.jpg (226.18 KB, 下載次數(shù): 115)

-71d4027d625f6db5.jpg

-71ff049aca1d7c1a.jpg (269.9 KB, 下載次數(shù): 120)

-71ff049aca1d7c1a.jpg

283718114eee7cce.png (363.47 KB, 下載次數(shù): 131)

283718114eee7cce.png

fire_robot.pdf

336.21 KB, 下載次數(shù): 17, 下載積分: 黑幣 -5

fire_robot_2.pdf

230.56 KB, 下載次數(shù): 9, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-12-4 17:27 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:685875 發(fā)表于 2020-1-31 21:44 | 只看該作者
電機帶的是風扇還是螺旋槳?
回復

使用道具 舉報

地板
ID:426797 發(fā)表于 2020-3-15 18:13 | 只看該作者
gch1 發(fā)表于 2020-1-31 21:44
電機帶的是風扇還是螺旋槳?

風扇,螺旋槳也可以,安全起見用風扇
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产免费高清 | 自拍视频网站 | 毛片大全| 成人精品毛片国产亚洲av十九禁 | 99视频在线播放 | www.色五月.com | 亚洲成人精品在线观看 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 亚洲精品久久久久久下一站 | 99亚洲精品 | 久久综合久色欧美综合狠狠 | 亚洲精品一区二区三区丝袜 | 国产精品国产自产拍高清 | 91精品国产一区二区在线观看 | 97av在线| 草草视频在线观看 | 精品一区二区三区四区外站 | 欧美在线视频一区 | 国产精品色 | 欧美精品二区 | 97精品国产97久久久久久免费 | 刘亦菲国产毛片bd | 最新日韩在线视频 | 91精品国产综合久久久久久丝袜 | 国产一区二区精品在线观看 | 久久久国产一区二区三区 | 国产一级在线 | 午夜91| 久草在线影 | 久久久www成人免费精品 | 日本精品久久久久久久 | 玖玖国产 | 久久久精品网站 | 国产精品国产a | 青春草在线 | 国产精品久久久久9999鸭 | 国产精品69久久久久水密桃 | 精品欧美乱码久久久久久1区2区 | 久久久久国产精品午夜一区 | 最新国产精品视频 | 国产在线网址 |