Skip to main content

Grove - 8チャンネルソリッドステートリレー

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

コイルを使用する代わりに、パッケージ化されたソリッドステートリレー(SSR)は、サイリスタやトランジスタなどの電力半導体デバイスを使用しており、機械式リレーよりもはるかに高速なスイッチング速度を提供します。Grove - 8チャンネルソリッドステートリレーは高品質のG3MC202Pモジュールをベースにしており、5VDCを使用して最大240VACを制御することができます。Groveインターフェースを利用することで、ArduinoとSSRを非常に便利に使用することができます。

オンボードのSTM32F030F4P6を使用して各チャンネルを個別に制御します。Arduinoや他のボードからのコマンドはI2Cインターフェースを介して送信され、オンボードのSTM32F030F4P6がコマンドを解析することで、制御したいスイッチを操作することができます。

異なる用途に応じて、一連のソリッドステートリレーを用意しています。

Grove - Solid State Relay V2

Grove - 2チャンネルソリッドステートリレー

Grove - 4チャンネルソリッドステートリレー

Grove - 8チャンネルソリッドステートリレー

特徴

  • 低消費電力

  • 長寿命

  • オプションのI2Cアドレス

  • 機械式リレーに対する利点:

    • ソリッドステートリレーは電気機械式リレーと比較してスイッチング速度が非常に速く、物理的な接点がないため摩耗しない
    • 完全に静音で動作
    • 物理的な接点がないためスパークが発生せず、爆発性環境での使用が可能で、スイッチング中にスパークが発生しないことが重要
    • 可動部品がないため、頻繁に作動しても寿命が長く、接点の摩耗や炭素の蓄積がない
    • PCB、端子、ヒートシンクを一体化したモノブロック構造のコンパクトで薄型のSSRは、機械式リレーよりもはるかに小型で、より多くのチャンネルを統合可能
  • 欠点:

    • クローズ時に高い抵抗(熱を発生)と電気ノイズの増加
    • オープン時に低い抵抗と逆漏れ電流
    • AC負荷にのみ対応

仕様

項目
動作入力電圧4~6V
定格入力電圧5V
定格負荷電圧100~240 VAC 50/60 Hz
負荷電圧範囲75~264 VAC 50/60 Hz
負荷電流0.1~2 A
漏れ電流最大1.5mA(200 VAC時)
絶縁抵抗最小1,000 MΩ(500 VDC時)
動作時間負荷電源サイクルの1/2 + 最大1ms
リリース時間負荷電源サイクルの1/2 + 最大1ms
保存温度-30°C~100°C(氷結や結露なし)
動作温度-30°C~80°C(氷結や結露なし)
動作湿度45%~85%RH
入力インターフェースI^2^C
デフォルトI^2^Cアドレス0x11または0x12
利用可能なI^2^Cアドレス0x00~0x7F
出力インターフェースDIP Female Blue 2ピン x8
ゼロクロス対応
認証UL / CSA
note

漏れ電流に注意してください。1.5mAは低消費電力LEDを駆動するのに十分な強さがあるため、リレーがオフの状態でもLEDが微かな光を放つ可能性があります。

応用例

  • 低遅延のスイッチングが必要な操作、例:ステージライトの制御
  • 高い安定性が求められるデバイス、例:医療機器、交通信号
  • 防爆、防腐、耐湿が必要な状況、例:石炭、化学産業

ハードウェア概要

ピンマップ

