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.