Grove - 8チャンネルソリッドステートリレー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
コイルを使用する代わりに、パッケージ化されたソリッドステートリレー(SSR)は、サイリスタやトランジスタなどの電力半導体デバイスを使用しており、機械式リレーよりもはるかに高速なスイッチング速度を提供します。Grove - 8チャンネルソリッドステートリレーは高品質の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.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 |
漏れ電流に注意してください。1.5mAは低消費電力LEDを駆動するのに十分な強さがあるため、リレーがオフの状態でもLEDが微かな光を放つ可能性があります。
応用例
- 低遅延のスイッチングが必要な操作、例:ステージライトの制御
- 高い安定性が求められるデバイス、例:医療機器、交通信号
- 防爆、防腐、耐湿が必要な状況、例:石炭、化学産業
ハードウェア概要
ピンマップ
- スイッチ1-8は同じピン機能を持っているため、他のスイッチについては**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がオンになります。K1のINT-がシステムのGNDに接続され、INT+とINT-間に5Vが加わるため、K1がオンになり、LOAD1がLOAD2に接続されます。
双方向レベルシフター回路
これは、I^2^Cバスの異なる電圧セクションを接続するための典型的な双方向レベルシフター回路です。このセンサーのI2Cバスは3.3Vを使用しますが、ArduinoのI2Cバスが5Vを使用する場合、この回路が必要です。上記の回路図では、Q17とQ18はNチャンネルMOSFET 2N7002Aで、双方向スイッチとして機能します。この部分をよりよく理解するために、AN10441を参照してください。
このセクションでは回路図の一部のみを示しています。完全なドキュメントについては[Resources](/#resources)を参照してください。
対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記で対応プラットフォームとして挙げられているものは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム用のソフトウェアライブラリまたはコード例のみを提供しています。すべての可能なMCUプラットフォームに対してソフトウェアライブラリやデモコードを提供することはできません。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoで遊ぶ
ハードウェア
必要な材料
Seeeduino V4.2 | Base Shield | Grove - 8-Channel Solid State Relay |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
ステップ 1. Grove - 8-Channel Solid State RelayをBase ShieldのI^2^Cポートに接続します。
ステップ 2. Grove - Base ShieldをSeeeduinoに差し込みます。
ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。
Grove Base Shieldがない場合でも、以下のようにこのモジュールをSeeeduinoに直接接続することができます。
Seeeduino | Grove - 8-Channel Solid State Relay |
---|---|
5V | 赤 |
GND | 黒 |
SDA | 白 |
SCL | 黄 |
ソフトウェア
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++ キーを同時に押します。
すべてが正常に動作していれば、結果が表示されます。同時に、オンボードの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 オン
このデモでは負荷を追加していません。負荷の追加方法を確認したい場合は、[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を使用することを推奨します:
回路図オンラインビューア
リソース
- [Zip] Grove-8-Channel SPDT Relay eagleファイル
- [Zip] Multi Channel Relay Arduinoライブラリ
- [Bin] 工場出荷時ファームウェア
- [PDF] G3MC202Pのデータシート
- [PDF] STM32のデータシート
プロジェクト
この製品の紹介ビデオです。簡単なデモが含まれており、試してみることができます。
技術サポートと製品ディスカッション
私たちの製品を選んでいただきありがとうございます!製品の使用体験をスムーズにするために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。