Skip to main content

Grove - 6位拨码开关

Grove - 6位拨码开关具有6个独立的开关位置,使用I2C传输数据。它非常适合作为多通道控制开关。

版本

产品版本变更发布日期
Grove - 6位拨码开关初始版本2018年6月

特性

  • 6个独立开关
  • 良好的耐热性
  • 长使用寿命
  • Grove 兼容

规格

项目参数
工作电压3.3V / 5V
接口I2C
默认I2C地址0x03
尺寸长: 40mm 宽: 20mm 高: 13mm
重量5g
包装尺寸长: 140mm 宽: 90mm 高: 10mm
毛重11g

应用

  • 多功能控制

硬件概览

引脚图

支持的平台

ArduinoRaspberry Pi
caution

上述提到的支持平台仅表示模块的软件或理论兼容性。我们通常仅为Arduino平台提供软件库或代码示例。无法为所有可能的MCU平台提供软件库或演示代码。因此,用户需要自行编写软件库。

入门指南

使用 Arduino

硬件

所需材料

Seeeduino V4.2Base ShieldGrove - 6 位 DIP 开关
立即购买立即购买立即购买
note

1 请轻轻插入 USB 数据线,否则可能会损坏接口。请使用内部有 4 根线的 USB 数据线,只有 2 根线的 USB 数据线无法传输数据。如果您不确定手头的数据线是否符合要求,可以点击 这里 购买。

2 每个 Grove 模块在购买时都会附带一根 Grove 数据线。如果您丢失了 Grove 数据线,可以点击 这里 购买。

  • 步骤 1. 将 Grove - 6 位 DIP 开关连接到 Base Shield 的 I2C 接口。

  • 步骤 2. 将 Grove - Base Shield 插入 Seeeduino。

  • 步骤 3. 使用 USB 数据线将 Seeeduino 连接到电脑。

note

如果没有 Grove Base Shield,我们也可以直接将此模块连接到 Seeeduino,如下所示。

SeeeduinoGrove - 6 位 DIP 开关
5V红色
GND黑色
SDA白色
SCL黄色

软件

caution

如果这是您第一次使用 Arduino,我们强烈建议您在开始之前查看 Arduino 入门指南

  • 步骤 1. 从 Github 下载 Grove Multi Switch 库。

  • 步骤 2. 参考 如何安装库 为 Arduino 安装库。

  • 步骤 3. 重启 Arduino IDE。通过以下路径打开示例:文件 --> 示例 --> 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 位触觉开关已插入!");
key_names = grove_5way_tactile_keys;
} else if (PID_VAL(mswitch->getDevID()) == PID_6_POS_DIP_SWITCH) {
Serial.println("Grove 6 位 DIP 开关已插入!");
key_names = grove_6pos_dip_switch_keys;
}

// 启用事件检测
mswitch->setEventMode(true);

// 报告设备型号
Serial.print("一个 ");
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 位触觉开关");
Serial.println("或 Grove 6 位 DIP 开关");
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("无事件,错误码 = ");
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

:::提示 如果一切正常,您将看到结果。例如,默认开关状态为关闭-高电平,当您将 Switch6 切换到 ON 时,输出将为 POS 6: RAW - LOW ON。 :::

Grove 多路开关
***** 设备检测正常 *****
Grove 已插入 6 位 DIP 开关!
一个 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

在线原理图查看器

资源

项目

这是该产品的介绍视频,包含简单的演示,您可以尝试一下。

技术支持与产品讨论

感谢您选择我们的产品!我们为您提供多种支持,以确保您使用我们的产品时体验顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...