實驗說明:
- 伺服馬達的轉動的角度是通過調節PWM(脈衝寬度調製)信號的實現來實現的,標準PWM(脈衝寬度調製)信號的周期固定為20ms(50Hz),理論上脈寬分佈應在1ms到 2ms之間,但是,實際上脈寬預期0.5ms到2.5ms之間,脈寬和舵機的轉角0°〜180°相對應。有一點不會的地方,由於舵機牌子不同,對於同一信號 ,不同牌子的舵機旋轉的角度也會有所不同。
- Arduino的驅動能力有限,所以當需要控制1個以上的舵機時建議加上馬達擴展板。
- 另外各位在選購伺服馬達舵機時務必注意,同種型號會有2種規格
- 180度:標準舵機(可控制角度)
- 360度:連續旋轉舵機(不可控制角度)
材料:
- Arduino Uno R3
- USB 傳輸線
- 伺服馬達(180度)
- 麵包板
- 麵包板跳線
接線說明:
程式:
#include <Servo.h>
Servo myservo; // 定義舵機對象,最多八個
int pos = 0; // 定義舵機轉動位置
void setup()
{
myservo.attach(9); // 設置舵機控制腳位
}
void loop()
{
// 0到180旋轉舵機,每次延時15毫秒
for(pos = 0; pos < 180; pos += 1)
{
myservo.write(pos); delay(15);
}
// 180到0旋轉舵機,每次延時15毫秒
for(pos = 180; pos>=1; pos-=1)
{
myservo.write(pos);
delay(15);
}
}
將程式碼上傳到Arduino後,可以看到,舵機開始先按0到180運轉,然後再從180到0運轉。