Servo 函式庫

此函式庫實作了 86Duino 操控伺服馬達的功能,可最多同時操控 45 個伺服馬達。86Duino 的 Servo 函式庫除了與 Arduino 的 Servo 函式庫相容以外,我們也對 PWM 生成算法作了改進,使得 PWM 抖動(jitter)現象受到抑制,在 86Duino 上不論同時操控幾顆伺服馬達,PWM 抖動現象都不會惡化,且抖動幅度比 Arduino 的 Servo 函式庫更小,詳見此篇文章說明。

由於共用相同的計時器產生 PWM 脈波,Servo 函式庫與 analogWrite() 函式不能同時使用,應特別注意。

電路

伺服馬達有三條線,分別是電源線、地線、訊號線。電源線通常是紅色,如果使用的伺服馬達需要的是 5V 的電源,可以把伺服馬達的電源線插在 86Duino 上的 5V 電源輸出腳位。地線通常是黑色或棕色,可以連接到 86Duino 上有標示 GND 腳位。訊號線通常是黃色、橘色或白色,訊號線應該要連接到 86Duino 上的數位腳位。要注意一點,如果要連接的伺服馬達所需電流很大或是要同時操控多顆馬達,應該要使用額外的電源供電給馬達,當馬達使用的電不是來自 86Duino 時,要把馬達使用的外部電源與 86Duino 共地。

函式

attach()
write()
writeMicroseconds()
read()
attached()
detach()

限制

Servo 函式庫在運作時會使用 86Duino 內部的計時器(Timer),TimerOne 函式庫和 Servo86 函式庫也會使用該計時器,因此為了避免函式庫彼此發生衝突,這三個函式庫一次只能使用一個。

範例

以下是 Arduino 使用 Servo 函式庫的範例,這些範例在 86Duino 上都可以正常運作:

Knob:使用可變電阻控制馬達轉動的角度。
Sweep:讓馬達往復轉動。


DEMO


函式庫參考主頁面

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.