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

Grove - 6-Position DIPスイッチは、6つの個別スイッチポジションを持ち、I2Cを使用してデータを送信します。マルチチャンネル制御スイッチとして非常に優れています。
バージョン
製品バージョン | 変更点 | リリース日 |
---|---|---|
Grove - 6-Position DIPスイッチ | 初期リリース | 2018年6月 |
特徴
- 6つの個別スイッチ
- 優れた耐熱性
- 長寿命
- Grove互換
仕様
項目 | 値 |
---|---|
動作電圧 | 3.3V / 5V |
インターフェース | I2C |
デフォルトI2Cアドレス | 0x03 |
サイズ | 長さ: 40mm 幅: 20mm 高さ: 13mm |
重量 | 5g |
パッケージサイズ | 長さ: 140mm 幅: 90mm 高さ: 10mm |
総重量 | 11g |
応用例
- 多機能制御
ハードウェア概要
ピンマップ


対応プラットフォーム
Arduino | Raspberry Pi | |||
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
上記で対応プラットフォームとして記載されているものは、モジュールのソフトウェアまたは理論的な互換性を示しています。ほとんどの場合、Arduinoプラットフォーム向けのソフトウェアライブラリやコード例のみを提供しています。すべての可能なMCUプラットフォーム向けにソフトウェアライブラリやデモコードを提供することは不可能です。そのため、ユーザー自身でソフトウェアライブラリを作成する必要があります。
はじめに
Arduinoで遊ぶ
ハードウェア
必要な材料
Seeeduino V4.2 | Base Shield | Grove - 6-Position DIP Switch |
---|---|---|
![]() | ![]() | ![]() |
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
ステップ 1. Grove - 6-Position DIP SwitchをBase ShieldのI2Cポートに接続します。
ステップ 2. Grove - Base ShieldをSeeeduinoに差し込みます。
ステップ 3. USBケーブルを使用してSeeeduinoをPCに接続します。

Grove Base Shieldがない場合でも、以下のようにこのモジュールをSeeeduinoに直接接続することができます。
Seeeduino | Grove - 6-Position DIP Switch |
---|---|
5V | 赤 |
GND | 黒 |
SDA | 白 |
SCL | 黄 |
ソフトウェア
Arduinoを初めて使用する場合は、開始する前にArduinoの使い方を参照することを強くお勧めします。
ステップ 1. GithubからGrove Multi Switchライブラリをダウンロードします。
ステップ 2. ライブラリのインストール方法を参照して、Arduino用のライブラリをインストールします。
ステップ 3. Arduino IDEを再起動します。以下のパスから例を開きます:File --> Examples --> Grove Multi Switch Library --> Grove_Switch_Events。

