実験・調査

【Arduino】サーボモータの使い方

Arduinoで動くものを作るときは必須のアイテムとなるサーボモータ。

以前から何回かは使っていますが、忘れがちなので記事としてまとめてみました。

使うサーボモータ

使うサーボモータは以下のものです。

Tower Pro製 Micro Servo Digital 9g SG90になります。

https://amzn.to/3u1Z55K

https://akizukidenshi.com/catalog/g/gM-08761/

おそらく一番有名?だと思います。

Amazonでは最近以下のような商品も出回り始めたみたいですね。
以前は黒い低出力ミニサーボしかなかったんですが、、、

https://amzn.to/3CEO2T1

評価はまちまちですが、かなりお得そうなので今度買ってみようと思います。

プログラム

今回も他の記事等しく、一番簡単なプログラムでやっていきたいと思います。

ただサーボを動かすだけのスケッチですね。

スケッチは以下の通りです。

#include <Servo.h>

Servo servo1;
#define SERVO1 10
void setup() {
  servo1.attach(SERVO1);
}

void loop() {
  servo1.write(30);
  delay(1000);
  servo1.write(150);
  delay(1000);
}

細かい部分

#include <Servo.h>

サーボモータ制御のためのライブラリをインクルードします。
Arduinoのライブラリから簡単に落とせます。マジ神。サーボのインスタンス宣言です。

Servo servo1;

サーボのインスタンス宣言です。

#define SERVO1 10

サーボモータの制御ピンを10番ピンで使うことを指示します。

void setup() {
  servo1.attach(SERVO1);
}

なんだかよくわかりませんが、SERVO1というものを使えるようにするために、インスタンスにアタッチした、とかいうことらしい。

void loop() {
  servo1.write(30);
  delay(1000);
  servo1.write(150);
  delay(1000);
}

上から順に、

サーボ角度を30度にします。

1000ms待ちます。

サーボ角度を150度にします。

1000ms待ちます。

ということです。

まとめ

サーボライブラリマジ神。

ただこれだと角度制御しかできないので電流制御できるように+端子に並列に巨大な抵抗かましてやってみたいね。

PID必要なほど重い負荷は無理だと思いますが。。。

-実験・調査
-,