<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 基礎(chǔ)入門(mén) >> Arduino開(kāi)發(fā)學(xué)習(xí) >> 正文

      Arduino控制舵機(jī)詳解(含代碼)_Arduino舵機(jī)控制程序

      作者:佚名    文章來(lái)源:網(wǎng)絡(luò)整理    點(diǎn)擊數(shù):    更新時(shí)間:2024/4/6

      目 錄

      1. 舵機(jī)簡(jiǎn)介

      2 硬件電路連線

      3 項(xiàng)目:舵機(jī)來(lái)回轉(zhuǎn)動(dòng)

      3.1 控制代碼

      3.2 仿真結(jié)果

      4 項(xiàng)目2:光控舵機(jī)

      4.1 硬件電路連線

      4.2 控制代碼

      4.3 仿真結(jié)果

      5 項(xiàng)目3:串口控制舵機(jī)和內(nèi)置LED燈

      5.1 仿真結(jié)果

      6 用到的函數(shù)解釋


      1. 舵機(jī)簡(jiǎn)介

      舵機(jī)是一種位置(角度)伺服的驅(qū)動(dòng)器。舵機(jī)只是一種通俗的叫法,其實(shí)質(zhì)是一個(gè)伺服馬達(dá)。在需要角度不斷變化并可以保持的控制系統(tǒng)中應(yīng)用廣泛。如遙控機(jī)械人、飛機(jī)模型等。

      舵機(jī)的轉(zhuǎn)動(dòng)角度為0~180°,其內(nèi)部結(jié)構(gòu)包括電機(jī),控制電路和機(jī)械結(jié)構(gòu)三部分。電機(jī)有三根線引出,分別接VCC、GNG和信號(hào)線。主要有兩種引出線的格式:

      1. 棕、紅、橙(棕色連接GND、紅色連接VCC、橙色連接信號(hào));
      2. 紅、黑、黃(紅色連接VCC、黑色連接GND、黃色連接信號(hào))。

       

      9g舵機(jī)實(shí)物圖 

      圖1 舵機(jī)實(shí)物圖

      2 硬件電路連線

      Arduino

      功能 舵機(jī) 功能
      VCC 正極 紅色 正極
      GND 負(fù)極 棕色 負(fù)極
      D9(PWM) 數(shù)字引腳(PWM) 橙色(信號(hào)傳輸) 信號(hào)輸入

      3 項(xiàng)目:舵機(jī)來(lái)回轉(zhuǎn)動(dòng)

      實(shí)現(xiàn)功能:舵機(jī)0~180°來(lái)回轉(zhuǎn)動(dòng)。

      3.1 控制代碼

      #include <Servo.h>            //加載文件庫(kù)
      int pos = 0;
      Servo myservo;
      void setup()
      {
        myservo.attach(9, 500, 2500);          //修正脈沖寬度
      }
      void loop()
      {
        for (pos = 0; pos <= 180; pos += 1) {       //pos+=1等價(jià)于pos=pos+1
          myservo.write(pos);
          delay(15);     
        }
        for (pos = 180; pos >= 0; pos -= 1) {
          myservo.write(pos);
          delay(15);      
        }
      }

      3.2 仿真結(jié)果

      舵機(jī)連線及仿真圖 

       

      圖2 舵機(jī)連線及仿真圖

      4 項(xiàng)目2:光控舵機(jī)

      實(shí)現(xiàn)功能:隨著光照強(qiáng)度增加,舵機(jī)跟著轉(zhuǎn)動(dòng)。A0產(chǎn)生的模擬值大于500時(shí),內(nèi)置的13引腳的可編程LED發(fā)光。

      4.1 硬件電路連線

      Arduino

      功能 舵機(jī) 功能
      VCC 正極 紅色 正極
      GND 負(fù)極 棕色 負(fù)極
      D9(PWM) 數(shù)字引腳(PWM) 橙色(信號(hào)傳輸) 信號(hào)輸入
      A0 模擬接口(光敏電阻)

      4.2 控制代碼

      #include <Servo.h>
      const int sensorPin = A0;       
      int led=13;         
      int pos = 0;
      Servo myservo;//創(chuàng)建舵機(jī)對(duì)象
      void setup(){
        myservo.attach(9, 500, 2500);
        pinMode(led,OUTPUT);
        Serial.begin(9600);
      }
      void loop(){
        int val=analogRead(sensorPin);
        if(val>500){
          digitalWrite(led,HIGH);
        }
        else{
          digitalWrite(led,LOW);
        }
        
        int yp=map(val,0,1023,0,180);
          //數(shù)值轉(zhuǎn)換,將[0,1023]產(chǎn)生的模擬值轉(zhuǎn)換成[0,180]中的值
        Serial.println(yp);
        myservo.write(yp);
        delay(10);
      }

      4.3 仿真結(jié)果

      光控舵機(jī)仿真 

       

      圖4 光控舵機(jī)仿真

      5 項(xiàng)目3:串口控制舵機(jī)和內(nèi)置LED燈

      實(shí)現(xiàn)功能如下:

      串口輸入2,led點(diǎn)亮,同時(shí)串口打印“ON”,舵機(jī)轉(zhuǎn)動(dòng)到90°。

      串口輸入4,led熄滅,同時(shí)串口打印“OFF”,舵機(jī)轉(zhuǎn)動(dòng)到180°

      
      #include <Servo.h>
      int led4=4;       
       
      int led=13;         
      Servo myservo;//創(chuàng)建舵機(jī)對(duì)象
       
      void setup(){
        myservo.attach(9, 500, 2500);
        pinMode(led,OUTPUT);
        pinMode(led4,OUTPUT);
        Serial.begin(9600);
      }
       
      void loop(){
        if(Serial.available()>0){
          char c=Serial.read();
          if(c=='2'){
            digitalWrite(led,HIGH);
            digitalWrite(led4,HIGH);
            myservo.write(90);
            Serial.println("ON");
          }
          else if(c=='4'){
            digitalWrite(led,LOW);
            digitalWrite(led4,LOW);
            myservo.write(180);
            Serial.println("OFF");
          }
        }
      }
      

      5.1 仿真結(jié)果

      串口控制舵機(jī)仿真 

       

      圖4 串口控制舵機(jī)仿真

      6 用到的函數(shù)解釋

      1. Serial.begin()是串口初始化函數(shù),設(shè)置傳輸速率。
      2. Serial.println()與Serial.print()的區(qū)別在于前者具備換行功能,后者不具備。
      3. Servo.h是舵機(jī)庫(kù)文件,直接在Aruidno IDE中可以加載。
      4. Servo myservo為創(chuàng)建對(duì)象,本質(zhì)就是一個(gè)名稱,myservo可自己命名。
      5. myservo.attach(9)表示控制舵機(jī)的引腳。
      6. myservo.write(45)表示舵機(jī)旋轉(zhuǎn)到45°的位置,而不是旋轉(zhuǎn)了45°。
      7. map()函數(shù)的使用率比較高,將某一區(qū)間的值轉(zhuǎn)換為另外區(qū)間的值。

      語(yǔ)法格式為: val =map(value, fromLow, fromHigh, toLow, toHigh);

      val,value為同類型變量,fromHigh與fromLow為變量a的最大與最小值,toHigh與toLow為val變量的最大與最小值。map()函數(shù)根據(jù)范圍比例即可將某一區(qū)間的值縮放至另外區(qū)間的值,并將值賦予val。

      Tags:Arduino,程序代碼,控制舵機(jī)  
      責(zé)任編輯:admin
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 国产亚洲综合一区柠檬导航| 久久综合图区亚洲综合图区| 亚洲色图综合网站| 亚洲综合伊人制服丝袜美腿| 亚洲综合色一区二区三区| 色综合久久久无码网中文| 99v久久综合狠狠综合久久| 亚洲色图综合在线| 亚洲国产成人久久综合一区| 亚洲高清无码综合性爱视频| 亚洲国产综合精品| 激情五月综合综合久久69| 一本一道久久综合久久| 久久综合图区亚洲综合图区| 亚洲国产综合人成综合网站| AV狠狠色丁香婷婷综合久久| 一本色道久久综合狠狠躁| 国产综合无码一区二区色蜜蜜| 中文网丁香综合网| 久久亚洲精品成人综合| 国产激情电影综合在线看 | 奇米综合四色77777久久| 色婷婷六月亚洲综合香蕉| 色综合天天综合给合国产| 久久老色鬼天天综合网观看| 精品久久人人做人人爽综合| 狠狠综合久久av一区二区| 亚洲日韩在线中文字幕综合| 色偷偷亚洲第一综合网| 亚洲国产综合精品中文第一| 亚洲综合校园春色| 国产色丁香久久综合| 国产成人综合久久精品红| 99久久综合国产精品免费| 亚洲av综合av一区二区三区| 国产精品成人免费综合| 一本色道久久88亚洲综合 | 色天使亚洲综合在线观看 | 97色婷婷成人综合在线观看| 亚洲明星合成图综合区在线| 亚洲综合一区无码精品|