Arduino-Servo(サーボモーター)ライブラリの使い方
当記事では、ArduinoのServo(サーボモーター)ライブラリの使い方について詳しく解説します。
Arduinoのサーボモーター制御用ライブラリ「Servo」を使ったプログラムで、サーボモーターを動作させます。
なお、その他のArduino関数・ライブラリについては、以下の記事をご覧ください。
Servo(サーボモーター)ライブラリ
関数 | 引数 | 戻り値 | 説明 |
---|---|---|---|
attach(int pin, int min, int max) | int pin:指定する int min:角度0°のパルス幅(usec)、初期値544 int max:角度180°のパルス幅(usec)、初期値2400 | インデックス値 | サーボモーターのピン番号を指定 |
bool attached(void) | なし | 割り当てあり:true 割り当てなし:false | ピンにサーボモーターが割り当てられてるか確認 |
void detach(void) | なし | なし | サーボモーターに割り当てられているピンを開放 |
void write(int angle) | int angle:指定の角度 | なし | 指定角度にサーボモータを回転 |
void writeMicroseconds(int uS) | int uS:パルス幅をusec単位で指定 | なし | パルス幅を指定してサーボモーターを回転 |
int read(void) | なし | サーボモーターの角度 | 現在のサーボモーターの角度を読み取り |
attach()/サーボモーターのピン番号を指定
- 関数:attach(int pin, int min, int max)
- 引数:int pin⇒指定する
- :int min⇒角度0°のパルス幅(usec)、初期値544
- :int max⇒角度180°のパルス幅(usec)、初期値2400
- 戻り値:インデックス値
attach()関数は、引数でサーボモーターのピン番号を指定します。また、省略可能ですが、引数のminとmaxで角度0°と180°のパルス幅を設定することもできます。
attached()/ピンにサーボモーターが割り当てられてるか確認
- 関数:bool attached(void)
- 引数:なし
- 戻り値:割り当てあり⇒true/割り当てなし⇒false
attached()関数は、attach()関数でサーボモーターのピン番号が割り当てられているのか確認します。戻り値で割り当てありだと「true」、割り当てなしだと「false」が返ってきます。
detach()/サーボモーターに割り当てられているピンを開放
- 関数:void detach(void)
- 引数:なし
- 戻り値:なし
detach()関数は、attach()関数で割り当てたサーボモーターのピンを開放して、未割り当ての状態に戻します。
write()/指定角度にサーボモータを回転
- 関数:void write(int angle)
- 引数:int angle⇒指定の角度
- 戻り値:なし
write()関数は、引数で指定した角度までサーボモーターを回転させます。
writeMicroseconds()/パルス幅を指定してサーボモーターを回転
- 関数:void writeMicroseconds(int uS)
- 引数:int uS⇒パルス幅をusec単位で指定
- 戻り値:なし
writeMicroseconds()関数は、引数でパルス幅を指定することでサーボモーターを回転させます。サーボモーターは受信するパルス幅によって回転する角度が決まっています。
read()/現在のサーボモーターの角度を読み取り
- 関数:int read(void)
- 引数:なし
- 戻り値:サーボモーターの角度
read()関数は、現在のサーボモーターの角度を戻り値で返します。
サンプルプログラム(サンプルスケッチ)
Arduinoのサーボモーター制御用ライブラリ「Servo」を使ったプログラムで、サーボモーターを動作させます。
おすすめのArduinoボードはどれ?
当記事『Arduino-Servo(サーボモーター)ライブラリの使い方』では、Arduino Unoを使用したサンプルプログラムを解説してきました。
やはり、たくさんの種類のあるArduinoボードの中でも、最も基本的なエディションのArduino Unoがおすすめなのですが、Arduino Unoと電子部品を組み合わせたキットも存在します。
電子工作初心者にとっては、いちいち電子部品を別途購入する必要がないので非常に有用です。以下の記事で初心者でもわかりやすいように、ランキング形式でおすすめのArduino Unoを紹介しているので、ぜひご覧ください。
また、以下の記事で、安価でWi-Fi/Bluetoothに対応している「ESP32開発ボード」についてもまとめてみました。
このボードは、Arduinoボードではありませんが、Arduino IDEでソフト開発ができるため、電子工作でIoTを実現したい方におすすめです。