4入力→16出力の5Vリレーモジュール用のArduinoコード
このチュートリアルでは、Arduinoを使って4チャンネルのリレーモジュールを制御する方法を学びます。これにより、照明、ファン、ヒーターなどの交流負荷を安全かつ効果的に管理できるようになります。提供するコードはチャンネル数が多いモジュールにも適用できるため、さまざまな用途に対応できる汎用性があります。
詳細に入る前に、このプロジェクトに関わる構成要素を理解することが重要です。リレーモジュールは、Arduinoからの低電圧信号で制御されながら高電圧機器を制御するスイッチとして機能します。各リレーは常時開(NO)または常時閉(NC)にすることができ、接続された機器の動作に柔軟性を与えます。視覚的な参考はビデオの02:15を参照してください。
ハードウェア解説
このプロジェクトの主な構成要素はArduinoボードとリレーモジュールです。Arduinoはコントローラとして動作し、私たちが書くコードに基づいてリレーモジュールに信号を送ります。リレーモジュールは複数のリレーを備えており、交流負荷のオン・オフを切り替えることができます。各リレーには3つの端子があり、常閉(NC)、常開(NO)、共通端子(COM)です。
リレーが作動すると、共通端子(COM)が通常開端子(NO)に接続され、負荷に電流が流れるようになります。これはローアクティブ(低電位)リレーで、低電圧信号(0V)を受けると作動し、高電圧信号(5V)では非作動になります。この仕組みを理解することは、交流機器を安全に制御するために極めて重要です。
データシートの詳細
| 製造者 | 一般的 |
|---|---|
| 部品番号 | 4チャンネルリレーモジュール |
| ロジック/IO電圧 | 5V |
| 電源電圧 | 5 V |
| 出力電流(チャンネルごと) | 最大10A |
| ピーク電流(チャンネル当たり) | 15アンペア |
| PWM周波数に関するガイダンス | 該当なし |
| 入力論理閾値 | 低レベル: 0 V; 高レベル: 5 V |
| 電圧降下 / RDS(オン)/ 彩度 | 該当なし |
| 熱限界 | 85℃ |
| パッケージ | 標準リレーモジュール |
| 備考 / バリエーション | 2、4、8、16チャンネルのバリエーションで提供 |
- 損傷を防ぐため、リレーの定格電流を超えないようにしてください。
- 高電流用途では、Arduinoを分離するために別々の電源を使用してください。
- 動作中はリレーの適切な放熱を確保してください。
- 短絡を避けるため、配線を注意深く確認してください。
- 追加の保護が必要な場合は、オプトカプラを使用してください。
配線手順

リレーモジュールをArduinoに配線するには、まずリレーモジュールのGNDピンをArduinoのGNDピンに接続します。次にリレーモジュールのVCCピンをArduinoの5Vピンに接続します。制御用ピンとして、リレーモジュールのIN1、IN2、IN3、IN4ピンをそれぞれArduinoのデジタルピン2、3、4、5に接続します。この配線によりArduinoは各リレーの状態を制御できるようになります。
リレーモジュールはAC負荷を扱うため、必ず絶縁された面の上に設置してください。リレーに外部電源を使用する場合は、共通の基準電位を確保するためにそのグランド(GND)をArduinoのグランド(GND)に接続してください。これは正しい動作と安全のために非常に重要です。
コード例とウォークスルー
以下のコードスニペットはリレーの数を初期化し、制御ピンを設定します:
int ch = 4; // number of relays you have
int relay[]={2,3,4,5}; // Arduino pin numbers for relays
これはリレーの数と、それに対応するArduinoのピン接続を定義します。配列relay各リレーを制御するために使用されるピン番号を保持します。

次に、ピンをその中で設定しますsetup()関数:
void setup() {
Serial.begin(9600); // prepare Serial monitor
for(i=0; i < ch; i++) {
pinMode(relay[i], OUTPUT); // set i(th) pin as output
digitalWrite(relay[i], HIGH); // Turn the relay OFF
}
Serial.println("Robojax 4 Relay Test");
}
このコードはシリアルモニタを初期化し、各リレーピンを出力に設定してデフォルトでオフにします。Serial.print文はセットアップが完了したことを確認します。
プログラムのメインループはリレーを制御します:
void loop() {
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" ON");
digitalWrite(relay[i], LOW); // Turn the relay ON
delay(wait);
}
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" OFF");
digitalWrite(relay[i], HIGH); // Turn the relay OFF
delay(wait);
}
Serial.println("====== loop done ==");
}
このループはまず各リレーを順番に一つずつオンにし、指定された時間だけ待ってから同じ順序でオフにします。シリアル出力はリレーの状態をリアルタイムで監視するのに役立ちます。
デモ/期待できること
プログラムを実行すると、リレーが順に作動し、2秒ごとにオンとオフが切り替わるのが確認できるはずです。配線が正しければ、リレーに接続されたAC負荷もそれに応じて反応します。Arduinoからの電流に注意してください。リレーを同時に多数作動させると、ボードの許容量を超える可能性があります(ビデオの13:45で)。
動画のタイムスタンプ
- 00:00はじめに
- 02:15ハードウェアの説明
- 05:30配線手順
- 08:45コードの解説
- 13:45デモンストレーション
必要かもしれないもの
-
アマゾン
-
アリエクスプレスPurchase 5v 12v 1 2 4 6 8 channel channel relay moduls.click.aliexpress.com
リソースと参考文献
まだリソースはありません。
ファイル📁
フリッツィングファイル
-
omron silid state relay SSR module 4 channel
application/zip0.02 MB -
4-Channel 5v Relay module
application/zip0.02 MB -
omron solid state relay SSR module- 8 channel
application/zip0.02 MB -
AC Plug Fritzing Part (Robojax.com)
application/zip