0
1

More than 3 years have passed since last update.

04ArduinoでDCモータを簡単に回してみる

Last updated at Posted at 2019-04-17

Arduinoを使って簡単にDC(直流)モータを回してみます。

03でLEDをPWM制御しましたが、その時のピン(ポート)を使ってモーターの回転数も調整してみたいと思います。

まず、回路図です。

回路図

モーター制御回路2.png

<補足>
抵抗R1はダンパ抵抗と呼ばれるものです。今回は100Ω程度に設定します。
抵抗R2はR1の100倍程度、10kに設定します。

制御素子に「MOSFET」を使います。FETは電圧制御素子ですので、マイコンなどからの微電流信号でも比較的簡単に扱えます。
モータは、小型DCモータ(1A以下)を想定しています。

FETに並列に接続されているダイオードは、モータの逆起電力防止用です。
詳しくは触れませんが、一般整流用ダイオードでいいのでつけましょう。

実際の結線

hhg.jpg
ブレッドボード上に結線してみました。
ぐちゃぐちゃで すみません motor電源はUSBからもらいます。
回路図にありませんが、GNDはArduinoボードと共通にします。

早速、結線して電源投入・・・の前にいくつか注意が

回路上の注意

電源電圧は、モータブラシの定格電圧とFETの定格電圧を超えないようにしてください。また、FETに接続されている抵抗は、R1=100Ω位、R2=10kΩ位に設定してください。
R1をダンパ抵抗と呼ばれています。
FETのゲートには、わずかですがコンデンサの成分があり、ダンパ抵抗を介さずに直接接続すると、瞬時に大電流が流れしまいポートを破壊する恐れがあります。
今回は、PWM信号のように高速でON/OFF繰り返す制御をしますので、必ず設置してください。

プログラム上の注意

LEDのプログラムは実行後(電源投入後)直ちにLEDが点灯し始めましたが、モータなどはいきなり動き出すとびっくりするだけでなく、危険なのでスタートスイッチのような機能を付けましょう。

スイッチの回路図を追加します。

スイッチ回路図

SW回路1.png

えらくシンプルです。
Arduinoのピンには、プルアップ機能が備わっていて、回路上(スイッチの手前)にプルアップ抵抗を挿入する必要がありません。助かります。

これらを踏まえて、スタートスイッチ付のプログラムを作ってみました。

モータ制御プログラム1

robot19
void setup() 
{ 
  pinMode(14, INPUT_PULLUP);
}
void loop() 
{ 

  //pin14の信号が来るまで待つ
  while(digitalRead(14) != 0);

  analogWrite(6,125);

}

pin14に接続されているスイッチを押した瞬間にモーターが回りだします。
しかし、電源を切らない限り止まりません。

ストップスイッチも付けたい

いや付けないと止まらない。

ストップスイッチpin15を追加する。

ストップ機能追加プログラム

robot19
byte ON_flag=0;
void setup() 
{ 
  pinMode(14, INPUT_PULLUP);
  pinMode(15, INPUT_PULLUP);
}

void loop() 
{
  //スタートスイッチとストップスイッチを監視する
  //スタートスイッチ
  if(digitalRead(14) == 0)
    ON_flag = 1;
  //ストップスイッチ
  if(digitalRead(15) == 0)
    ON_flag = 0;

    if(ON_flag)//flagが1ならモータon
      analogWrite(6,125);
    else //flagが0ならモータoff
      analogWrite(6,0);
}

一度スイッチを押したら動作(on,off)を継続するために、動作状態を保持する変数ON_flagを用意すると調子がいい。

確認1

motorが動作したら、パワーを80%にしてみたい

確認2

motorが動き出す最小の値はいくつか、調べたい

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1