けつあご日記

tinojiはやみのふぃくさーにしかなりたくない.ひゃっぽゆずっててんほういは,あり.

トランジスタ使ってArduinoでモーター回してみたメモ


最近Arduinoをいじって遊んでる.ルンバとかつくりたくてモーター制御したい.モーター制御にはモータードライバーというものを使うらしいが,理解のためにまずトランジスタでやってみようというのが定石らしい(?)

で,トランジスタの理解に丸一日費やすというアホを発揮したので自分用にメモ.

なぜトランジスタが必要か

deviceplus.jp
↑を参照.つまり,Arduinoの定格出力では電流が足りないので,直接繋いでしまうとArduinoの方が壊れてしまうということ.それは避けたい...

そこで便利なのがトランジスタ.これがあると,Arduinoに大きい電流を流さずにモーターには十分な電流を流すことができる.しゅごい.

トランジスタとは

まずダイオードの仕組みを理解しておくとよい.
www.murata.com

www.murata.com

つなぎ方が3つある.そのつなぎ方によって電圧・電流どちらが増幅できるかがかわる.が,増幅回路として使いたいときは普通エミッタ接地を使えばいいらしい.

www.nteku.com

ダイオードとトランジスタの説明はこの本が分かりやすかった↓

図解でわかるはじめての電子回路

図解でわかるはじめての電子回路


トランジスタにはスイッチサイエンスで買ったセットに入っているやつを使う.真ん中の2N3904ってやつ.
ディスクリート部品詰め合わせキット - スイッチサイエンス

f:id:kichiku_kikuchi:20170223120319j:plain:w500

↑この2N3904は一般的なトランジスタとコレクタ,ベース,エミッタの並びが違うので注意.

エミッタ接地で増幅する

エミッタ接地トランジスタの回路をつくっていく.回路図はこんな感じ.

f:id:kichiku_kikuchi:20170223123640j:plain:w500

いきなりArduinoとモーターを使うのは怖いので,ためしにスイッチとLEDでやってみた.

ここで本当に注意したいのは,ベース-エミッタ間(上の図の左側の回路)の電流の大きさ.回路図を見てみると,左側の回路では電源とベース,エミッタが繋がった回路になっている.npn型トランジスタではこの回路は「ダイオードに順方向電圧をかけている」状態に相当する.

ダイオードに大きい順方向電圧をかけると,大きい電力がダイオード内で熱として消費されるので,めっちゃ発熱する.最初何も考えずに回路図通り繋いでみたら,なんか変な臭いがしてきて,ダイオード触ったら鬼熱かった

hiyokko-hard.com

データシートではエミッタ-ベース電圧は6Vまでオッケーって書いてあったんだけど...よくわからん.そもそもエミッタ接地の場合のエミッタ-ベースの電流はかなり小さいことを想定しているというか,小さくて十分って感じなんだろう.

例えば増幅率が100ぐらいだとすると,ICを100mAにしたいならIBは1mAに調節する,と.なんかよくわからんけどめっちゃ大きい抵抗噛ませとけばオーケーなのでは?と考えて,こうした↓

f:id:kichiku_kikuchi:20170223123851j:plain:w500

わからんけどトランジスタのことは忘れて,0.1mAぐらい流そうと考えて(増幅率100のときLEDに10mA流れるように),4.5Vだったら45kΩ繋いどけばいい?なので22kΩを2つ繋いだ.これでテスターで電流を測ってみるとほとんど針は振れなかった.電流はほとんど流れていないということだろう.うん.

これでコレクタの方も繋いでみた.なんか成功したらしく,程よい光量でLEDが点灯した.テスターで測ってみると10~20mA(?はかりづらいんだわい)ぐらいだった.おけおけ.

(画像とブレッドボード図を参考にする際は,トランジスタの配線に注意してください.私の使用したトランジスタのエミッタ,ベース,コレクタの並びは一般的なトランジスタのものとは違うらしいです.)

f:id:kichiku_kikuchi:20170223120605j:plain:w500

f:id:kichiku_kikuchi:20170223124902j:plain:w500

Arduinoとモーターで本番

モーターだと150mAぐらい流れてほしいので,エミッタ-ベース間の抵抗を3kΩにしてみた(実際の電流は測り忘れた...).ちなみにモーターは↓に付いてきたやつを使っている(FP030-KN/11160).定格電圧が3Vのもの.

タミヤ 楽しい工作シリーズ No.189 ミニモーター低速ギヤボックス 4速 70189

タミヤ 楽しい工作シリーズ No.189 ミニモーター低速ギヤボックス 4速 70189

f:id:kichiku_kikuchi:20170223120302j:plain:w500

f:id:kichiku_kikuchi:20170223125619j:plain:w500

void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13,HIGH);
delay(1000); 
digitalWrite(13,LOW);
delay(1000);
}

ちゃんと回ったぞい.とりあえずこれでモータードライバを使う権利を得たということにしておこう.

まとめ

必要だったことをまとめておく.

  • ダイオードとトランジスタの原理を勉強する
  • エミッタ接地を理解する
  • やばい発熱をしないように抵抗を使う(重要)
  • データシートを頑張って読む


↓アフィカスリンク

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

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