• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • HOME
  • Arduino
    • Arduino初心者編
    • Arduino基礎編
    • Arduino応用編
    • Arduino実践編
  • Raspberry Pi
  • microbit
  • XBee
  • Scratch
  • Contact Us
  • Privacy Policy

STEMSHIP

ものづくりを通して、科学を学ぼう!

現在の場所:ホーム / Arduino / Arduino初心者編 / Arduino初心者編:リレーモジュール(KY-019)を制御する

Arduino初心者編:リレーモジュール(KY-019)を制御する

2020年7月23日 by STEMSHIP 2 コメント

リレーモジュールKY-019は、メカニカルリレーと呼ばれる種類のもので、モジュール内で物理的にスイッチが動いて、電気経路を切り替えることができます。なぜそのようなことができるか、原理・使用方法・プログラミングについて説明します。

リレー

リレー回路は、とても大きな負荷(主電源電圧に接続された機器等)を切り替える場合に使用される事が多いです。その理由はリレー回路は、小さな電流で切り替える事が出来るため、負荷が大きい物を切り替えるのに最適だからです。機械的なスイッチング接続によって、2つの回路間が電気的に絶縁された状態になります。両方の回路(リレーを制御する回路とリレーで制御される回路)が外部電圧源から供給される場合は特に有効です。主電源電圧下で負荷回路内の機器を切り替える事も可能です。大きな電力を扱う場合は資格が必要になりますので、必要な資格を持っている場合のみ行うようにしましょう。

リレーがどのように機能するかは、コイルの電磁誘導という現象を利用しています。ここでは、リレーモジュールKY-019について紹介します。

図 1. リレーモジュール KY-019 はArduino から直接制御出来る。

図2. リレーモジュールKY-019の中の回路を表しています

上記の回路では、Arduinoの出力端子を図左側のIN端子に接続します。出力が0Vのときは、トランジスタ(T1)のベース抵抗R3に電流は流れず、コレクタ・エミッタ間(T1の上下端子)は導通していない状態、すなわちスイッチオフ状態になります。すると、LEDのD1は電流が流れて点灯しますが、RELAY1の端子1と4はコイルを通して同電位となるため、LEDのD2は点灯しません。RELAY1は端子3と5が導通した状態です。

次に、図左側のIN端子に5Vを印加すると、トランジスタ(T1)にベース電流1mAが流れます。すると、トランジスタのコレクタとエミッタ(T1の上下端子)の間が導通します。LEDのD1は電流が流れないので消灯し、反対にLEDのD2が点灯します。そして、RELAY1の端子1から4に向けてコイルに電流が流れます。コイルに電流が流れると、電磁誘導により、RELAY1の端子5に倒れていたリレーが端子2側に倒れます。

再度、図左側のIN端子に0Vを印加すると、RELAY1は端子5側に倒れるのですが、RELAY1内のコイルは電流を流し続けようとするため、端子4の電圧が一時的に大きくなります。この電圧をフライバック電圧やサージ電圧と呼びます。もしLEDのD1がない場合、サージ電圧がトランジスタT1を破壊します。これを防ぐために、整流ダイオードD1を入れて、D1とRELAY1のコイルのループに逃がしてやります。このダイオードのことを還流ダイオードといいます。ほかの呼び方として、フリーホイールダイオード、フライホイールダイオードもあります。

初期状態で閉じている端子をNC接点(RELAY1の端子5)と呼び、初期状態で閉じている端子をNO接点(RELAY1の端子2)と呼びます。リレーにトリガー信号(IN端子)が入力されると、これらは逆の状態に変化します。このような状態を繰り返すと、交互に点滅する光を実現する事が可能です。

リレーモジュールの中身についての説明は少し難しかったかもしれませんが、リレーを制御するのは知識があれば初心者でも簡単です。トリガー信号ピンはArduinoの出力ピンに直接接続する事ができます。トリガー信号がLOWの場合、トランジスタは無効となり、リレーは初期状態のままです。トリガー信号ピンがHIGHに切り替わる事によって、トランジスタがコレクタ入力を開き、リレーが切り替わります。信号経路内の LED はインジケータとしてのみ機能します。本モジュールのトリガー信号は3ボルト以上の電圧が必要です。

