はじめに:決して鳴らなかったクリック音
午前2時47分。あなたはこれを3時間続けています。.
あなたのArduinoプロジェクトは完璧に見えます。リレーモジュールはブレッドボード上にあり、チュートリアルに示されている通りに正確に配線されています。あなたは三重に確認しました:VCCを5Vへ、GNDをGNDへ、IN1をデジタルピン7へ。コードはコンパイルされます。あなたはそれをアップロードします。ピン7がHIGHになります。.
何も起こりません。.
クリック音も、LEDもありません。リレーはただ…そこに座っています。あなたを嘲笑うかのように。.
あなたはリレーモジュールを交換します。それでも何も起こりません。あなたは別のArduinoピンを試します。だめです。あなたはピンを確実にHIGHに設定するようにコードを書き換えます。それは確認します:HIGH。5ボルト。マルチメーターも同意します。.
そして リレー それでもトリガーしません。.
その時、絶望からか、カフェインによる好奇心からか、あなたはコードの1行を変更します:
digitalWrite(relayPin, LOW); // HIGHから変更
カチッ。.
リレーが作動します。LEDが点灯します。あなたのポンプが動き始めます。すべてが動作します。.
待って…何?リレーはピンをHIGHではなくLOWに設定したときにトリガーする?それは逆だ。それは間違っている。それは—
実は、それがローレベルトリガーリレーの動作そのものです。そして、いったんその理由を理解すれば、それらは奇妙ではなく、実際にはより賢い設計であることに気づくでしょう。.
説明させてください。.
「ローレベルトリガー」の実際の意味(平易な英語で)
ローレベルトリガーリレーは、その制御ピンがHIGH信号(5V)ではなくLOW信号(0V/GND)を受信したときに作動します。.
デジタル論理の用語では:
- LOW信号(0V)= リレーON
- HIGH信号(5V)= リレーOFF
これはアクティブローロジックまたは反転ロジックとも呼ばれます。.
これをハイレベルトリガーリレーと比較してください:
- HIGH信号(5V)= リレーON
- LOW信号(0V)= リレーOFF
それがすべてです。それが核心的な違いです。しかし、ここからが興味深いところです:なぜリレーモジュールはこの一見逆のアプローチを使用するのでしょうか?
なぜリレーモジュールはローレベルトリガーを使用するのか(秘密はフォトカプラ)
ほとんどのリレーモジュールは単にリレーを持っているだけでなく、完全なドライバ回路が組み込まれています。この回路の中心はフォトカプラ(または光アイソレータとも呼ばれます)であり、通常はPC817または類似のものです。.
フォトカプラ回路の設計
あなたのリレーモジュールの中身は実際には次のようになっています:
入力側(制御信号):
- あなたのArduinoのデジタルピンは「IN」に接続されます“
- INはフォトカプラ内部のLEDに(抵抗を通して)接続されます
- LEDのカソードはGNDに接続されます
出力側(リレーコイル):
- フォトトランジスタ(フォトカプラ内部)がLEDの光を検出します
- このトランジスタがNPNトランジスタ(2N3904など)を駆動します
- NPNトランジスタがリレーコイルに通電します
重要な詳細:フォトカプラのLEDはVCCとINピンの間に配線されています。これがローレベルトリガーを理解するための鍵です。.
ローレベルトリガーの仕組み
INピン = HIGH(5V)の場合:
- LED両端の電圧差 = 5V – 5V = 0V
- LEDに電流が流れません
- LEDはOFFのまま
- フォトトランジスタはOFFのまま
- リレーコイルは電力を得られません
- リレーはOFFのまま
INピン = LOW(0V/GND)の場合:
- LED両端の電圧差 = 5V – 0V = 5V
- LEDに電流が流れます(抵抗によって制限されます)
- LEDが点灯します
- フォトトランジスタがONになります
- NPNトランジスタが導通します
- リレーコイルに通電します
- リレーがONになります
「アハモーメント」:回路はINピンを通してVCCからGNDに電流を引き込みます。あなたのArduinoピンがLOWのとき、それは接地への経路を提供し、回路を完成させます。HIGHのとき、電圧差がないため、電流は流れません。.
なぜこの設計が実際には素晴らしいのか
- フェイルセーフ動作: あなたの制御線が切断または断線した場合、INピンは事実上HIGHに浮きます(抵抗ネットワークによって内部的にプルアップされます)。これにより、リレーはデフォルトでOFFのままになります—誤ってONになるよりも安全です。.
- フローティングピンに対する保護: Arduinoの起動中、ピンは数ミリ秒間、未定義の状態になります。ローレベルトリガーの場合、これは通常、リレーON(潜在的に高電力負荷にとって危険)ではなく、リレーOFF(安全)になります。.
- マイクロコントローラからの低消費電流: リレーがOFFの場合(多くのアプリケーションで最も一般的な状態)、マイクロコントローラのピンはHIGHであり、ほとんどゼロの電流を供給します。リレーをアクティブにする必要がある場合、ピンはLOWになり、電流をシンクします—これはマイクロコントローラのピンが通常、供給するよりも得意とすることです。.
- 3.3V互換性: ESP32および同様の3.3Vデバイスは、ハイレベル構成で5Vリレーモジュールを確実に駆動するのに苦労します。しかし、ローレベルモードでは、VCCが5Vの場合でも、3.3Vピンは問題なく電流を接地にシンクできます。これにより、ローレベルトリガーモジュールはより普遍的に互換性があります。.
プロのヒント:これが、ほとんどの市販のリレーモジュールがデフォルトでローレベルトリガーになる理由です—それはより堅牢で、互換性があり、フェイルセーフな設計です。.
ローレベルトリガーリレーの配線方法(ステップバイステップ)
Arduino Unoの基本配線(5Vロジック)
電源接続:
- リレーVCC → Arduino 5V
- リレーGND → Arduino GND
制御信号:
- リレーIN → Arduinoデジタルピン(例:ピン7)
コード例:
const int relayPin = 7;
動作原理:
- HIGH (5V) でリレーOFFを維持
- LOW (0V) でリレーON
ESP32の配線(3.3Vロジック)
ESP32はHIGH時に3.3Vを出力しますが、一部の5Vリレーモジュールでは問題が発生する可能性があります。信頼性の高い方法は次のとおりです。
電源接続:
- リレーVCC → 外部5V電源(またはUSB電源を使用している場合はESP32の5Vピン)
- リレーGND → ESP32との共通グランド
制御信号:
- リレーIN → ESP32 GPIOピン(例:GPIO 23)
コード例:
const int relayPin = 23; // ESP32 GPIO23
3.3Vで動作する理由:
ESP32ピンがLOW (0V) になると、グランドパスが提供されます。オプトカプラーのLEDは5V VCC電源から電力を供給されるため、LED全体に5Vの電圧降下が発生し、LEDを点灯させてリレーをトリガーするのに十分です。.
プロのヒント:リレーモジュールにJD-VCC(リレー電源)とVCC(ロジック電源)を分離するジャンパーがある場合は、ジャンパーを取り外し、VCCを3.3Vに維持しながらJD-VCCを5Vから給電します。これにより、完全な絶縁が提供され、3.3Vマイクロコントローラーでの信頼性が向上します。.
ローレベル vs ハイレベル:どちらを選ぶべきか?
ほとんどのリレーモジュールには、ローレベルトリガーモードとハイレベルトリガーモードを選択するためのジャンパーまたはスイッチが付属しています。それぞれの使用時期は次のとおりです。
ローレベルトリガーを選択する場合:
- ✅ 3.3Vマイクロコントローラー(ESP32、ESP8266、Raspberry Pi)を使用している場合
- ✅ フェイルセーフ動作が必要な場合(制御線が故障した場合、リレーはデフォルトでOFFになる)
- ✅ 不明または未テストのリレーモジュールを使用している場合(より一般的/互換性のあるモード)
- ✅ アプリケーションで負荷をほとんどの時間OFFにする必要がある場合
- ✅ 初心者の場合(互換性の問題が発生しにくい)
応用例:
- ホームオートメーション(デフォルトでライトOFF)
- 警報システム(デフォルトでサイレンOFF)
- ポンプ制御(アクティブにトリガーされない限りポンプOFF)
- 安全インターロック(アクティブに有効にされない限り機器は無効)
ハイレベルトリガーを選択する場合:
- ✅ Arduinoのリセット/起動中にリレーをONにする必要がある場合(まれですが特定のユースケース)
- ✅ 通常閉(NC)負荷を操作して、逆の動作が必要な場合
- ✅ コードロジックが「HIGH = ON」でより単純になる場合(個人の好み)
- ✅ アクティブハイ制御システム(PLC、産業用コントローラー)とのインターフェース
応用例:
- 非常用照明(停電時にONのまま)
- 冷却ファン(安全のためにデフォルトでON)
- バッテリー遮断システム(特定のフェイルセーフ要件)
正直なところ:Arduino/ESP32プロジェクトの95%の場合、ローレベルトリガーの方が適しています。.
より互換性があり、より信頼性が高く、より安全です。考えすぎないでください。.
よくある間違いと修正方法
間違い1: 「リレーが常にON!」“
症状:コードを実行する前に、Arduinoの電源を入れるとすぐにリレーがONになる。.
原因:起動中、Arduinoピンは未定義(フローティング)状態になります。ピンがLOWにフローティングすると、リレーがトリガーされます。.
修正:
void setup() {
ピンを出力として設定する前にピンの状態を設定することで、OFF状態で開始されるようにします。.
間違い2: 「動作する…しかしランダムにトリガーされる」“
症状:特に長い配線やノイズの多い環境で、リレーが不必要にONになることがある。.
原因:電気的ノイズまたはフローティングピン状態。.
修正1 – 外部プルアップ抵抗を追加する:
INピンとVCCの間に10kΩの抵抗を接続します。これにより、ArduinoがアクティブにLOWにプルしていない場合、INがHIGH(リレーOFF)に維持されます。.
修正2 – 内部プルアップを有効にする:
void setup() {
間違い3: 「ESP32リレーが安定してクリックしない」“
症状:リレーが動作するときもあれば、動作しないときもある。リレーボードのLEDは点灯するが、リレーがクリックしない。.
原因:3.3V GPIOからオプトカプラーLEDを確実に駆動するのに十分な電流がない。.
修正 – 専用の3.3Vリレーモジュールを使用する:
3.3Vのトリガー電圧用に特別に定格されたリレーモジュールを探します(単に3.3V互換性があるだけでなく)。これらには、LEDの順方向電圧要件が低い最適化されたオプトカプラー回路があります。.
または – リレーモジュールのVCCを5Vで給電する:
ESP32は3.3Vですが、ESP32 GPIOがGNDに電流をシンクしている間、リレーモジュールのVCCを5V(ESP32の5Vピンまたは外部電源)から給電できます。これにより、オプトカプラーを介してより強いLED電流が供給されます。.
間違い4: 「ジャンパーの設定を間違えた」“
症状:リレーの動作がコードの期待と逆になる。.
原因:リレーモジュールがハイレベルトリガーモードにジャンパー設定されている。.
修正:
ネジ端子の近くにある3ピンジャンパーを探してください。通常、次のようにラベル付けされています。
- H(ハイレベルトリガー)
- COM(コモン)
- L(ローレベルトリガー)
ジャンパーを移動して、ローレベルトリガーモードのためにCOMとLを接続します。.
ジャンパーが存在しない場合:一部のリレーモジュールはローレベルのみに固定されています。製品の説明を確認するか、テストしてください:LOWでONになる場合は、ローレベルトリガーです。.
間違い#5:「リレーはカチッと音がするが、負荷がオンにならない」“
症状:リレーのカチッという音、LEDの点灯は聞こえるが、ランプ/モーター/ポンプが作動しない。.
原因:これはトリガーの問題ではなく、高電圧側の配線上の問題です。.
修正 - 負荷配線を確認してください:
COM(コモン)は電源(例:12V+またはACライン)に接続します。
NO(ノーマリーオープン)は負荷のプラス端子に接続します。
負荷のマイナスは電源のマイナスに戻ります。
AC負荷(ランプなど)の場合:
- COMをACホットワイヤーに接続します。
- NOをランプに接続します。
- ランプのもう一方の端子をACニュートラルに接続します。
重要な安全上の注意:
AC主電源電圧(110V/220V)を扱う場合は、配線前にブレーカーで電源を切ってください。AC配線に慣れていない場合は、資格のある電気技師を使用してください。.
実用的なアプリケーション:実際にローレベルトリガーリレーが必要な場合
1. ホームオートメーションプロジェクト
シナリオ:ESP32制御のランプ用スマートコンセント。.
ローレベルトリガーの理由:
- ESP32は3.3V(互換性が高い)
- ランプはデフォルトでOFFにする必要がある(フェイルセーフ)
- WiFi再接続中のランダムなトリガーは迷惑になる
実装:
const int relayPin = 23;
2. 庭の灌漑コントローラー
シナリオ:Arduinoで時間制御された庭のベッド用ウォーターポンプ。.
ローレベルトリガーの理由:
- ポンプはデフォルトでOFF(Arduinoがクラッシュした場合の浸水を防ぐ)
- 屋外リレーへの長い配線(プルアップによるノイズ耐性)
- フェイルセーフ:断線 = 水なし = 植物は生き残る
実装:
void waterGarden(int minutes) {
3. 3Dプリンターの電源管理
シナリオ:印刷ジョブの前にプリンターの電源を自動的にONにし、完了時にOFFにします。.
ローレベルトリガーの理由:
- 印刷していないときはプリンターをOFFにする(電力を節約し、火災のリスクを軽減)
- OctoPrint(Raspberry Pi)は3.3V GPIOを使用
- フェイルセーフ:システムクラッシュ = プリンターはOFFのまま
4. 水槽コントローラー
シナリオ:Arduinoによる温度ベースのヒーター制御。.
ローレベルトリガーの理由:
- ヒーターはデフォルトでOFF(センサーが故障した場合の魚の過熱を防ぐ)
- 5V Arduinoまたは3.3V ESP32との互換性
- 複数のリレー(ライト、フィルター、ヒーター)はすべて、連携したフェイルセーフ動作が必要です。
これはあなたの次のプロジェクトにとって何を意味するのか
ローレベルトリガーリレーは奇妙ではありません—それらは標準です。ロジック(「LOW = ON、HIGH = OFF」)を理解すると、それは第二の天性になります。そして、フェイルセーフ動作、より良い互換性、ノイズ耐性という利点により、それらはほとんどのArduinoおよびESP32プロジェクトにとって賢明な選択となります。.
簡単な意思決定ガイド:
ローレベルトリガーリレーを使用する場合:
- ✅ ESP32、ESP8266、または任意の3.3Vマイクロコントローラーを使用している
- ✅ 負荷はデフォルトでOFFにする必要がある(ポンプ、ヒーター、アラーム)
- ✅ フェイルセーフ動作が必要(断線 = リレーOFF)
- ✅ 初心者向けプロジェクトを構築している
- ✅ ロジックレベルとの戦いよりも互換性を重視する
ハイレベルトリガーリレーを使用する場合:
- ✅ 特定のアプリケーションで、マイクロコントローラーの起動中にリレーをONにする必要がある
- ✅ 産業用制御システム(PLC)とインターフェースしている
- ✅ 非常に具体的な理由がある(そして、それが何であるかを知っている)
ト:
リレーモジュールを購入するときは、ジャンパーでハイレベルとローレベルの両方のトリガーをサポートするものを探してください。これにより、各プロジェクトに最適なモードを選択できる柔軟性が得られます。.
適切なリレーモジュールの選択
リレーモジュールを購入するときは、以下を確認してください。
Arduino Uno / Mega(5V)の場合:
- 動作電圧:5V DC
- トリガー電圧:5V互換
- トリガー電流:<15mA(Arduinoピンは最大20〜40mAを供給)
- フォトカプラ絶縁:あり(PC817または同等品)
ESP32 / ESP8266 (3.3V)用:
- 動作電圧:5V DC(リレーコイル電源用)
- トリガー電圧:3.3V互換またはローレベルトリガーモード
- トリガー電流:<12mA(ESP32ピンは最大12mAを供給)
- フォトカプラ絶縁:必須
- VCC/JD-VCC分離:推奨
一般仕様:
- 接点定格:10A @ 250VACまたは10A @ 30VDC(標準)
- チャンネル数:1、2、4、8(必要に応じて)
- 取り付け:配線が容易なネジ端子
- インジケータ:電源およびリレー状態を示すLED
VIOX Electricは、Arduino、ESP32、および産業用制御アプリケーション向けに最適化されたリレーモジュールの完全な範囲を提供しています。当社のリレーモジュールは以下を備えています。
- 真の3.3V/5V互換性、ローレベルトリガー設計
- 高品質のフォトカプラ絶縁(PC817)
- 安全な配線のためのネジ端子接続
- デュアルLEDインジケータ(電源+リレー状態)
- 選択可能なトリガーモード(ハイ/ローレベル用ジャンパー)
VIOXリレーモジュールを見る → または、アプリケーション固有の推奨事項については、当社の技術チームにお問い合わせください。.


