○ DC モーターを使用する

模型などで使用するモーターをマイコンなどで制御してみます。
制御に必要な機能は正転、逆転、ブレーキ、停止の状態です。

DCモーターはモーターのプラスマイナスを入れ替えると逆回転しますし、電池を外すと停止します。
モーターの両極をショートさせるとブレーキになります。

それを実現するためにHブリッジ回路を使用します。

Hの形をした回路で、4つのスイッチがあります。
もし、操作を誤ってプラスとマイナスを短絡させると即座に破壊されるので制御に注意が必要です。


二つの斜め方向のスイッチをONにすると正転します。


正転と反対側のスイッチをONにすると逆転します。


モーターの両極のスイッチをONにしてショート状態にするとブレーキです。

▼ 逆起電力対策
モーターの回転を停止してもモーターは回り続けて、今度は発電機となり回路に悪さをします。
そこで、ダイオードを取り付けることにより回路を保護します。


▼ モータドライバ
トランジスタやFETを使って作るのは面倒なので、Hブリッジが2個入ったL293DというICを使います。
モータードライバ l293d


このICのデータシートを見るとこのように載っていました。


ようするに、このように配線すれば良さそうです。


ブレーキはモーターが有効で二つの回転方向を決める信号を同じにする、PWMによる回転数制御は有効・無効を使用すれば良さそうです。


■ 実際に作成してみる
まず、ENピンを使用して回転数を制御するのには、PWMによる疑似アナログ出力を使用します。
ATmega328を搭載しているArduinoボードでは、デジタルピン3、5、6、9、10、11が利用できるので、デジタルピン3番に接続するとします。
Arduinoの5Vにモーターを接続すると電圧の変化によりArduinoが挙動不審になりますのでモーター用の電源を用意する必要がありました。


void setup() {
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
}

void loop() {
  digitalWrite(A0, HIGH);
  digitalWrite(A1, LOW);
  analogWrite(3, 128);
  delay(500);

  digitalWrite(A0, LOW);
  digitalWrite(A1, HIGH);
  analogWrite(3, 128);
  delay(500);
}
このような回路を作成し、Arduinoにはこのプログラムを書き込みました。


0.5秒毎にモーターが正転・逆転を繰り返します。


▲トップページ