note
- スイッチ1-8は同じピン機能を持っているため、他のスイッチについては**LOAD1**/**LOAD2**を参照してください。
- PCBの裏面には2つのインターフェースがあります:SWDとI^2^C。ファームウェアをプログラミングする際にはデフォルトでSWDインターフェースが使用されます。I^2^C(実際にはブートUARTとして動作)を使用したい場合は、**BOOT**をHighに設定する必要があります。

回路図

リレー制御

K1はリレーモジュールです。INT+INT-の間に5Vの電圧が加えられると、リレーがオンになります。その結果、LOAD1LOAD2に接続されます。NPNトランジスタQ1(BC817-40)を使用して、INT+INT-間の電圧を制御します。

CTRはArduinoや他のボードからの制御信号です。10kの抵抗R2によってプルダウンされており、信号がない場合、Q1の「ゲート」(ポート1)は0Vとなり、Q1はオフになります。そのため、K1もオフになります。CTRが5Vになると、Q1がオンになります。K1のINT-がシステムのGNDに接続され、INT+INT-間に5Vが加わるため、K1がオンになり、LOAD1LOAD2に接続されます。

双方向レベルシフター回路

これは、I^2^Cバスの異なる電圧セクションを接続するための典型的な双方向レベルシフター回路です。このセンサーのI2Cバスは3.3Vを使用しますが、ArduinoのI2Cバスが5Vを使用する場合、この回路が必要です。上記の回路図では、Q17Q18はNチャンネルMOSFET 2N7002Aで、双方向スイッチとして機能します。この部分をよりよく理解するために、AN10441を参照してください。

note
    このセクションでは回路図の一部のみを示しています。完全なドキュメントについては[Resources](/#resources)を参照してください。

対応プラットフォーム

ArduinoRaspberry Pi
caution
上記で対応プラットフォームとして挙げられているものは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能なMCUプラットフォームに対してソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。

はじめに

Arduinoで遊ぶ

ハードウェア

必要な材料

Seeeduino V4.2Base ShieldGrove - 8-Channel Solid State Relay
画像を挿入画像を挿入画像を挿入
今すぐ購入今すぐ購入今すぐ購入
note

1 USBケーブルを優しく差し込んでください。そうしないとポートを損傷する可能性があります。内部に4本のワイヤーがあるUSBケーブルを使用してください。2本のワイヤーしかないケーブルではデータを転送できません。使用しているケーブルが不明な場合は、こちらをクリックして購入できます。

2 Groveモジュールを購入すると、各モジュールにGroveケーブルが付属しています。Groveケーブルを紛失した場合は、こちらをクリックして購入できます。

  • ステップ 1. Grove - 8-Channel Solid State RelayをBase ShieldのI^2^Cポートに接続します。

  • ステップ 2. Grove - Base ShieldをSeeeduinoに差し込みます。

  • ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。

note

Grove Base Shieldがない場合でも、以下のようにこのモジュールをSeeeduinoに直接接続することができます。

SeeeduinoGrove - 8-Channel Solid State Relay
5V
GND
SDA
SCL

ソフトウェア

note

Arduinoを初めて使用する場合は、開始する前にArduinoの使い方を参照することを強くお勧めします。

  • ステップ 1. GithubからMulti_Channel_Relay_Arduinoライブラリをダウンロードします。

  • ステップ 2. ライブラリのインストール方法を参照して、Arduino用のライブラリをインストールします。

  • ステップ 3. Arduino IDEを再起動します。以下のパスから例を開きます:File --> Examples --> Multi Channel Relay Arduino Library --> eight_channel_relay_control

または、コードブロックの右上にあるアイコン をクリックして、以下のコードをArduino IDEの新しいスケッチにコピーすることもできます。

#include <multi_channel_relay.h>

#define USE_8_CHANNELS (1)

Multi_Channel_Relay relay;

void setup()
{
Serial.begin(9600);
while(!Serial);

/* I2Cデバイスをスキャンしてデバイスアドレスを検出 */
relay.begin();
uint8_t old_address = relay.scanI2CDevice();
if((0x00 == old_address) || (0xff == old_address)) {
while(1);
}

Serial.println("アドレスの書き込み開始");
relay.changeI2CAddress(old_address, 0x11); /* I2Cアドレスを設定してFlashに保存 */
Serial.println("アドレスの書き込み終了");

/* ファームウェアバージョンを読み取る */
Serial.print("ファームウェアバージョン: ");
Serial.print("0x");
Serial.print(relay.getFirmwareVersion(), HEX);
Serial.println();
}

