使用Arduino控制伺服電機
伺服電機有一個軸,可以使用編碼訊號將其定位到特定的角度位置。幸運的是,我們不需要理解旋轉軸到特定角度所需的編碼訊號。Arduino Servo庫幫我們完成了這項工作。
電路圖

如你所見,伺服電機的Vcc(通常為紅色)連線到5V,GND(通常為黑色)連線到GND,訊號引腳(上圖中為白色,通常為白色、黃色或橙色)連線到Arduino的9號引腳。
程式碼演練
我們將演練Arduino自帶的一個示例程式碼。轉到**檔案 → 示例 → Servo → Sweep**

或者,程式碼也可以在這裡的GitHub上訪問:https://github.com/arduinolibraries/Servo/blob/master/examples/Sweep/Sweep.ino
如你所見,我們首先包含Servo庫,定義Servo物件,並將變數pos設定為0。
#include <Servo.h> Servo myservo; // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0;
在setup函式中,我們將伺服電機的訊號引腳連線到建立的伺服物件。這裡,由於我們將訊號引腳連線到9號引腳,因此在引數中將指定9。
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}在loop函式中,我們將**pos**從0變化到180,步長為1,並且在每一步中,給伺服電機15毫秒的時間來達到該位置。
然後,我們重複相同的步驟,這次是從180度到0度。這在迴圈中不斷重複。
void loop() {
for (pos = 0; pos <= 180; pos += 1) {
// goes from 0 degrees to 180 degrees in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) {
// goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP