SSブログ

Arduino でモータを動かす [Arduino]

今回は、Arduino のポートを ON / OFF することで、モータを動かしたり、止めたりすることを考えてみたいと思います。

何も考えずにArduino のポートを直接モータにつないでみます。モータは、ブレッドボードに両面テープで固定しました。ちなみに、モータの先についているプロペラは、息子がプラモデルの余りで作った自作品です。(^.^)

Arduino_with_Motor_Simple.jpg

両面テープは、下記のような剥がせるタイプの厚手の両面テープを持っていると便利です。



さて、下記のようなプログラムを書いて、動かしてみます。モータを3秒間動かして、3秒間停止を繰り返す単純なものです。

MotorDrive_with_port.png

試してみれば分かりますが、残念ながら、これではまったく動きません。

Arduino のポートで出力できる電流は、最大 40mA しかありません。ホビーなどで使用されるモータは、負荷時には 500mA 、無負荷時でも 250mA 必要です。なので動かせないのです。

動かすにはモータードライブ用のトランジスタ(FET)を使う必要があります。今回はパワートランジスタ、MOSFET (電界効果トランジスタ) 2SK2231 を使ってモータを駆動してみます。

まず、ブレッドボード上にトランジスタを使った回路を組みます。

MOTOR_DRIVE.png


モーターに並列して接続されているコンデンサとダイオードは、モータから発生する逆起電力からトランジスタを守るためにつけてあります。

モーターが発電器でもあるのは、よく知られていると思います。自転車のライトでもおなじみですよね。

モーターは、電流供給を止めた時などに、慣性でモーターが回ってしまうため、モータ自身から電流・電圧(電力)が発生します。この逆向きに発生する電流を逃す/堰き止めるため、モータと並列にダイオードとコンデンサを挟んでいます。(ダイオードは方向に注意してください。黒い印の方が、電流の流れる方向です)

実際に組んだ後の写真がこれです。

Arduino_with_Motor_FET.jpg

分かりやすくするため、もうちょっと拡大しましょう。

Arduino_with_Motor_FET2.jpg

2SK2231 に書いてある、G、D、S は、回路図と対比して見てください。
先ほどと同じプログラムで動かしてみます。今度は、トランジスタの力を借りて動くはずです。

Arduino_with_Motor_FET3.jpg

おっ、動きました!

今回の内容は、息子にとってはチンプンカンプンだったと思います。まずは、Arduino のポートから直接、モータを動かすことはできないんだ、ということが分かってもらえれば十分です。


関連記事
Arduino Nano で使うモータードライバーを買ってきました
http://makers-with-myson.blog.so-net.ne.jp/2014-05-08

Arduino Nano でサーボモータを動かしてみた
http://makers-with-myson.blog.so-net.ne.jp/2014-04-24

Arduino Nano で使うモータードライバーに悩む
http://makers-with-myson.blog.so-net.ne.jp/2014-04-21






Arduinoをはじめよう 第2版 (Make:PROJECTS)

Arduinoをはじめよう 第2版 (Make:PROJECTS)

  • 作者: Massimo Banzi
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/03/16
  • メディア: 単行本(ソフトカバー)



Arduinoをはじめようキット

Arduinoをはじめようキット

  • 出版社/メーカー: スイッチサイエンス
  • メディア: おもちゃ&ホビー







nice!(21)  コメント(4)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 21

コメント 4

にゃんこ

初めまして。
よしのたろうさんのブログを見て、僕も電子工作を勉強し始めました。
いつも勉強させていただいています。ありがとうございます。

他の記事も色々みて疑問に思ったのですが、

逆起電力は電力の流れで言うと通常
Arduino(+)→モーター→ダイオード→FET→GND(-)という流れが
逆起電力が起こった場合はどうなるのでしょうか。

モーターの2つの電極から(+)が発生し、GNDに一番近い
FETでショートされ、FETが破壊されてしまうという感じなのでしょうか。

そこで、ダイオードを設置することで、モーターから出た電気を
モーター自身に還してやっているという流れになるのでしょうか。
by にゃんこ (2015-11-19 08:19) 

ys_oota

にゃんこさん、はじめまして。

普通トランジスタをオフにすると、負荷に流れる電流の流れも止まります。水路を堰き止めたような感じです。

しかし、モーターの場合はオフにした場合でも起電力によって電流の流れが止まりません。ちょうど堰き止めた水路にポンプで水をじゃんじゃん送り込んでいるようなものです。そうなると堰はこわれてしまいますよね?

そこで電流の逃げ道を作ってあげなければなりません。それが並列に接続したダイオードです。逆流した電流は川上で飽和してしまうので、コンデンサーで溜池を作ってあげているというわけです。

by ys_oota (2015-11-20 22:50) 

CYRIX

非常にためになるページでわかりやすいので困ったときに読ませてもらってます。全くの初心者で申し訳ありません。初歩的なことを教えて下さい。
トランジスタにはhFEという、電流増幅の倍率があるとOOTAさんのページで知りました。FETにはその様な記載は無いのですが、電流を何倍になるというのはどのように判断するのでしょうか?
by CYRIX (2016-07-28 22:14) 

ys_oota

CYRIXさん、いつも訪問ありがとうございます。
トランジスタには電流増幅の機能がありますが、FETは基本的には電子的なスイッチと考えたほうがよいです。GとDSとは絶縁していますのでトランジスタのようには電流は流れません。モーターのような大電流を必要とするデバイスには回路保護のためにはそちらのほうがよいのです。下記のサイトが参考になると思いますので参照してください。

http://www.maroon.dti.ne.jp/koten-kairo/works/transistor/Section1/intro3.html
http://irobot.csse.muroran-it.ac.jp/html-corner/robotMaker/themes/motorDriveWithFET/
by ys_oota (2016-07-30 01:32) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0