直流モーターを制御する

Arduino

 ここでは,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が点灯しているときモーターが回転しています。

 この動画を見ると,モーターがずっと回転しているように見えますが,その意味は?

コメント

タイトルとURLをコピーしました