2017年1月31日火曜日

Arduino で DC モータを制御してみる

概要

Arduino で DC モータを制御してみました
作成した回路とスケッチを紹介します

環境

  • Arduino Uno
  • Arduino IDE 1.6.9
  • トランジスタ 2N5088 x 1
  • 一般用整流ダイオード 1N4007 x 1
  • 抵抗 1kΩ x 1

とりあえず DC モータを回す

スイッチを押すとモータが回る回路です
arduino_with_dcmotor_circuit1.jpg

電池とスイッチとジャンパケーブルだけです
これを Arduino から制御できるようにします

電源を Arduino から取る回路

電源を電池 2 本から Arduino に変更した回路です
arduino_with_dcmotor_circuit2.jpg

電源を変更しただけなのでこれでもモータは回ります

デジタルピンで制御する回路 (誤)

2 番ピンを使って制御してみます
まずはバカ正直に回路を組んでみます
arduino_with_dcmotor_circuit3.jpg

スケッチは以下の通りです

void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(2000);
  digitalWrite(2, LOW);
  delay(2000);
}

これだとモータが回らないのがわかると思います
電圧は足りているのですが、電流が足りていないためモータが回りません
これにトランジスタを加えることでモータを制御してみます

デジタルピンで制御する回路 (正)

トランジスタ+ダイオードを使った回路は以下の通りです
arduino_with_dcmotor_circuit4.jpg

トランジスタの配線部分だけ拡大しました
arduino_with_dcmotor_circuit5.jpg

スケッチは前述のとおり 2 ピンを制御するスケッチを使っています
これで正しく動作すると 2 秒おきにモータが起動/停止を繰り返します

ポイントはトランジスタとダイオードの配線です

  • エミッタ (写真一番左) は GND に接続します
  • ベース (写真真ん中) は Arduino 2 ピンの信号を 1kΩ の抵抗を挟んで接続します
  • コレクタからジャンパケーブルを出してモータと整流ダイオードを並列に接続します

整流ダイオードはプラスとマイナスの区別があるのでプラス側に Arduino の 3.3v を接続します
トランジスタはものによってエミッタ、ベース、コレクタのピンの順番が異なるので適宜電気特性のシートなどを見ながら確認してください

また、今回モータ用の電源は Arduino の 3.3v から取得していますが電池から取得しても問題ありません

最後に

Arduino で DC モータを制御してみました
今回のポイントはトランジスタとダイオードでしたがそれぞれの働きは

  • トランジスタ・・・電流を増幅させる
  • ダイオード・・・電流の流れを一方向にする

ですが、実際に回路を組んでみると更に動きを理解することができました

あとは電圧の増幅 (昇圧) とかもやってみたいと思っています

参考サイト

0 件のコメント:

コメントを投稿