検索コード

Arduino用4チャネルソリッドステートリレー

Arduino用4チャネルソリッドステートリレー

このプロジェクトガイドでは、Arduinoを使用して4チャネルのソリッドステートリレー(SSR)モジュールを制御する方法を示します。このセットアップにより、バルブや小型家電など、最大で4つの独立したAC負荷を機械的接点や可聴のクリック音なしで切り替えることができます。これは、家庭の照明の自動化、スマート電源コンセントの作成、産業用制御パネルの構築、安全で静かな方法での加熱要素の管理に最適です。このガイドの終わりまでに、独自のAC制御プロジェクトを実現するために必要なハードウェア、配線、およびコードを理解できるようになります。

ハードウェアコンポーネント

  • Arduino Uno(または互換性のあるボード)
  • 4チャネルソリッドステートリレーモジュール(OMRON G3MB-202Pに基づく)
  • 4つのAC電球またはその他のAC負荷(モジュールの定格内)
  • ジャンパーワイヤー(デュポンコネクタ推奨)
  • AC電源コードとプラグ(負荷用)
  • ブレッドボード(オプション、プロトタイピング用)

配線ガイド

始める前に、危険なACメイン電圧で作業していることを常に念頭に置いておくことが重要です。接続を行う前に、必ず電源を切ってください。電源が入っている間は、モジュールやその接続部分に決して触れないでください。ショートサーキットを防ぐために、モジュールはプラスチックや木などの非導電性の表面に置いてください。(動画の00:32)

このプロジェクトの配線は簡単です。このモジュールには2つの面があります:低電圧の制御側と高電圧の負荷側です。制御側には、電源用のDC+とDC-ピン、CH1、CH2、CH3、CH4とラベル付けされた4つの入力ピンがあります。これらはArduinoに次のように接続されます:

  • DC+Arduinoへ5V
  • DC-Arduinoへ空気接地
  • CH1Arduinoデジタルピンへ2
  • CH2Arduinoデジタルピンへ3
  • CH3Arduinoデジタルピンへ4
  • CH4Arduinoのデジタルピンへ5
4chソリッドステートリレー3入力ピン

負荷側では、各リレー チャンネルに 2 つのネジ端子があります。負荷を接続するには、AC電源のワイヤの 1 本を切断し、その両端をこれらの端子に接続する必要があります。リレーはスイッチとして機能し、回路を接続または切断します。(動画内 04:12) 4 つの負荷それぞれについて、その 2 本のワイヤを対応するチャンネルの端子に接続します。以下の図は、このセットアップを示しており、左側に Arduino ピン、右側に AC 負荷が接続されています。

How to use a 4-channel solid-state relay with Arduino to control a 4A bulb or load
Arduinoを使用して4Aの電球または負荷を制御するための4チャンネルソリッドステートリレーの使い方 — How to use a 4-channel solid-state relay with Arduino to control a 4A bulb or load

コードの説明

このプロジェクトに提供されたArduinoコードは、設定を簡単にするように設計されています。ユーザーが設定可能な主要な部分はスケッチの上部にあります。(動画の06:12にて)

最初に、リレーモジュールに接続されているピンを定義します。

int ssr[]={2,3,4,5}; // Arduino pin numbers used for SSR

次に、トリガータイプを特定のモジュールに合わせて設定する必要があります。コードはハイトリガーとロートリガーのモジュールの両方をサポートしています。どちらのタイプを持っているか不明な場合は、モジュールのラベルまたは製品リストを確認してください。(ビデオの06:48にて)

int triggerType = HIGH;// type LOW if low trigger and HIGH if high trigger SSR is used

最後に、デモループで使用するデフォルトの遅延時間を調整できます:

int wait = 2000;// delay time

コードにはカスタム関数が含まれています。contrlSSR()各リレーを制御するのを簡素化します。使用するには、3つのパラメータを提供します:リレー番号(1-4)、アクション(ssrONまたはssrOFF)、およびその状態を保持するミリ秒単位の時間。たとえば、contrlSSR(1, ssrON, 5000);リレー1を5秒間オンにします。この機能は、高レベルのコマンドを特定のトリガータイプに対する正しいデジタル信号に変換するロジックを処理します。(動画の08:58)

ライブプロジェクトデモンストレーション

デモでは、コードが最初に実行され、単一チャネルの基本的なオン/オフシーケンスが示されます。モジュール上のLEDが点灯すると、対応するAC電球が点灯します。(ビデオの12:31にて) 次に、コードが修正され、複数のチャネルをシーケンスで制御し、一つずつオンとオフを切り替えることが示されます。これは、さまざまな自動化パターンを作成するためのセットアップの柔軟性を示しています。(ビデオの12:51にて) 最後に、ループが使用されてすべての4つのチャネルをサイクルし、各チャネルをオンにしてからオフにします。(ビデオの13:12にて)

