Skip to main content

Grove - 4-Channel SPDT Relay

note

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

単極双投(SPDT)リレーは、1つの共通端子と2つの接点を持つため、特定のアプリケーションで非常に便利です。これにより、2つのオプション間で選択することが可能です。Grove - 4-Channel SPDT Relay は、4つの単極双投(SPDT)スイッチを備えています。これらのスイッチを制御するには、低電圧および低電流信号のみが必要です。具体的には、5V DC を使用して最大 250V AC または 110V DC を制御できます。I2C アドレスは変更可能で、同じプロジェクト内で複数のリレーモジュールを使用することができます。Grove - 4-Channel SPDT Relay は、4つの単極双投(SPDT)スイッチを備えています。これらのスイッチを制御するには、低電圧および低電流信号のみが必要です。具体的には、5V DC を使用して最大 250V AC または 110V DC を制御できます。

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

事前読解

Grove リレーモジュールとは何かおよびリレーの仕組みについての紹介を、事前に読むことを強くお勧めします。これらに詳しくない場合は、以下の ブログ をご覧ください。

特徴

  • 高温耐性プラスチックシェル
  • 高電圧負荷
  • 低消費電力
  • 長寿命
  • オプションの I2C アドレス
    • 0x00 ~ 0x7F

仕様

項目
動作電圧5V
定格コイル電流89.3mA
TUV 認証負荷10A 250VAC/ 10A 30VDC
UL 認証負荷10A 125VAC 28VDC
最大許容電圧250VAC/110VDC
消費電力約 0.45W
接触抵抗最大 100mΩ
絶縁抵抗最小 100MΩ (500VDC)
最大 ON/OFF スイッチング30 回/分
動作温度-40°C ~ +85°C
動作湿度45% ~ 85% r.h.
接触材質AgCdO
入力インターフェースI^2^C
デフォルト I^2^C アドレス0x11 または 0x12
利用可能な I^2^C アドレス0x00 ~ 0x7F
出力インターフェース3 ピン DIP メススクリュー端子 - 緑
tip

負荷パラメータについては、2セットの認証データを提供しています。実際の最大負荷は 10A 250VAC/10A 30VDC です。

アプリケーション

  • 家庭用電化製品
  • オフィスマシン
  • リモコンテレビ受信機
  • モニターディスプレイ
  • オーディオ機器の高突入電流用途

はじめに

対応プラットフォーム

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

Arduinoで遊ぶ

ハードウェア

必要な材料

Seeeduino V4.2Base ShieldGrove - 4-Channel SPDT Relay
enter image description hereenter image description hereenter image description here
今すぐ購入今すぐ購入今すぐ購入
note
 * USBケーブルを優しく差し込んでください。そうしないとポートが損傷する可能性があります。内部に4本のワイヤーがあるUSBケーブルを使用してください。2本のワイヤーしかないケーブルではデータを転送できません。使用しているケーブルが不明な場合は、[こちら](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html)をクリックして購入できます。

* Groveモジュールは購入時にGroveケーブルが付属しています。Groveケーブルを紛失した場合は、[こちら](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html)をクリックして購入できます。

ハードウェア概要

note
    Grove Base Shieldがない場合は、以下のようにこのモジュールをSeeeduinoに直接接続することもできます。
SeeeduinoGrove - 4-Channel SPDT Relay
5V
GND
SDA
SCL黄色

ピンマップ

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

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

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

ソフトウェア

note
    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);
}
note

ライブラリファイルが更新される可能性があります。このコードは更新されたライブラリファイルには適用されない場合があるため、最初の方法を使用することをお勧めします。

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

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

tip

すべてが正常に動作していれば、結果が表示されます。同時に、オンボードのLEDが交互に点灯および消灯するのが見えるはずです。

スキャン中...
I2C デバイスがアドレス 0x12 で見つかりました!
1 つの I2C デバイスが見つかりました
アドレスの書き込みを開始
アドレスの書き込みを終了
ファームウェアバージョン: 0x1
チャンネル 1 がオン
チャンネル 2 がオン
チャンネル 3 がオン
チャンネル 4 がオン
すべてのチャンネルをオンにする、状態: 1111
チャンネル 1 と 3 をオンにする、状態: 101
チャンネル 2 と 4 をオンにする、状態: 1010
すべてのチャンネルをオフにする、状態: 0
チャンネル 1 がオン
チャンネル 2 がオン
tip

Grove - 4-Channel SPDT Relay が正常に動作している場合、以下のように動作します。

note

このデモでは負荷を追加していません。負荷の追加方法を確認したい場合は、Grove - 2-Channel SPDT 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

例:
channelCtrl(CHANNLE2_BIT|CHANNLE3_BIT),はチャンネル 2 とチャンネル 3 をオンにします。
channelCtrl(01|02|08), はチャンネル 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

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

note

ST32シリーズのチップが世界的に品薄となり、価格が数回上昇し、明確な納期がない状況です。そのため、MM32チップへの切り替えを余儀なくされました。具体的な交換モデルは以下の通りです:STM32F030F4P6TR は MM32F031F6P6 に置き換えられます。チップが交換された後も、製品の機能、特徴、使用方法、コードは変更されません。ただし、ファームウェアのバージョンが変更され、異なるチップに応じて工場出荷時ファームウェアが調整されています。ファームウェアを再度焼く必要がある場合は、チップに対応するファームウェアをダウンロードしてください。

リソース

プロジェクト

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

ホームオートメーションとモニタリング: RSL10 Sense DB ベースのシステムで、スマートフォンアプリや Alexa を使用して温度、湿度、光の強度をモニタリングおよび制御できます。

Grove - 4-Channel SPDT Relay: Seeekers の皆さん!これは #newproductsTuesday セグメントの第2週目です。このビデオでは新しい Grove - 4-Channel SPDT Relay の製品紹介と興味深いデモが行われます。

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

弊社製品をお選びいただきありがとうございます!製品をご利用いただく際に、できる限りスムーズな体験を提供するため、さまざまなサポートをご用意しております。お客様の好みやニーズに応じた複数のコミュニケーションチャネルを提供しています。

Loading Comments...