Arduino 伺服電機

2018-11-22 13:57 更新

伺服電機是一種有輸出軸的小型設備。通過向伺服發(fā)送編碼信號,可以將該軸定位到特定的角度位置。只要編碼信號存在于輸入線上,伺服將保持軸的角位置。如果編碼信號改變,則軸的角位置改變。實際上,伺服用于無線電控制的飛機中來定位控制面,如升降舵和方向舵。它們還用于無線電控制的汽車,木偶,當然還有機器人。


伺服電機

伺服在機器人中非常有用。電機體積小,內置控制電路,相對于它們尺寸來說非常強大。標準伺服如Futaba S-148具有42盎司/英寸的扭矩,這對于其尺寸來說是堅固的。它還吸取與機械負載成比例的功率。因此,輕負載伺服不會消耗太多能量。

伺服電機的內膽如下圖所示。你可以看到控制電路,電機,一組齒輪和外殼。還可以看到連接到外部的3根電線。一個是接電源(+5伏),一個接地,而白線是控制線。

伺服電機的內膽

伺服電機的工作

伺服電機有一些控制電路和一個連接到輸出軸上的電位器(一個可變電阻,也稱為電位器)。在上圖中,電位器可以在電路板的右側看到。該電位器允許控制電路監(jiān)視伺服電機的當前角度。

如果軸處于正確的角度,則電機關閉。如果電路發(fā)現角度不正確,則會轉動電機直到處于所需的角度。伺服的輸出軸能夠在180度左右的地方移動。通常情況下,它是在210度范圍內的某個地方,然而,這取決于制造商。正常伺服用于控制0至180度的角運動。由于主輸出齒輪上的機械止動裝置,機械上它無法轉動更遠。

施加到電機上的功率與其需要行進的距離成比例。因此,如果軸需要轉動較大的距離,電機將以全速運轉。如果只需要少量轉動,電機將以較低的速度運轉。這稱為比例控制。

如何溝通伺服應該轉動的角度?

控制線用于傳達角度。該角度由施加到控制線的脈沖持續(xù)時間確定。這稱為脈沖編碼調制伺服期望每20毫秒(0.02秒)看到一個脈沖。脈沖的長度將決定電機轉動的距離。例如,1.5毫秒脈沖將使電機轉到90度位置(通常稱為中性位置)。如果脈沖短于1.5毫秒,則電機將軸轉到更接近0度。如果脈沖長于1.5毫秒,則軸轉接近180度。

轉動角度

必需的組件

你將需要以下組件:

  • 1 × Arduino UNO板
  • 1 × 伺服電機
  • 1 × ULN2003驅動IC
  • 1 × 10KΩ電阻

程序

按照電路圖進行連接,如下圖所示。

電路圖

草圖

在計算機上打開Arduino IDE軟件。使用Arduino語言進行編碼控制你的電路。通過單擊“New”打開一個新的草圖文件。

Sketch

Arduino代碼

/* Controlling a servo position using a potentiometer (variable resistor) */

#include <Servo.h>
   Servo myservo; // create servo object to control a servo
   int potpin = 0; // analog pin used to connect the potentiometer
   int val; // variable to read the value from the analog pin

void setup() {
   myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop() {
   val = analogRead(potpin);
   // reads the value of the potentiometer (value between 0 and 1023)
   val = map(val, 0, 1023, 0, 180);
   // scale it to use it with the servo (value between 0 and 180)
   myservo.write(val); // sets the servo position according to the scaled value
   delay(15);
}

代碼說明

伺服電機有三個端子:電源,接地和信號。電源線通常為紅色,應連接到Arduino上的5V引腳。接地線通常為黑色或棕色,應連接到ULN2003 IC(10-16)的一個端子。為了保護你的Arduino板免受損壞,你將需要一些驅動IC來處理這些。這里我們使用ULN2003 IC來驅動伺服電機。信號引腳通常為黃色或橙色,應連接到Arduino引腳9。

連接電位器

分壓器是串聯電路中的電阻器,其將輸出電壓縮放到施加的輸入電壓的特定比例。下面是電路圖:

連接電位計


公式

Vout是輸出電位,取決于施加的輸入電壓(Vin)和電阻(R1R2。這意味著流過R1的電流也將流過R2而不被分流。在上述等式中,隨著R的值改變,Vout相對于輸入電壓Vin而縮放。

通常,電位器是一個分壓器,它可以根據可變電阻的值而使用旋鈕來縮放電路的輸出電壓。它有三個引腳:GND,Signal和+5V,如下圖所示:

分壓器

結果

通過更改電位器的NOP位置,伺服電機將改變其角度。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號