実験 リレーをON/OFF その1

リレーは電子工作に便利

 マイコンは5Vや3.3Vで利用します。高い電圧の12Vや交流AC100Vは直接扱えません。太陽光発電で使われるパワー・コントローラの中身はDC-DCコンバータが入っており、300V以上の電圧を扱います。制御はマイコンで行っています。高い電圧は、高耐圧のデバイスであるiGBTやMOSFETで制御できますが、その回路にはたくさんの知識と経験が詰まっています。

 スピードを要求されないときは、機械的にON/OFFできるリレーを使うのが一般的です。

市販のリレーにはドライブ回路が入っている

 リレー自体は、12Vや5Vの電源をつなぐとコイルに電流が流れ、接点がONもしくはOFFになります。接点にはAC100Vなどをつなげられます。

 外観です。

 内部の接続です。2種類の接点があります。NCはNormally Closedの省略形で電流を流さない状態でON(導通状態)です。 NOは Normally Openで、電流が流れるとONです。

 マイコンで利用しやすいように、5V電源のマイコンでON/OFFできるリレー・モジュールが市販されています。リレー自体は、マイコンとは別電源を利用することを想定しているので、3.3V、5V、12Vなどが販売されています。

トランジスタでドライブ

 ドライブというのは駆動するという意味で使われます。リレーは電磁石ですから、ONするときに電流がわりと多めに流れます。マイコンのI/O端子で流せないぐらい多いです。

 ArduinoではI/O端子に20mAぐらいの電流が流せ、それで駆動できるリレーもあるようですが、ラズパイでは5mA程度で、多くのマイコンでも多くて4、5mAです。

 例えば、秋月電子通商で購入できる5Vで動作するリレーは、カタログを見ると71mA流れます。したがって、マイコンのI/Oでは直接ドライブできないので、トランジスタを入れて駆動できるようにします。

 多くの回路は、次のようになります。ダイオードはコイルから発生した高い電圧を迂回(吸収)させるためにつけています。

市販品を使う理由

 リレーで制御する対象は、数AもしくはAC100Vというった高い電圧や電力を扱います。マイコンは多くても数mAを扱うデバイスです。ブレッドボード上で配線を間違ってもやり直してすむことが多いです。

 でも、パワーを扱うとき、配線を間違ったり、配線が利用時に外れたら、多くの部分が破壊されます。

 なので、できれば、入力と出力端子を確実に接続できるようになったモジュールを使いましょう。絶対に、ブレッドボード上で、パワーを扱わないでください。

トランジスタによるドライブ・モジュールのONする電圧

 アマゾンで購入しました。

 5Vと3.3Vの二通りで測りました。電圧を上げるときにONになる電圧と電圧を下げてOFFになる電圧はわずかに異なりました。

  • ONになる電圧:5Vのとき3.6V、3.3Vのとき2.0V
  • OFFになる電圧:5Vのとき3.8V、3.3Vのとき2.4V

 したがって、5V電源のときは、3.6V以上の信号を出せば、リレーはONになります。OFFにしたいときは3.8V以下にすればよいことがわかります。5V電源のマイコンのI/Oは、Highで約5V、Lowで約0Vですから、確実にON/OFFができます。

 リレーを5V電源をつないで、3.3V電源のマイコンを使ったときは、I/Oは3.3V以上にならないので、ONにできません。

 このリレー・モジュールには出力がNOとNCの両方があります。電源をつないだ時点で赤色のLEDと緑色のLEDの両方が点灯します。そのときの接点は次のような状態です。

  • NO側がON、NC側がOFF

 Highの信号を入れてON状態にしたとき、赤色のLEDは点灯のまま、緑色のLEDは消えます。そのときの接点は次のような状態です。

  • NO側がOFF、NC側がON

 マイコンのI/O端子は、電源が入る前は0V=Lowですが、電源が入った後にLowとHighかどちらかになります。ラズパイのGPIOの様子をこちらで調べました。

 Lowになっている端子にこのリレーをつなぐと、マイコンの電源を入れるとLowではリレーをONにする指令なので、NO間がONになります。電源を入れる前は、NOなのでつながっていないOFF状態です。したがって、プログラムを動かす前後でON/OFF状態が変わってしまいます。

Arduinoで実験

 では具体的に実験してみましょう。

目標;電源を入れる前はモータは回っていない。マイコンの電源を入れてもモータは回らない。信号をONしたときだけモータは回る。

 このとき、信号をONにするというプログラムで、

  • 正論理では 低い電圧を高い電圧にすることを指す
  • 負論理では、高い電圧を低い電圧にすることを指す

2通りの方法があります。回路図を見て、信号の名前の上にバーが書かれていときや信号名の前に/が書かれている場合は負論理ですが、よく、付け忘れられます。

 接続の様子です。モータはこちらの記事で回したマブチモーターです。2Vの外部電源につないでいます。リレーがONになると、モータが回るという設定です。Arduino UNOの5V端子は電流をたくさん流せるので、別電源を用意しませんでした。リレーを複数使うときには電流容量が足りなくなるので、リレー用に別電源を用意します。

 Arduino IDE 1.8.1を使っています。Arduino UNOをつなぎ、サンプル・スケッチのBlinkをロードします。LEDの接続しているポートを2に変更します。

 モータの電源をONにしても、リレーはNO端子につながっているので、回転しません。

 ArduinoにPCからUSBケーブルをつないで、動作する状態にします。モータが回転します!プログラムはまだ動いていません。

 プログラムの書き込みが終わりプログラムが動くと、リレーが1秒ごとにカチという音を立て、モータがそれに合わせて回転と停止を繰り返します。回転するときは、緑色のLEDが点灯します。

 LOWを出力するところをコメントアウトして、実行します。緑色のLEDは点灯せず、モータも回転しません。

 LOWを出力するところのコメントアウトを外し、HIGHを出力する行をコメントアウトして、実行します。緑色のLEDは点灯し、モータはずっと回転します。

 したがって、LOWでリレーがONになることがわかります。このリレー・モジュールは負論理で動くことがわかります。

 回路は、先に示したものではなく、下記のようになると思われます。アマゾンの商品の説明にも、「低レベル トリガー 」と書かれています。

 ディジタル・ピンは0番から13番まであります。電源がつながった直後の電圧を調べました。

ピン番号 電圧[V]
0 4.99
1 4.92
2 0.xx 変動する
3 0.xx 変動する
4 0.xx 変動する
5 0.xx 変動する
6 0.xx 変動する
7 0.xx 変動する
8 0.xx 変動する
9 0.xx 変動する
10 0.xx 変動する
11 0.xx 変動する
12 0.xx 変動する
13 0.5

 0、1ピンは電源が入った時点でHigh、2番から13番は電源が入った状態ではLowです。

 0、1ピンは電源が入る前はLowなので、モータをどの状態でも回転させないためには、プログラムが動き始める以前はモータの電源をOFFにしておく必要があります。

 モータ・モジュールが正論理で動作するのであれば、2から13番ピンをつないで制御するときには、モータの電源は最初から入れた状態でもモータが勝手に回ることはないです。したがって、当初の目標は達せられませんでした。

実験 リレーをON/OFF

(1) リレーは電子工作に便利

(2) 正論理