つれづれなる備忘録

日々の発見をあるがままに綴る

TinkercadによるArduinoシミュレーション15 ~ DCモーターの制御

1. モーター

 今回はArduinoによるモーター制御について取り上げる。簡単な例として、小型DCモーターを制御する方法を紹介したいと思う。

2. DCモーター

 モーターを駆動する電力としてDCとACがあり、それぞれDCモーター、ACモーターと呼ばれている。ホビー用のものなどは乾電池が電源になるためほぼDCモーターになる。またDCモーターは入力する直流電圧を変えることで回転数等が変更できるというメリットがある。一方でACモーターは、モーターの構造がDCモーターよりシンプルで耐久性が高い、大型化しやすいなどのメリットがある。詳しくはDCモーターとACモーターの違い。特徴の比較など参照。今回はTinkercad上でDCモーターはDCモーターとホビー用ギアモーターの2種類があるが、ホビー用ギアモーターを使った例を紹介する。 Tinkercadのホビー用ギアモーターに関しては、具体的な製品名が不明のため入力電圧等の仕様が不明だが、実際には推奨入力電圧などの製品ごとの仕様に従って使用する必要がある。なので、以下のTinkercad上のシミュレーションの条件で実際の製品を接続すると、動作しないことや最悪破損する可能性がある。

3. DCモーターのリレー回路による制御

 外部電源の電圧を利用してリレー回路を用いたモーターの制御法を紹介する。上記のホビー用ギアモーターの他に電源とリレー回路をTinkercadコンポーネントすべてから選択する。リレー回路は2種類あるがリレーSPDTを選択する。

DCモーターとリレー回路
DCモーターとリレー回路

リレー回路についてはリレーの基礎知識 1-1 基礎編 | オムロン電子部品情報サイト - Japanに書かれているが、今回のリレー回路はメカニカルリレーで、コイルに制御信号を入れることでコイルから発生する磁力によりスイッチを機械的に動かすタイプである。またSPDTというのはSingle Pole, Double Throwの略でA,Bを入力接点としたときにどちらかを選択するスイッチのことである。( スイッチ(3PDT,DPDT,SPDT,XPYT)の仕組みと使い方についてまとめ - いちばんやさしいエフェクターDIY|初心者向け講座など参照)

 リレー回路との入力側の接続は端子7と電源の正極を接続、端子6はなにも接続しない。出力側の接続は端子12を間にブレッドボードを介してモーターの正極に接続する。制御用の接続としては、端子8をArduinoの出力ピン3へ接続し、端子5はGNDに接続する。Arduinoのピン3の出力を"LOW"または"HIGH"とすると、スイッチが端子7または端子6に切り替わることで、電源に設定されている電圧でON/OFFを制御することができる。  以下のスケッチは3ピンの出力をLOWとHIGHを1秒ごとに切り替えている。電源を24Vに設定しておくと、電源ON時にモーターは816RPMで回転し、電源OFF時は0RPMとなる。(実際には惰性により急に回転が0になることはない)

 なお何も接続していない端子6に別の電源を接続して適当な出力電圧を設定すると、スイッチが切り替わるごとに2種類の速度でモーターが回転する。ところで、今回取り上げたDCモーターの制御方法だと、電圧を変化させて回転数を細かく制御することはできない。一般的には電源に通信インターフェースが搭載されていることが多いので、電源を例えばArduinoでリモート制御するということをすれば電源の出力電圧を変動させることで、DCモーターの回転数を制御することができると思う。

void setup()
{
  pinMode(3, OUTPUT);
}

void loop()
{
digitalWrite(3,LOW); //電源ON
delay(1000);
digitalWrite(3,HIGH); //電源OFF
delay(1000);
}

4. 注意点

 Arduinoの出力ピンとモーターを直接接続することは、(Tinkercadのシミュレーション上では50RPM程度で回転するが)実際にはやめたほうがよい。理由としては出力ピン1つ当たりから40mA以上の電流を引き出すとArduinoが破損する可能性がある。(Arduinoの出力電流について | disce Omnes参照)モーターの駆動は出力電流に余裕のある電源などを利用し、Arduinoのピン出力は制御用の信号として利用するのはよさそうだ。ホビー用ギアモーターの電圧・電流・回転数の関係をTinkercadの電源を接続して調べた結果以下のようになった。

電圧(V) 電流(mA) 消費電力(W) 回転数(RPM)
1 46.2 0.05 34
2 92.4 0.18 68
3 139 0.43 102
4 185 0.74 136
5 231 1.15 170
9 416 3.74 306
12 555 6.66 408
24 1110 26.6 816

上の結果から回転数34RPMでも40mA以上の電流が流れるため、DCモーターを直接Arduinoのピンと接続するのはよくない。

5. まとめ

 今回はArduinoでDCモーターを制御する方法を紹介した。また注意点としてArduinoの出力電流の関係でDCモーターに対して直接出力ピンをつながないことを取り上げた。次回はサーボモーターの制御方法について取り上げる予定である。