日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(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è)底
晶體管查詢