void loop()
{

/**
* チャンネル: 8 7 6 5 4 3 2 1
* 状態: 0b00000000 -> 0x00 (すべてオフ)
* 状態: 0b11111111 -> 0xff (すべてオン)
*/

/* リレーの制御開始 */
Serial.println("チャンネル1オン");
relay.turn_on_channel(1);
delay(500);
Serial.println("チャンネル2オン");
relay.turn_off_channel(1);
relay.turn_on_channel(2);
delay(500);
Serial.println("チャンネル3オン");
relay.turn_off_channel(2);
relay.turn_on_channel(3);
delay(500);
Serial.println("チャンネル4オン");
relay.turn_off_channel(3);
relay.turn_on_channel(4);
delay(500);
#if(1==USE_8_CHANNELS)
Serial.println("チャンネル5オン");
relay.turn_off_channel(4);
relay.turn_on_channel(5);
delay(500);
Serial.println("チャンネル6オン");
relay.turn_off_channel(5);
relay.turn_on_channel(6);
delay(500);
Serial.println("チャンネル7オン");
relay.turn_off_channel(6);
relay.turn_on_channel(7);
delay(500);
Serial.println("チャンネル8オン");
relay.turn_off_channel(7);
relay.turn_on_channel(8);
delay(500);
relay.turn_off_channel(8);
#endif

relay.channelCtrl(CHANNLE1_BIT |
CHANNLE2_BIT |
CHANNLE3_BIT |
CHANNLE4_BIT |
CHANNLE5_BIT |
CHANNLE6_BIT |
CHANNLE7_BIT |
CHANNLE8_BIT);
Serial.print("すべてのチャンネルをオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);

relay.channelCtrl(CHANNLE1_BIT |
CHANNLE3_BIT |
CHANNLE5_BIT |
CHANNLE7_BIT);
Serial.print("チャンネル1, 3, 5, 7をオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);

relay.channelCtrl(CHANNLE2_BIT |
CHANNLE4_BIT |
CHANNLE6_BIT |
CHANNLE8_BIT);
Serial.print("チャンネル2, 4, 6, 8をオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);


relay.channelCtrl(0);
Serial.print("すべてのチャンネルをオフにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);
}
  • ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

  • ステップ 5. Arduino IDE の シリアルモニタを開くには、ツール -> シリアルモニタをクリックします。または ++ctrl+shift+m++ キーを同時に押します。

tip
 すべてが正常に動作していれば、結果が表示されます。同時に、オンボードのLEDが交互に点灯および消灯するのが確認できます。
スキャン中...
I2C デバイスがアドレス 0x11 で見つかりました!
1 つの I2C デバイスが見つかりました
アドレスの書き込みを開始
アドレスの書き込みを終了
ファームウェアバージョン: 0x1
チャンネル 1 オン
チャンネル 2 オン
チャンネル 3 オン
チャンネル 4 オン
チャンネル 5 オン
チャンネル 6 オン
チャンネル 7 オン
チャンネル 8 オン
すべてのチャンネルをオンにする, 状態: 11111111
チャンネル 1, 3, 5, 7 をオンにする, 状態: 1010101
チャンネル 2, 4, 6, 8 をオンにする, 状態: 10101010
すべてのチャンネルをオフにする, 状態: 0
チャンネル 1 オン
チャンネル 2 オン

note
    このデモでは負荷を追加していません。負荷の追加方法を確認したい場合は、[Grove - 2-Channel Solid State Relay](https://wiki.seeedstudio.com/ja/Grove-2-Channel_Solid_State_Relay) を参照してください。

関数の説明

関数説明
changeI2CAddress(uint8_t old_addr, uint8_t new_addr)デバイスアドレスを変更します。old_addrは現在のアドレス、new_addrは使用したいアドレスです。正しい旧アドレスを入力することで、新しいアドレスを正常に設定できます。
scanI2CDevice()old_addr(現在のアドレス)を取得します。
getChannelState()各チャンネルの状態を取得します。例えば「状態: 1111」は、すべてのリレーがオンになっていることを意味します。
getFirmwareVersion()オンボードMCUに書き込まれたファームウェアバージョンを取得します。
channelCtrl(uint8_t state)選択したすべてのチャンネルを即座に変更します。state パラメータリスト:

CHANNLE1_BITまたは0x01
CHANNLE2_BITまたは0x02
CHANNLE3_BITまたは0x04
CHANNLE4_BITまたは0x08
CHANNLE5_BITまたは0x10
CHANNLE6_BITまたは0x20
CHANNLE7_BITまたは0x40
CHANNLE8_BITまたは0x80

例:
channelCtrl(CHANNLE2_BIT|CHANNLE3_BIT),はチャンネル2とチャンネル3をオンにします。
channelCtrl(0x01|0x02|0x08), はチャンネル1、チャンネル2、チャンネル4をオンにします。
channelCtrl(0), はすべてのチャンネルをオフにします。
turn_on_channel(uint8_t channel)単一のチャンネルをオンにします。
例:
turn_on_channel(3), はチャンネル3をオンにします。
turn_off_channel(uint8_t channel)単一のチャンネルをオフにします。
例:
turn_off_channel(3), はチャンネル3をオフにします。

アドレスを変更したい場合は、使用前にアドレスを設定する必要があります。例えば、0x2f に変更したい場合、以下のコードを使用します。

#include <multi_channel_relay.h>

Multi_Channel_Relay relay;

void setup()
{
Serial.begin(9600);
while(!Serial);

/* I2C デバイスをスキャンしてデバイスアドレスを検出 */
uint8_t old_address = relay. ;
if((0x00 == old_address) || (0xff == old_address)) {
while(1);
}

Serial.println("アドレスの書き込みを開始");
relay.changeI2CAddress(old_address,0x2f); /* I2C アドレスを 0x2f に設定し、EEPRom に保存 */
Serial.println("アドレスの書き込みを終了");

/* ファームウェアバージョンを読み取る */
Serial.print("ファームウェアバージョン: ");
Serial.print("0x");
Serial.print(relay.getFirmwareVersion(), HEX);
Serial.println();
}

FAQ

Q1: ファームウェアを焼く方法は?

A1: J-LinkバーナーとWSDインターフェースを使用してファームウェアを焼くことを推奨します。

ファームウェアは以下からダウンロードできます:

工場出荷時ファームウェア

ソフトウェアにはJ-flashを使用することを推奨します:

J-flash

回路図オンラインビューア

リソース

プロジェクト

この製品の紹介ビデオです。簡単なデモが含まれており、試してみることができます。

技術サポートと製品ディスカッション

私たちの製品を選んでいただきありがとうございます!製品の使用体験をスムーズにするために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...