または、コードブロックの右上にあるアイコン をクリックして、以下のコードをArduino IDEの新しいスケッチにコピーすることもできます。
#include "Grove_Multi_Switch.h"
GroveMultiSwitch mswitch[1];
const char* grove_5way_tactile_keys[] = {
"KEY A",
"KEY B",
"KEY C",
"KEY D",
"KEY E",
};
const char* grove_6pos_dip_switch_keys[] = {
"POS 1",
"POS 2",
"POS 3",
"POS 4",
"POS 5",
"POS 6",
};
const char** key_names;
int deviceDetect(void) {
if (!mswitch->begin()) {
Serial.println("***** デバイスの検出に失敗しました *****");
return -1;
}
Serial.println("***** デバイスの検出に成功しました *****");
if (PID_VAL(mswitch->getDevID()) == PID_5_WAY_TACTILE_SWITCH) {
Serial.println("Grove 5-Way Tactile Switchが挿入されました!");
key_names = grove_5way_tactile_keys;
} else if (PID_VAL(mswitch->getDevID()) == PID_6_POS_DIP_SWITCH) {
Serial.println("Grove 6-Position DIP Switchが挿入されました!");
key_names = grove_6pos_dip_switch_keys;
}
// イベント検出を有効化
mswitch->setEventMode(true);
// デバイスモデルを報告
Serial.print("A ");
Serial.print(mswitch->getSwitchCount());
Serial.print(" ボタン/スイッチ デバイス ");
Serial.println(mswitch->getDevVer());
return 0;
}
void setup()
{
Serial.begin(115200);
Serial.println("Grove Multi Switch");
// 初期デバイス検出
if (deviceDetect() < 0) {
Serial.println("Grove 5-Way Tactileを挿入してください");
Serial.println("またはGrove 6-Position DIP Switchを挿入してください");
for (;;);
}
return;
}
void loop()
{
GroveMultiSwitch::ButtonEvent_t* evt;
delay(1);
evt = mswitch->getEvent();
if (!evt) {
// 動的デバイス検出
deviceDetect();
delay(1000);
return;
}
if (!(evt->event & GroveMultiSwitch::BTN_EV_HAS_EVENT)) {
#if 0
Serial.print("イベントなし, errno = ");
Serial.println(mswitch->errno);
#endif
return;
}
for (int i = 0; i < mswitch->getSwitchCount(); i++) {
Serial.print(key_names[i]);
Serial.print(": RAW - ");
Serial.print((evt->button[i] & GroveMultiSwitch::BTN_EV_RAW_STATUS)?
"HIGH ": "LOW ");
if (PID_VAL(mswitch->getDevID()) == PID_5_WAY_TACTILE_SWITCH) {
Serial.print((evt->button[i] & GroveMultiSwitch::BTN_EV_RAW_STATUS)?
"RELEASED ": "PRESSED ");
} else if (PID_VAL(mswitch->getDevID()) == PID_6_POS_DIP_SWITCH) {
Serial.print((evt->button[i] & GroveMultiSwitch::BTN_EV_RAW_STATUS)?
"OFF ": "ON ");
}
Serial.println("");
}
for (int i = 0; i < mswitch->getSwitchCount(); i++) {
if (evt->button[i] & ~GroveMultiSwitch::BTN_EV_RAW_STATUS) {
Serial.println("");
Serial.print(key_names[i]);
Serial.print(": EVENT - ");
}
if (evt->button[i] & GroveMultiSwitch::BTN_EV_SINGLE_CLICK) {
Serial.print("シングルクリック ");
}
if (evt->button[i] & GroveMultiSwitch::BTN_EV_DOUBLE_CLICK) {
Serial.print("ダブルクリック ");
}
if (evt->button[i] & GroveMultiSwitch::BTN_EV_LONG_PRESS) {
Serial.print("長押し ");
}
if (evt->button[i] & GroveMultiSwitch::BTN_EV_LEVEL_CHANGED) {
Serial.print("レベル変更 ");
}
}
Serial.println("");
}
ステップ 4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
ステップ 5. Arduino IDE の シリアルモニタ を開くには、ツール -> シリアルモニタ をクリックします。または
ctrl
+shift
+m
キーを同時に押します。ボーレートを 115200 に設定してください。
すべてが正常に動作していれば、結果が表示されます。例えば、デフォルトではスイッチがオフ(High)になっていますが、Switch6 を ON にすると、出力は POS 6: RAW - LOW ON になります。
Grove Multi Switch
***** デバイスプローブ OK *****
Grove 6-Position DIP Switch 挿入済み!
A 6 ボタン/スイッチ デバイス BN-6--0.1
POS 1: RAW - HIGH OFF
POS 2: RAW - HIGH OFF
POS 3: RAW - HIGH OFF
POS 4: RAW - HIGH OFF
POS 5: RAW - HIGH OFF
POS 6: RAW - LOW ON
POS 6: EVENT - LEVEL-CHANGED
POS 1: RAW - LOW ON
POS 2: RAW - HIGH OFF
POS 3: RAW - HIGH OFF
POS 4: RAW - HIGH OFF
POS 5: RAW - HIGH OFF
POS 6: RAW - LOW ON
回路図オンラインビューア
リソース
プロジェクト
この製品の紹介動画です。簡単なデモが含まれており、試してみることができます。
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。