Grove - 4チャンネル ソリッドステートリレー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
コイルを使用する代わりに、パッケージ化されたソリッドステートリレー(SSR)は、サイリスタやトランジスタなどのパワー半導体デバイスを使用しており、機械式リレーよりもはるかに高速なスイッチング速度を提供します。Grove - 4チャンネル ソリッドステートリレーは、高品質なG3MC202Pモジュールをベースにしており、5VDCで最大240VACを制御できます。Groveインターフェースを使用することで、ArduinoとSSRを非常に簡単に組み合わせて使用することができます。
オンボードのSTM32F030F4P6を使用して各チャンネルを個別に制御します。Arduinoや他のボードからのコマンドはI2Cインターフェースを介して送信され、オンボードのSTM32F030F4P6がコマンドを解析することで、制御したいスイッチを操作できます。
さまざまな用途に応じて、一連のソリッドステートリレーを用意しています。
特徴
低消費電力
長寿命
オプションのI2Cアドレス
機械式リレーに対する利点:
- ソリッドステートリレーは電気機械式リレーと比較してスイッチング速度が非常に速く、摩耗する物理的な接点がありません
- 完全に静音で動作
- 物理的な接点がないためスパークが発生せず、スイッチング中にスパークが発生してはならない爆発性環境で使用可能
- 可動部品がなく、接点が摩耗したり炭素が蓄積したりしないため、何度も作動しても寿命が延びる
- PCB、端子、ヒートシンクを一体化したモノブロック構造のコンパクトで薄型のSSRは、機械式リレーよりもはるかに小型で、より多くのチャンネルを統合可能
欠点:
- クローズ時に高い抵抗(熱を発生)と電気ノイズの増加
- オープン時に低い抵抗と逆方向漏れ電流
- AC負荷にのみ対応
仕様
項目 | 値 |
---|---|
動作入力電圧 | 4~6V |
定格入力電圧 | 5V |
定格負荷電圧 | 100~240 VAC 50/60 Hz |
負荷電圧範囲 | 75~264 VAC 50/60 Hz |
負荷電流 | 0.1~2 A |
漏れ電流 | 最大1.5 mA(200 VAC時) |
絶縁抵抗 | 最小1,000 MΩ(500 VDC時) |
動作時間 | 負荷電源サイクルの1/2 + 最大1 ms |
リリース時間 | 負荷電源サイクルの1/2 + 最大1 ms |
保存温度 | -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メスブルー2ピン x4 |
ゼロクロス | 対応 |
認証 | UL / CSA |
漏れ電流に注意してください。1.5mAは低消費電力LEDを駆動するのに十分な強さがあるため、リレーがオフのときでもLEDが微かに光る場合があります。
応用例
- 低遅延の切り替えが必要な操作、例: 舞台照明の制御
- 高い安定性が必要なデバイス、例: 医療機器、交通信号
- 防爆、防腐、耐湿が必要な状況、例: 石炭産業、化学産業
ハードウェア概要
ピンマップ
- スイッチ1~4は同じピン機能を持っているため、他のスイッチについては**LOAD1**/**LOAD2**を参照してください。
- PCBの裏面には2つのインターフェースがあります: SWDとI^2^C。ファームウェアをプログラムする際にはデフォルトでSWDインターフェースが使用されます。I^2^C(実際にはブートUARTとして動作)を使用したい場合は、**BOOT**をHighに設定する必要があります。
回路図
リレー制御
K1はリレーモジュールです。INT+とINT-間に5Vの電圧が加えられると、リレーがオンになります。その結果、LOAD1がLOAD2に接続されます。NPNトランジスタQ1(BC817-40)を使用して、INT+とINT-間の電圧を制御します。
CTRはArduinoや他のボードからの制御信号です。10kの抵抗R2によってプルダウンされており、信号がない場合、Q1のゲート(ポート1)は0Vとなり、Q1はオフになります。その結果、K1もオフになります。CTRが5Vになると、Q1がオンになり、INT-がシステムのGNDに接続されます。これにより、INT+とINT-間に5Vが加わり、K1がオンになり、LOAD1がLOAD2に接続されます。
双方向レベルシフター回路
これは、I^2^Cバスの異なる電圧セクションを接続するための典型的な双方向レベルシフター回路です。このセンサーのI^2^Cバスは3.3Vを使用しますが、ArduinoのI^2^Cバスが5Vを使用する場合、この回路が必要になります。上記の回路図では、Q17とQ18はNチャンネルMOSFET 2N7002Aで、双方向スイッチとして機能します。この部分をよりよく理解するために、AN10441を参照してください。
このセクションでは回路図の一部のみを示しています。完全なドキュメントについては[Resources](/#resources)を参照してください。
対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記で対応可能とされているプラットフォームは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザーは独自のソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoで遊ぶ
ハードウェア
必要な材料
Seeeduino V4.2 | Base Shield | Grove - 4-Channel Solid State Relay |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
**1** USBケーブルを優しく差し込んでください。そうしないとポートが損傷する可能性があります。内部に4本の線があるUSBケーブルを使用してください。2本線のケーブルではデータを転送できません。お持ちのケーブルが適切かどうかわからない場合は、[こちら](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html)をクリックして購入できます。
**2** 各Groveモジュールには購入時にGroveケーブルが付属しています。Groveケーブルを紛失した場合は、[こちら](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html)をクリックして購入できます。
ステップ 1. Grove - 4-Channel Solid State RelayをBase ShieldのI^2^Cポートに接続します。
ステップ 2. Grove - Base ShieldをSeeeduinoに差し込みます。
ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。
Grove Base Shieldがない場合でも、以下のようにこのモジュールをSeeeduinoに直接接続することができます。
Seeeduino | Grove - 4-Channel Solid State Relay |
---|---|
5V | 赤 |
GND | 黒 |
SDA | 白 |
SCL | 黄 |
ソフトウェア
Arduinoを初めて使用する場合は、開始する前に[Arduinoの使い方](https://wiki.seeedstudio.com/ja/Getting_Started_with_Arduino/)をご覧になることを強くお勧めします。
ステップ 1. GithubからMulti_Channel_Relay_Arduinoライブラリをダウンロードします。
ステップ 2. ライブラリのインストール方法を参照して、Arduino用のライブラリをインストールします。
ステップ 3. Arduino IDEを再起動します。以下のパスから例を開きます:File --> Examples --> Multi Channel Relay Arduino Library --> four_channel_relay_control。
または、コードブロックの右上にあるアイコン をクリックして、以下のコードをArduino IDEの新しいスケッチにコピーすることもできます。
#include <multi_channel_relay.h>
Multi_Channel_Relay relay;
void setup()
{
Serial.begin(9600);
while(!Serial);
/* I2Cデバイスをスキャンしてデバイスアドレスを検出 */
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);
relay.turn_off_channel(4);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE2_BIT |
CHANNLE3_BIT |
CHANNLE4_BIT);
Serial.print("全チャンネルをオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE3_BIT);
Serial.print("チャンネル1と3をオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE2_BIT |
CHANNLE4_BIT);
Serial.print("チャンネル2と4をオンにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(0);
Serial.print("全チャンネルをオフにする, 状態: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
}
ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
ステップ 5. Arduino IDEのシリアルモニタを開きます。Tool-> Serial Monitorをクリックするか、++ctrl+shift+m++キーを同時に押します。
すべてが正常に動作すれば、結果が表示されます。同時に、オンボードLEDが交互に点灯および消灯するのが見えます。
スキャン中...
I2Cデバイスがアドレス0x12で見つかりました!
1つのI2Cデバイスが見つかりました
アドレスの書き込みを開始
アドレスの書き込み終了
ファームウェアバージョン: 0x1
チャンネル1オン
チャンネル2オン
チャンネル3オン
チャンネル4オン
全チャンネルをオンにする, 状態: 1111
チャンネル1と3をオンにする, 状態: 101
チャンネル2と4をオンにする, 状態: 1010
全チャンネルをオフにする, 状態: 0
チャンネル1オン
チャンネル2オン
このデモでは負荷を追加していません。負荷の追加方法を確認したい場合は、[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() | 各チャンネルの状態を取得します。例えば「State: 1111」は、すべてのリレーがオンになっていることを意味します。 |
getFirmwareVersion() | オンボードMCUに書き込まれているファームウェアのバージョンを取得します。 |
channelCtrl(uint8_t state) | 選択したすべてのチャンネルを即座に変更します。stateパラメータリスト: CHANNLE1_BITまたは0x01 CHANNLE2_BITまたは0x02 CHANNLE3_BITまたは0x04 CHANNLE4_BITまたは0x08 例: 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 を使用することをお勧めします:
回路図オンラインビューア
リソース
- [Zip] Grove-4-Channel SPDT Relay eagle ファイル
- [Zip] マルチチャンネルリレー Arduino ライブラリ
- [Bin] 工場出荷時ファームウェア
- [PDF] G3MC202P のデータシート
- [PDF] STM32 のデータシート
プロジェクト
この製品の紹介ビデオと簡単なデモです。ぜひお試しください。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。お客様の好みやニーズに応じた複数のコミュニケーションチャネルをご用意しています。