概要

Arduinoでサーボモータを動かす方法について解説します。複数個を同時に制御する場合はPCA9685など追加モジュールを導入してi2cで制御することもできますが、今回はシンプルに1つのサーボモータを動かすサンプルを紹介します。

Arduinoの接続

サーボモータの接続

1つだけしか使わないので、非常にシンプルな配線になります。

  • 5V: サーボモータのVccと接続
  • GND: サーボモータのGNDと接続
  • ロジック線: 9番PIN

サンプルコード

Servo.hというデフォルトのライブラリがあるのでこれを用いることで簡単にサーボモータを動かすことが可能です。

 

#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での制御例です。

 

Arduinoサーボモータ

Related Posts

realsense_rosのrs_camera.launchで/imuが発行できなかった
realsense_rosのrs_camera.launchで/imuが発行できなかった
概要 直近、realsense_rosのrs_camera.launchを立ち上げた際、unite_imu_methodパラメータを設定しても/imuトピックが立ち上がらない事象が起きていたため、調査した内容の備忘録となります。内容は...
Read More
rosserialでLost sync with device, restarting...と出て接続が切れる時のチェックリスト
rosserialでLost sync with device, restarting...と出て接続が切れる時のチェックリスト
概要 rosserialを用いてArduinoでROSトピックをSubscribeしようとした時に、Lost sync with device, restarting... と表示されて接続が切れてしまう時に確認すべき事項をまとめまし...
Read More
rosserialを使ってArduinoで/cmd_velトピックを受信してロボット台車を動かす
rosserialを使ってArduinoで/cmd_velトピックを受信してロボット台車を動かす
概要 ROSを使って実機でロボット台車を動作させたい時に、Arduinoでシリアル通信経由でROSトピックを受信して、ロボット台車を動作させる方法を説明します。 /cmd_velは、平行移動の速度と回転速度が定義されたgeometry...
Read More