Arduinoでサーボモーターを動かす方法【電子工作の入門講座】

どうも、なかしー(@nakac_work)です。
自動車や家電製品のマイコンにプログラミングをする仕事をしています。

今回は「Arduinoでサーボモーターを動かす方法」について紹介します。

ちなみに、サーボモーターは「二足歩行ロボットの関節」や「ラジコンカーのステアリング操作」に使われています。

LEDを光らせる時のI/Oポートの操作と違って「PWM制御」でサーボモーターを動かします。

この記事では簡単にPWM制御について紹介しますが、詳しく知りたい方はこちらの記事を読んでから、Arduinoのプログラミングを学んだ方が良いと思います。

マイコンのPWM制御とは【現役エンジニアが教える電子工作】

この記事では次の内容を紹介します。

この記事の内容
  1. サーボモーターの特徴
  2. Arduinoの接続方法
  3. Arduinoのプログラミング

動画でも解説しています。

サーボモーターの特徴

サーボモーターは、一般的なモーターと違って角度を制御できます。

こちらが一般的なDCモーターと呼ばれるモーターです。
電流を流すことでモーターの軸が回転します。そして、電流を流す方向に応じて回転する方向が変わります。

サーボモーターは、パルス信号のデューティ比に応じて、軸の角度が変化します。角度を自由に制御できるので、二足歩行ロボットの関節に使えるんです。

今回は安価でよく使われるサーボモーターSG-90を使用します。

SG-90の特性は次の通りです。

周期は20msec=0.02secで、パルス幅と角度は下の表を参考にしてください。

軸の角度-90°90°
パルス幅0.5msec1.45msec2.4msec
回転軸:-90°
回転軸:0°
回転軸:90°

Arduinoの接続方法

Arduinoとサーボモーターの接続方法は下の画像を参考にしてください。

  • サーボモーターの赤色→+5V
  • サーボモーターの黒色→GND
  • サーボモーターの橙色→信号線
    ※信号線はPWMと書かれいてる0~13ならどこでもOK

Arduinoのプログラミング

プログラミングで大事な部分を説明します。

  • #include <Servo.h>
  • myservo.attach(引数1)
  • myservo.write(引数1)

詳しく解説します。

#include <Servo.h>

Servo.hというヘッダーファイルの読み込みを行う命令です。

ヘッダーファイルの中にはサーボモーターを制御するのに必要な関数が入っています。

ヘッダーファイルは必ずプログラムの最初に書くのがルールになっています。

myservo.attach(引数1)

引数1には、サーボモーターの信号線と接続したArduinoのピン番号を入力します。

先ほどの画像ではピン番号11に接続したので、

myservo.attach(11)となります。

カッコの後ろにセミコロン(;)を付けるのを忘れずに!

myservo.write(引数1)

引数1には、サーボモーターの軸の角度を0°から180°で入力します。

例えば、サーボモーターの軸の角度を90°にしたい場合は

myservo.write(90)と入力すればOKです。

たったのこれだけでサーボモーターの制御が可能です。

Arduinoでサーボモーターを動かす方法|まとめ

この記事では「Arduinoでサーボモーターを動かす方法」について解説しました。

この記事のポイント
  1. サーボモーターはPWM制御で軸の角度を調整できる
  2. 信号線をArduinoのPWMピンに接続
  3. ヘッダーの読み込みと関数を2つ使うだけでOK

Arduino関連の人気記事

>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】

>>Arduinoでできることを紹介【逆にできないことは何?】

>>Arduinoをゼロから勉強する方法【参考書は不要】

当ブログで人気のArduino入門キット

第1位:Arduino UNO スターターキット
Arduino UNOのスタータキットです。電子工作でよく使う部品が一式揃っており、バラバラで購入するより格段に安いです。
第2位:ELEGOO Arduino用のUNO R3 最終版スタータキット
こちらも電子工作によく使う部品が第一位のスタータキットよりたくさん入っています。とてもお買い得です。
第3位:ELEGOO Arduino MEGA 2560 R3
UNOの上位互換版MEGAのスターターキットです。これだけ入っていれば十分に電子工作の基本をマスターできることでしょう。
エンジニアが教えるArduino入門講座のまとめ【解説動画付き】