ここでは,Arduinoでモーターを制御する方法について述べます。残念ながら,Arduinoのピンに直接モーターを接続しても動きません。どうしたらいいでしょうか?
まず,実体配線図を示します。トランジスタが登場したのがわかると思います。モーターを回すには大きな電流が必要なのですが,Arduinoの出力はそんなに大きくありません。そこで,Arduinoの小さな出力をきっかけにしてモーターを回したり,止めたりします。このとき,トランジスタのスイッチング作用を用います。


回路図を左に示します。
今回はArduinoに接続されているのは11番ピンだけです。
このピンから信号が出力されるとLEDが点灯し,トランジスタのベースに電流が流れます。このとき,コレクタに電流が流れてモーターが回転するしくみです。
逆に,11番ピンから信号が出力されていないときは,ベースに電流が流れませんので,コレクタ電流が流れず,モーターは回転しません。
次にプログラムを右に示します。
3行目は,11番ピンを出力モードとして扱う宣言文です。
7行目では,11番ピンにHIGH信号を出力しています。すなわち,モーターが回転します。8行目は回転を0.1sec持続する命令です。

9行目は,11番ピンにLOW信号を出力していますから,モーターが静止します。10行目の命令でモーター静止の状態を0.1sec持続します。
全体としては0.1secごとにモーターが回転・静止を繰返すプログラムになります。
回路の動作を左の動画で示します!モーターの回転が動画ではわかりにくいので,プロペラを付けています。また,LEDが点灯しているときモーターが回転しています。
この動画を見ると,モーターがずっと回転しているように見えますが,その意味は?


コメント