概要
Arduinoでサーボモータを動かす方法について解説します。複数個を同時に制御する場合はPCA9685など追加モジュールを導入してi2cで制御することもできますが、今回はシンプルに1つのサーボモータを動かすサンプルを紹介します。
Arduinoの接続
1つだけしか使わないので、非常にシンプルな配線になります。
- 5V: サーボモータのVccと接続
- GND: サーボモータのGNDと接続
- ロジック線: 9番PIN
サンプルコード
Servo.hというデフォルトのライブラリがあるのでこれを用いることで簡単にサーボモータを動かすことが可能です。
- Sweep(公式のサンプル): https://www.arduino.cc/en/Tutorial/LibraryExamples/Sweep
#include <Servo.h> Servo myservo; void setup() { myservo.attach(9); } void loop() { myservo.write(0); delay(1000); myservo.write(30); delay(1000); myservo.write(60); delay(1000); myservo.write(30); delay(1000); }
- #include <Servo.h> でライブラリをインクルードします。
- Servo myservo で、サーボモータのインスタンス変数を生成します。
- 9番PINをサーボモータの制御ピンに繋がっていますので、 myservo.attach(9) とすることで9番PINで制御ができるようになります。
- myservo.write(30) で指定の角度[°]にサーボモータを動かすことができます。
このように非常に簡単にサーボモータをコントロールすることが可能です。
サーボモータの数が多くなってきたらPCA9685などのモジュールを導入することを検討しましょう。
下記はRaspberry PIでの制御例です。
https://rb-station.com/blogs/article/pca9685-raspbery-pi-python