Blinkから始まるArduino入門 その6 リレー

 電子工作に使われるモータは電流がたくさん流れるので、Arduino UNOのポートを直接つないで駆動できません。もう一つ、モータはコイルなので、流れている電流止めると高い電圧が発生します。Arduino UNOは5Vで動作していますが、ポートにマイコンの絶対最大規格を超える高い電圧がかかるとマイコンが破壊されます。

一番確実な駆動方法

 電流を増やすにはトランジスタを使います。トランジスタにはBJTとFETの2種類があります。FETにはJFETやMOSFETがあります。ここで駆動といっているのはONかOFFの状態しか存在しないスイッチング動作です。ポートにHIGH出力すると、つまり5VになったときにトランジスタをONします。スイッチング動作にはMOSFETが向いています。

 リレーや小さなモータを駆動するための小電力MOSFETに日本製はありません。海外で使われ日本国内でも入手しやすい2N7000などが使いやすいです。中電力用になると、東芝やサンケンなど日本製品が多く入手できます。世界で見ると、一番品数が多いのはIRです。

リレーを利用する

 リレーをモータのON/OFFに使うと、モータの電源電圧が3Vであっても12Vでも気にせずに駆動できます。この部分を半導体で行うと、耐圧や電流をしっかり考えて利用しないと簡単に破壊されます。

 日本の電子回路集を紐解くと、MOSFETでリレーを駆動している例はほとんどありません。

 さきほど、コイルに流れる電流を切ると高い電圧が発生すると説明しました。なので、ノイズがグラウンドを介してマイコン側に戻ってきます。たくさんのポートのリレーが同時にON/OFFを繰り返すときなど、とてもノイズが満ち溢れます。誤動作の原因になります。

 ノイズを回り込ませないためには、駆動回路にフォト・カプラを使います。

 東芝はフォト・カプラの大手メーカです。いろいろ種類があって、どれを使ってよいのかわからないです。Webにある資料では選択基準が書かれていますが、どれでも使えるように思えます。今回はリレーなので、高速に動作する必要がないです。

フォト・カプラを搭載した市販品を利用する

 フォト・カプラには種類が多く、フォト・リレーと呼ばれる製品もあります。フォト・カプラは、1次側のLEDをON/OFFし、2次側の受光素子まで光を飛ばすので、電気的に絶縁したい部分に使います。2次側の回路構成にいろいろあり、次につながる回路によって選択します。

 次に示すのは、ポピュラでシンプルな構成の817の内部構成です。絶縁の必要性から、リードが外部に出ているパッケージが使われます。1、2ピンのLEDダイオードをArduinoから駆動します。4、3ピンのトランジスタ側をリレーにつなぎます。

 すでに実装されている製品が電子工作用に市販されているので、それらを入手します。

 いずれもフォト・カプラは817が使われています。入力側のLEDの順方向電圧は約1.2Vです。20mA程度まで流せますから、通常の赤色LEDの駆動と同じ扱いです。上記のような市販ボードでは、電流制限抵抗は内蔵されているので、ArduinoのポートをIN端子に直接つなぐだけで利用できます。

 リレーの電源は別に用意します。5Vと12Vのどちらかの製品が多いようです。小型リレーでは、5Vは約70mA、12Vは約30mAがコイルに流れます。8個同時にONするには約8倍の電流が流せる電源が必要です。

マルチリレー基板

 8個の負荷を同時に操作するため、8個のリレーを搭載したボードを利用します。リレーの電源は5Vです。負荷はリレーの表面に書かれているように、最大250Vac-10A、30Vdc-10Aです。

接続

 Arduinoのポート2番から9番までをつなぎました。安定に動作させるには、リレー基板のVccはArduino以外から5Vを供給する必要があります、ここでは手抜きをしました。Arduinoの電源をUSBから得ている場合は、規格上最大500mAが流せます。Arduino本体は30mA程度の消費電流です。したがって、リレーには470mA、1個当たり約60mAの電流を流せます。ON時には突入電流が流れるので、多めの電流が消費されます。動作が不安定な時は、電源に470uF/16Vの電解コンデンサを入れると改善される場合があります。

 DCジャックに電源をつなぐ場合は、内部に入っている3端子レギュレータが規格上800mAまで対応しているので、短時間ならUSBの500mA以上を供給できますが、放熱器がないので、長時間の動作は過熱して危険です。長時間動作させる場合は、リレーのVccには別途1A以上のAC-DCアダプタをつないで使います。

 スケッチは、余分なピンのON/OFFをしていますが、前回のを流用しました。

void setup() {
for (int i = 0 ; i < 20 ; i++) {
pinMode(i, OUTPUT);
}
}

void loop() {
for (int i = 0 ; i < 20 ; i++) {
digitalWrite(i,HIGH);
}
delay(5000);
for (int i = 0 ; i < 20 ; i++) {
digitalWrite(i,LOW);
}
delay(100);
}

 つないだ時点で、リレーはONになりました。動作をさせると、LOW出力時にリレーはONになるので、負論理だということがわかります。こちらの記事のように、正論理のほうが使いやすいです。負荷を安全にON/OFFさせたいときは、Arduinoの電源をつないで数秒経過後にリレーのVccの電源をつなぎます。

前へ

Blinkから始まるArduino入門 その5 光ればよいと考えるか

次へ

Blinkから始まるArduino入門 その7 でかいスイッチ