Arduinoを使ってDCモーター制御

# Arduinoを使ってDCモーター制御

　Arduino面白いです！　ちょっとした電子工作がハンダづけなど不要でお手軽に試せます。
Wifiで繋げてリモートからの制御にも対応できそうということで夢が広がるわけですが、まずは第一歩として準備～DCモーター制御を試してみました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ArduinoというAVRマイコン、入出力ポートを備えた基板が面白いので、モーター制御するところまで遊んでみた。<br>このモーターの先を巻取りカーテンに挿して、Wifi経由で遠隔操作してリモートからカーテンの開け閉めとかできそう。<a href="https://t.co/G0rZRlrfS8">https://t.co/G0rZRlrfS8</a></p>&mdash; いわもとよしふみ (@fummy_) <a href="https://twitter.com/fummy_/status/977910236638883840?ref_src=twsrc%5Etfw">2018年3月25日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

　無事試せたので、以下まとめです。

## 準備

　機器として必要なものは以下の通り。

1. Arduino-UNO　　※今後も色々遊ぶのであればこちらがおすすめ。USBケーブルで接続するだけで使える入門機（Windowsはドライバが必要）
1. Arduinoビギナーのためのモーター・リレー・ブザー制御入門（初心者向けとしておすすめ）
    - ドライバーシールド SU-1204
    - DCモーター
    - 電池ボックス
    2. モーター
1. 単3電池×3本
1. USBケーブル（TypeB）　　※プリンタ用などでおなじみの形状のもの。Arduinoとパソコンの接続に必要
1. PC


## PCのセットアップ

　以下手順でArduino IDEのインストールを実施します。最近はWindows Storeからのインストールとなっている模様。

1. [Arduino \- Software](https://www.arduino.cc/en/main/software)の"Download the Arduino IDE"より対象OSのArduino IDE・ドライバをインストール
    - 今回は"Windows app Requires Win 8.1 or 10"からたどってインストール。Microsoft Storeで認証のうえインストールしておくと便利
1. Windowsの場合は接続したタイミングでドライバを導入。
    - ドライバは"C:\Program Files\WindowsApps\Arduino～\driver"フォルダに配置される（～部分は環境・導入バージョンによって異なる可能性がある）
    - WindowsAppsが隠しフォルダかつ権限の関係で開けないので、一時的に権限変更の処置が必要

1. Arduino Unoはデバイスマネージャー内でPorts(COM&LPT)の下に表示されます。Arduino Unoというものがあればそれを選択。複数COMポートがあってどれがArduino Uno接続ポートか不明な場合、以下手順で確認が可能
    2. Arduino IDEを起動
    2. 「ツール→ボード」より"Arduino/Genuino Uno"を選択
    2. 「ツール→シリアルポート」よりポートを1つ選ぶ
    2. 「ツール→ボード情報を取得」より正しくボード情報が取得できれば、そのポートが対象
1. デバイスマネージャより対象のポートのプロパティを表示。ドライバの更新を実施

　正しく認識されていると、Arduino IDEからこのようにボード情報が取得できます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/151198/106584d8-a3be-4643-433c-ad488d13524b.png)

　デバイスマネージャからは次のように見えます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/151198/c9fdc44a-9951-96c1-a5a8-976042ad2357.png)




## 接続確認

　試しに基板上のオレンジのLEDを1秒間隔で点滅させてみます。
1. Arduino IDEから「ツール→スケッチ例→01.Basics→Blink」と選択し、ソースコードを呼び出します
1. 左上「→」よりコードをマイコンボードに書き込みます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/151198/aa7a703e-7c13-f982-7d90-491b7d95197f.png)
1. 基板上のオレンジのLEDが1秒間隔で点滅すれば成功です！
1. コード内のdelay(1000);の値を色々書き換えて、点滅間隔を調整してみましょう！

## 電源OFF
　Arduinoにはシャットダウンのような概念がないようなので、LEDが点滅したままでもそのままUSBケーブルを外して問題ないようです。
　USBの他にDC電源から給電がある場合、USBケーブルを外してもLEDの点灯・点滅は続きます。
　再度接続した場合、最後に書き込んだスケッチの動作を行います。


## 教本のダウンロード
　今回は、Arduinoビギナーのためのモーター・リレー・ブザー制御入門を使ってモーター制御するため、教本も落としておきます。[\[教本\]モータリレーブザー制御入門](https://www.elekit.co.jp/software/SW-1016)からダウンロード可能です。


## DCモーター制御
　いよいよモーター制御なのですが、基本こちらの教本の通り進めていくとモーター制御がすぐ試せます！　非常に簡単です。
　教本の中で書いていないポイントを以下に記載します。（と言ってもほとんど書くことがないが……）

- Arduino とドライバーシールドの接続
    - ガイドの通り挿せば問題ないが、ピンが折れないよう注意して刺すように。奥まで押し込みすぎず、2～3mm浮くような状態で良い
- リレーの制御
    - モーター制御だけやりたければスキップしてもOKだが、動作確認も兼ねてやってみると良い。かなり大きめの「カチッ」音が聞こえるため、成功・不成功はすぐわかるはず
    - このドライバーシールドを挿した後は、ボードへの書き込み完了後、「カチカチカチッ」という音が鳴ってからプログラム制御が始まるため、結構わかりやすくなる
- DC モーターを制御する
    - モーターと電池ボックスの接続さえ間違えなければ、問題なくモーター接続できるはずです。レッツトライ！


## 最後に
　やったことがない技術だったので丸1日はかかるかな……と思ったのですが、準備含めて1時間ちょいでDCモーターの回転までできました！　これはすごい時代になったものだ……。
　一番時間がかかったのがMicrosoft Storeで導入した、Arduino IDEのフォルダの中のドライバを開くところだったのが……。



## 参考文献
- [Arduinoの最初の一歩](http://n.mtng.org/ele/arduino/tutorial001.html)
- [Arduino のすすめ](http://n.mtng.org/ele/arduino/)
- [Arduino 日本語リファレンス](http://www.musashinodenpa.com/arduino/ref/)