概要

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

rospyでImageデータを取得してOpenCVの配列として扱う
rospyでImageデータを取得してOpenCVの配列として扱う
概要 PythonでROS開発をする際、sensor_msgs/Image型のトピックを受信して色々な処理をかけたいときには、OpenCVの配列に変換した上で処理を行うと便利です。CvBridgeというsensor_msgs/Imag...
Read More
ネイティブアプリでROS通信をする際はFlutterとroslibがおすすめ
ネイティブアプリでROS通信をする際はFlutterとroslibがおすすめ
概要 ROSを起動させているロボットに対して、スマートデバイスからROSで通信を行いたい時があるときは、Flutterを用いたネイティブアプリで実装するのがおすすめです。 roslibjsを使ってJavaScriptでROSトピックの...
Read More
roslibjsを使ってJavaScriptでROSトピックのやり取りをする
roslibjsを使ってJavaScriptでROSトピックのやり取りをする
概要 roslibjsというJavaScriptのライブラリを使うことでWebアプリケーションからROSに繋いでトピックのやりとりをする方法を解説します。 公式サイト:https://wiki.ros.org/roslibjs ...
Read More