Arduinoでファンをコントロールする。トランジスタの使い方。

Arduinoで電子工作入門「トランジスタ」の使い方です。トランジスタは電気的なスイッチだ。強い電気をON、OFFできるようになるパーツだ。近年の電子工作と言ったらArduinoだ。しかし、Arduinoがコントロールできる電気は5Vのみで、出せる電流も少ない。モータなど大きな電流、大きな電圧が必要なアイテムはArduinoだけではコントロールができない。そこでトランジスタというパーツを使用する。

以下はこの記事の立場と注意です。

我々の主義は「死ななきゃ安い」「壊して覚えろ」です。トランジスタは使い方を間違えると発熱し最悪の場合、火を噴くかもしれません。が、他のものに燃え移ったりしなけば死ぬことはありません。でも、もしそういったリスクが怖いのであれば本屋でテキストを買って勉強しましょう。

トランジスタ概要

  • トランジスタは電気的なスイッチ。強い電気をON、OFFできるようになるよ。
  • いろいろあるけど「C1815」だけ覚えればOK。
  • ON,OFFをすごい速さでやれば、電気の流れる量を調節できるよ。

 

トランジスタは電気のスイッチだ。スイッチをArduinoでONOFFすることで9Vでも24Vでもバリバリ流すことができるようになる。トランジスタは秋月電子通商千石電商で販売している。価格は一個5円程度だ。電子工作をする人は100個くらいは買っておこう。

トランジスタはたくさんの製品があるが、覚えるのは「C1815」というものだけでいい。「C1815」にもいくつか種類があるが、大体一緒なので違いを覚える必要はない。C1815はかまぼこから足が3本出た形をしている。平たくなっている方が正面だ。足は右から順に、「GNDに繋ぐ足」「モータとかのマイナス側に繋ぐ足」「Arduinoに繋ぐ足」だ。プロはそれぞれ「エミッタ」「コレクタ」「ベース」と呼ぶらしいが覚える必要はない。

ch1815l
トランジスタC1815L
img_0004
トランジスタC1815の20個入で100円

実際に使ってみよう。

今回はArduinoとトランジスタを使い、9Vで動作するファンをコントロールしてみるよ。

必要なものは以下の通りだ。

  • ArduinoUNO
  • DCファン20V80mm角
  • 9Vまたは12V電源
  • ブレッドボード、ジャンプワイヤ等
  • ピンヘッダ1×3

http://akizukidenshi.com/catalog/g/gP-02968/

http://akizukidenshi.com/catalog/g/gC-03949/

参照:http://akizukidenshi.com/catalog/g/gP-02968/
参照:http://akizukidenshi.com/catalog/g/gP-02968/

ファンの名前に20Vと書いてあるが、こいつは8Vでも30Vでも動く。残念ながら5Vだと動かないのでUSBからの給電では動かない。9Vか12Vの電源で給電しよう。ファンはこのままではブレッドボードに挿せないのでピンヘッダを差し込み、ファンと繋げられるようにする。ピンヘッダの黒い部分は押すと僅かにズレる。ファンとブレッドボードの両方に刺さるようにうまく調整してほしい。

回路は以下のようになる。

fan

ファンの赤い線→Vin

ファンの黒い線→トランジスタの真ん中の足「モータとかのマイナス側に繋ぐ足」

トランジスタの左「GNDに繋ぐ足」→GND

トランジスタの右「Arduinoに繋ぐ足」→Arduino Pin3

回路ができたらArduinoIDEでスケッチを描いていこう。

int fan = 3;


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


void loop() {
 digitalWrite(fan, HIGH);
 delay(3000);
 digitalWrite(fan, LOW);
 delay(4000); 
}

スケッチをArduinoに書き込んだらUSBを抜き、代わりに9Vの電源を刺してみよう。どうだろう?ファンが動いたり止まったりしただろうか?動かない場合はトランジスタの向きを確認してみよう。3番ピンがHIGH状態になると、トランジスタのスイッチがONになる。そうしてファンに電気が流れる。3番ピンを数秒ごとにHIGHにしたりLOWにしたりしているので、ファンも数秒ごとに動いたり止まったりしているのだ。トランジスタの基本的な使い方はわかったが、ファンがこんな動きをしていては使い物にならない。ファンから出る風の強さをコントロールしてみよう。

スケッチを描きなおす。

int fan = 3;
int volume = 0;
int val = 0;


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


void loop(){
  val = analogRead(volume);
  analogWrite(fan, val / 4);
  delay(10);
}

img_0013

ブレッドボードにボリュームというアイテムを追加した。ボリュームによってファンの回転速度を制御している。今回はArduinoのPWMという機能を使った。PWMはHIGHとLOWを高速でガチャガチャと切り替え続ける機能だ。前回のスケッチでは3秒4秒かけてHIGHとLOWを切り替えていたが、PWMはこれを1秒間に1000回くらいやる。人間では認識できないものすごく早いスピードだ。analogRead();でボリュームの状態を数値化し、analogWriteに渡している。analogWriteに与える数字が大きければ大きくなるほどHIGHの時間が多くなり、電気がたくさん流れ風が強くなる。逆に小さくするとHIGHの時間が少なくなり、電気が流れなくなり風が弱くなる。数字は0から255まで使えるので、好みの風量を探してみよう。

ここまでできたら、トランジスタの使い方はほぼ習得したことになる。

君は高い電圧の電気をON、OFFができるようになり、高い電圧電流を必要とするモータやファン、LEDモジュールなどが使えるようになった。また、PWMを使って高速にトランジスタをON,OFFすることで、モータやファンの動く速度をコントロールすることができるようにもなった。電子工作の幅が相当広がったはずだ。気温が高いほどファンを強く動作させるなど、センサと組み合わせて面白く便利なガジェットを作ってほしい。

最後に

最後にトランジスタ「C1815」は便利なアイテムですが、当然ながら万能ではありません。トランジスタに限らず、電気を使うことはリスクを伴います。初心者を卒業するまでは、以下のことを気を付けてください。C1815は25V以上の電圧をかけたり、80mA以上の電流を流そうとすると簡単に壊れます。そういった無茶な使い方をすると発熱し、煙が出たり、最悪の場合燃えたりします。初心者のうちは使用中に目を離さないようにし、可燃物のある場所で使用しないようにしてください。煙が出るなどしたら、すぐにトランジスタに電気が流れないようにしてください。ブレッドボードの端を持ち、ファンやモータのコードを抜く方法が確実で安全です。また、トランジスタは安全な電流電圧でも発熱するので火傷に注意しましょう。

今回紹介した回路は初心者にトランジスタを紹介することが目的だったので、回路をかなり簡略化しています。上級者に自慢すると恥をかくことになるかもしれません。もしトランジスタをしっかりと安全に使いたいと思った場合は「トランジスタ 使い方」で検索してみてください。

難しい単語が並んでいて初心者には厳しいと思うので、今度解説を書く予定です。