---
# System prepended metadata

title: 伺服馬達
tags: [Arduino]

---

###### tags: `Arduino`
# 伺服馬達
伺服電機包含了可控制轉動角度的步進馬達和或是速度的伺服馬達，且通常會自帶控制的電路，而Arduino主要控制的函式是Servo.h，因為各種的控制伺服馬達所需的函式不盡相同，所以除了Servo.h之外要注意使否需要其他的函式。
* 28BYJ-48步進馬達及驅動板
![](https://blog.jmaker.com.tw/content/images/2020/04/step1.png =500x)

在控制前要先確定馬達是可控制角度的還是可控制轉速的，若是是可控制轉速的無刷馬達及電調，需在write中慢慢測試馬達的啟動值及上限值。
* 基本寫法(可轉角在180度)
```cpp=
#include<Servo.h>
Servo ss;    //定義控制名稱
void setup(){
  ss.attch(9);     //綁定名稱及腳位，不須另外寫pinMode
}

void loop(){
  ss.write(0);     //轉到0度
  delay(500);
  ss.write(90);     //轉到90度
  delay(500);
  ss.write(180);     //轉到180度
  delay(500);
  for(int i=0;i<180;i++){     //從0掃到180
    ss.write(i);
    delay(20);
  }
  for(int i=180;i>0;i++){     //從180掃到0
    ss.write(i);
    delay(20);
  }
}
```
## ref
[維基百科-伺服馬達](https://zh.wikipedia.org/zh-tw/%E4%BC%BA%E6%9C%8D%E9%A6%AC%E9%81%94?wprov=sfla1)
[傑森創工-Arduino範例](https://blog.jmaker.com.tw/uln2003-28byj-48/)