本文非常適合初學者,因為它很容易上手,并且為他們建立有趣的項目(例如通常使用伺服器的機器人)奠定了基礎。伺服電機(Servo Motor)是高轉矩電機,由于其在機器人和其他一些應用中的通用性,輕松控制其旋轉。伺服電機也稱為舵機,它帶有齒輪輸出軸,該齒輪輸出軸可以通過電氣控制,每次旋轉一度。為了控制起見,與普通的直流電動機不同,伺服電機通常在兩個電源引腳(VCC和GND)的旁邊有一個引腳,即信號引腳。信號引腳用于控制伺服電機,將其軸旋轉至任何所需角度。
在本篇文章中,我們將使用非常流行的SG90伺服電機,我們的目標是將伺服電機從一個角度旋轉到另一個角度。伺服電機的電流要求很高,因此當在Arduino上使用多個伺服電機時,需要將其電源連接到外部電源,因為Arduino可能無法提供伺服電機所需的電流,這一點很重要。由于在本文中我們將僅使用一個伺服電機,因此可以通過Arduino為它供電。
所需的組件
● SG90伺服電機
● Arduino Uno開發板
● 連接導線
● 面包板
原理圖
該項目的原理圖非常簡單,因為我們只需將伺服電機連接到Arduino,伺服電機通常具有三個引腳,其中包括VCC、GND和Signal引腳。Signal引腳是用于將控制信號從微控制器饋送到伺服電機,以使伺服電機旋轉到特定角度。如下圖所示,將伺服器連接至Arduino。
Signal引腳連接到Arduino的數字引腳8,因為它是PWM引腳。伺服方向以PWM脈沖方式從微控制器發送到伺服電機。完成所有連接后,我們現在就可以編寫項目代碼了。
代碼
本篇文章的代碼非常容易,這要歸功于Arduino團隊開發的非常全面而簡潔的Serve.h庫,該庫便于在Arduino項目中使用伺服電機。該庫使使用單個命令輕松地將伺服電機旋轉到不同的角度。
該庫是預先安裝在Arduino IDE中的,無需我們下載和安裝。首先,我們在代碼中包含將要使用的庫(在本例中為Serve.h庫)。
#include
接下來,我們創建該庫的一個對象,以在整個代碼中用作控制伺服電機的參考。
Servo servo;
完成此操作后,我們開始void setup()函數。首先,將創建的伺服對象附加到微控制器的引腳D8,然后將伺服電機旋轉至零度。
void setup() {
servo.attach(8);
servo.write(angle);
}
完成此操作后,我們就可以按照所需的任何方向移動伺服電機了,我們將在void loop()函數中執行此操作。通過使用Servo.h庫,要將伺服電機旋轉到所需的角度,我們要做的只是將所需角度作為參數傳遞給Servo.write()函數。為了證明這一點,使用了一個for循環將伺服電機沿一個方向旋轉幾個角度,并使用另一個循環將伺服器旋轉回其起點。
void loop()
{
// scan from 0 to 180 degrees
for(angle = 10; angle < 180; angle++)??
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 10; angle--)
{
servo.write(angle);
delay(15);
}
}
以下是本文的完整代碼:
#include
Servo servo;
int angle = 10;
void setup() {
servo.attach(8);
servo.write(angle);
}
void loop()
{
// scan from 0 to 180 degrees
for(angle = 10; angle < 180; angle++)??
{
servo.write(angle);
delay(15);
}
// now scan back from 180 to 0 degrees
for(angle = 180; angle > 10; angle--)
{
servo.write(angle);
delay(15);
}
}
效果演示
復制上面的代碼,然后上傳到Arduino開發板,對伺服電機進行設置,一段時間后,您應該看到伺服電機開始轉動。
以上就是本文的所有內容,上面的代碼可以通過多種方式擴展,以用于涉及伺服電機的不同項目中,您將使用伺服電機制造出什么很棒的東西?
-
伺服電機
+關注
關注
85文章
2053瀏覽量
57969 -
開發板
+關注
關注
25文章
5081瀏覽量
97703 -
Arduino
+關注
關注
188文章
6472瀏覽量
187331 -
SG90
+關注
關注
0文章
9瀏覽量
11517
發布評論請先 登錄
相關推薦
評論