次のサンプル回路では、周囲の光がある値以下になった時、リレーを使って他の回路のLEDを点灯出来るか実験テストしたいと思います。この実験を行うために、フォトレジスタを使って行いたいと思います。

図3. 実験のために負荷回路(LEDと抵抗)を省いても構いません。モジュールのLEDはインジケータとしても機能します。

ここで注意点について述べておきます。LEDの光がフォトレジスターに当たると、フォトレジスタはその空間の照度を測定しているつもりが、LEDの照度を測定することになってしまい、LEDの明るさの値が閾値よりも高いとスイッチが切れてしまう事があります。その結果、LEDが不要な点滅を起こしてしまいます。この現象を打ち消すためには、ランプから離れた場所で光の測定を行う必要があります。また、点灯と消灯を異なるしきい値で切り替えるようにプログラムする事も可能です。このような性質をヒステリシスと言います。不要なスイッチング操作の危険性を軽減する事が出来るでしょう。

#define SENSOR 0
#define RELAY 2

boolean state = false;

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

void loop() {
  if(analogRead(SENSOR) < 400)
    state = true;
    
  if(analogRead(SENSOR) > 600)
    state = false;

  digitalWrite(RELAY, state);
  delay(1000);
}

しきい値はその都度に微調整しています。実際に動かしてみて、しきい値を調整してください。

先ほど出てきたヒステリシスについて補足しておきます。ヒステリシスは日本語で言うと、履歴現象や履歴効果となり、言葉としては磁気ヒステリシスがよく知られています。今回の例で説明すると、測定値が399以下であればリレーのスイッチをオンにし、次の測定値が400~600の範囲になったとしても、スイッチをオフに切り替えることはせず、601以上になってからスイッチをオフにします。ヒステリシスは、日常生活のセンサーにも多くの用途を用いて使用されています。

シミュレーション(TINKERCAD)

シミュレーションを開始を押し、フォトレジスタをクリックして、明るさのスライドを動かしてみてください。

Filed Under: Arduino初心者編 関連タグ:リレー

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

最初のサイドバー

CONTACT US

  • Facebook
  • Twitter
  • Youtube

More to See

Arduinoベースのセンサノード:XBeeデータ収集ノードの製作

2021年9月27日 By STEMSHIP

Arduinoベースのセンサノード:Arduinoを使った温度センサの作製

2021年9月21日 By STEMSHIP

XBeeモジュールとBMP280センサを使用してデータ収集する

2021年5月31日 By STEMSHIP

XBeeモジュールでMicroPythonを使ってセンサを読み取る

2021年5月24日 By STEMSHIP

XBeeモジュールでセンサを読み取る:センサノードの設定と測定

2021年5月17日 By STEMSHIP

カテゴリー

  • Arduino (44)
    • Arduino初心者編 (15)
    • Arduino基礎編 (11)
    • Arduino実践編 (4)
    • Arduino応用編 (11)
    • Arduino番外編 (3)
  • MakeyMakey (1)
  • microbit (11)
  • Raspberry Pi (13)
  • Scratch (6)
  • STEM教育 (5)
  • XBee (15)
  • ものづくり教育 (2)
  • 子供の教育 (2)
  • 科学 (6)
  • 算数 (5)

Tags

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Footer

最近の投稿

  • Arduinoベースのセンサノード:スケッチ(プログラム)の作製
  • Arduinoベースのセンサノード:XBeeデータ収集ノードの製作
  • Arduinoベースのセンサノード:Arduinoを使った温度センサの作製
  • XBeeモジュールとBMP280センサを使用してデータ収集する
  • XBeeモジュールでMicroPythonを使ってセンサを読み取る

タグ

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Search

2023年3月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
2728293031  
« 10月    

Copyright © 2023 · STEMSHIP.COM