4ch固体リレー7トップ

  • [00:00] 4チャンネルSSRプロジェクトの紹介
  • [00:32] ACを取り扱う際の安全警告
  • [01:10] SSRモジュール仕様の理解
  • [02:18] モジュールピンアウトとコネクタ
  • [04:12] AC負荷の準備と接続
  • モジュールをArduinoに接続する[05:34]
  • [06:12] コードの設定と説明
  • [08:58] contrlSSR()関数を使用する
  • [12:31] ライブデモンストレーションとテスト
  • [14:01] 結論と追加リソース

画像

Arduinoを使用して4Aの電球または負荷を制御するための4チャンネルソリッドステートリレーの使い方
Arduinoを使用して4Aの電球または負荷を制御するための4チャンネルソリッドステートリレーの使い方
4ch solid state relay 7 top
4ch solid state relay 7 top
4ch solid state relay 6 left top
4ch solid state relay 6 left top
4ch solid state relay 5 top
4ch solid state relay 5 top
4ch solid state relay 4 top side
4ch solid state relay 4 top side
4ch solid state relay 3 input pins
4ch solid state relay 3 input pins
4ch solid state relay 2 side connector
4ch solid state relay 2 side connector
4ch solid state relay 1 side view
4ch solid state relay 1 side view
184-Arduino code to control a four-channel solid-state relay
言語: C++
++
/*
 * This is code to control 4-channel Solid State Relay (SSR) modules using Arduino.
 * Written by Ahmad Shamshiri for Robojax.com 
 * on January 11, 2019 at 21:03 in Ajax, Ontario, Canada.

  Watch instruction video for this code: https://youtu.be/Rfaz5qOLKYQ
  
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This code has been downloaded from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */


int ssr[]={2,3,4,5}; // Arduino pin numbers used for SSR
int triggerType = HIGH;// type LOW if low trigger and HIGH if high trigger SSR is used
int wait = 2000;// delay time

int ssrON, ssrOFF;// used for two different SSR trigger type. Do not change

void setup() {
  
    Serial.begin(9600);// prepare Serial monitor
    // set pins as output
    if(triggerType)
    {
      ssrON = HIGH;
      ssrOFF = LOW;
    }else{
      ssrON = LOW;
      ssrOFF = HIGH; 
    }
 for(int i=0; i < 4; i++)
 {    
    pinMode(ssr[i], OUTPUT);// sent i(th) pin as output
    digitalWrite(ssr[i], ssrOFF); // Turn the SSR OFF  
 }
               
    Serial.println("Robojax 4 SSR ");

    
}

void loop() {

  // this is just a demo
 for(int i=0; i < 4; i++)
 {
      contrlSSR(i+1, ssrON, 2000); // turn SSRs one by one ON
 }// for loop


 for(int i=0; i < 4; i++)
 {
      contrlSSR(i+1, ssrOFF, 1000);  // turn SSRs one by one OFF
 }// for loop
    

 
   contrlSSR(1, ssrON, 2000);  // turn SSR1 ON for 2 seconds
   contrlSSR(2, ssrON, 3000);// turn SSR2 ON for 3 seconds
   contrlSSR(4, ssrON, 2000);// turn SSR4 ON for 2 seconds
 
   contrlSSR(1, ssrOFF, 0); // turn ssr1 OFF
   contrlSSR(4, ssrOFF, 0);// turn ssr4 OFF
   contrlSSR(2, ssrOFF, 0);// turn ssr2 OFF
    
   delay(2000);
    Serial.println("====== loop done ==");

}// loop



/*

 *  contrlSSR turns OFF or ON SSR
 *  January 11, 2019
 * @param  is an integer, SSR number starts with 1
 * @param control should be ssrON or ssrOFF 
 * @param wait is a number in milliseconds. 

 * 
 */
void contrlSSR(int number, int control, int wait)
{
  if(control == HIGH)
  {
     Serial.print("SSR "); Serial.print(number);Serial.println(" ON");
      digitalWrite(ssr[number-1], ssrON); // Turn the SSR ON    
      delay(wait); 
  }else{
     Serial.print("SSR "); Serial.print(number);Serial.println(" OFF");
      digitalWrite(ssr[number-1], ssrOFF); // Turn the SSR OFF    
      delay(wait);     
  }
}

必要かもしれないもの

リソースと参考文献

まだリソースはありません。

ファイル📁

フリッツィングファイル

他のファイル