本文非常適合初學(xué)者,因為它很容易上手,并且為他們建立有趣的項目(例如通常使用伺服器的機器人)奠定了基礎(chǔ)。伺服電機(Servo Motor)是高轉(zhuǎn)矩電機,由于其在機器人和其他一些應(yīng)用中的通用性,輕松控制其旋轉(zhuǎn)。伺服電機也稱為舵機,它帶有齒輪輸出軸,該齒輪輸出軸可以通過電氣控制,每次旋轉(zhuǎn)一度。為了控制起見,與普通的直流電動機不同,伺服電機通常在兩個電源引腳(VCC和GND)的旁邊有一個引腳,即信號引腳。信號引腳用于控制伺服電機,將其軸旋轉(zhuǎn)至任何所需角度。
在本篇文章中,我們將使用非常流行的SG90伺服電機,我們的目標(biāo)是將伺服電機從一個角度旋轉(zhuǎn)到另一個角度。伺服電機的電流要求很高,因此當(dāng)在Arduino上使用多個伺服電機時,需要將其電源連接到外部電源,因為Arduino可能無法提供伺服電機所需的電流,這一點很重要。由于在本文中我們將僅使用一個伺服電機,因此可以通過Arduino為它供電。
所需的組件
● SG90伺服電機
● Arduino Uno開發(fā)板
● 連接導(dǎo)線
● 面包板
原理圖
該項目的原理圖非常簡單,因為我們只需將伺服電機連接到Arduino,伺服電機通常具有三個引腳,其中包括VCC、GND和Signal引腳。Signal引腳是用于將控制信號從微控制器饋送到伺服電機,以使伺服電機旋轉(zhuǎn)到特定角度。如下圖所示,將伺服器連接至Arduino。
Signal引腳連接到Arduino的數(shù)字引腳8,因為它是PWM引腳。伺服方向以PWM脈沖方式從微控制器發(fā)送到伺服電機。完成所有連接后,我們現(xiàn)在就可以編寫項目代碼了。
代碼
本篇文章的代碼非常容易,這要歸功于Arduino團隊開發(fā)的非常全面而簡潔的Serve.h庫,該庫便于在Arduino項目中使用伺服電機。該庫使使用單個命令輕松地將伺服電機旋轉(zhuǎn)到不同的角度。
該庫是預(yù)先安裝在Arduino IDE中的,無需我們下載和安裝。首先,我們在代碼中包含將要使用的庫(在本例中為Serve.h庫)。
#include
接下來,我們創(chuàng)建該庫的一個對象,以在整個代碼中用作控制伺服電機的參考。
Servo servo;
完成此操作后,我們開始void setup()函數(shù)。首先,將創(chuàng)建的伺服對象附加到微控制器的引腳D8,然后將伺服電機旋轉(zhuǎn)至零度。
void setup() {
servo.attach(8);
servo.write(angle);
}
完成此操作后,我們就可以按照所需的任何方向移動伺服電機了,我們將在void loop()函數(shù)中執(zhí)行此操作。通過使用Servo.h庫,要將伺服電機旋轉(zhuǎn)到所需的角度,我們要做的只是將所需角度作為參數(shù)傳遞給Servo.write()函數(shù)。為了證明這一點,使用了一個for循環(huán)將伺服電機沿一個方向旋轉(zhuǎn)幾個角度,并使用另一個循環(huán)將伺服器旋轉(zhuǎn)回其起點。
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);
}
}
效果演示
復(fù)制上面的代碼,然后上傳到Arduino開發(fā)板,對伺服電機進行設(shè)置,一段時間后,您應(yīng)該看到伺服電機開始轉(zhuǎn)動。
以上就是本文的所有內(nèi)容,上面的代碼可以通過多種方式擴展,以用于涉及伺服電機的不同項目中,您將使用伺服電機制造出什么很棒的東西?
-
伺服電機
+關(guān)注
關(guān)注
88文章
2186瀏覽量
61304 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6294瀏覽量
118264 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196974 -
SG90
+關(guān)注
關(guān)注
0文章
10瀏覽量
11746
發(fā)布評論請先 登錄
【ESP32-C2系列】WT99C262-SG開發(fā)板上手指南
MCU 開發(fā)板大比拼:STM32、ESP32、Arduino、樹莓派誰更強?
DR1M90 開源 IgH EtherCAT 主站案例:伺服電機正反轉(zhuǎn)實時控制方案
SG90舵機控制秘籍:參數(shù)、電源與信號的三大要點,為您綜合分析了SG90舵機的控制參數(shù)注意事項
FPGA初學(xué)者求助
?STM32 Nucleo-64開發(fā)板技術(shù)解析與應(yīng)用指南
PIC32CK SG01/GC01 Curiosity Ultra開發(fā)板技術(shù)解析與應(yīng)用指南
如何用Arduino Nano/UNO R3開發(fā)板給另一個Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導(dǎo)程序bootlaoder
避雷!樹莓派初學(xué)者常犯的5個錯誤!
有ARM,NPU,F(xiàn)PGA三種核心的開發(fā)板 — 米爾安路飛龍派開發(fā)板
從單片機初學(xué)者邁向單片機工程師
【CW32模塊使用】SG90舵機
初學(xué)者適用!基于Arduino開發(fā)板控制SG90伺服電機方案
評論