这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » Grove Creator Kit开发指南【倾斜 / 震动状态检测】

共1条 1/1 1 跳转至

Grove Creator Kit开发指南【倾斜 / 震动状态检测】

菜鸟
2026-08-24 21:56:45     打赏

一、硬件介绍

1、主控开发板

使用的是XIAO ESP32S3开发板,集成ESP32S3 32位双核处理器芯片,最高运行频率240MHz,板载8MB PSRAM和8MB FLASH

1787576271514383.png





功能引脚示意图

1787576305327340.png


2、Grove Creator Kit 器件

在本次开发中,使用到的 `Grove Creator Kit 套件` 中的器件如下:


Grove - Tilt Switch

Grove-倾斜开关相当于一个按钮,用作数字输入;倾斜开关内部有一对小球,当外壳直立时,小球会与引脚接触。

倾斜外壳时,小球不接触,因此不形成连接;倾斜开关的SIG引脚通常输出低电平;

当倾斜开关直立时,倾斜开关内部的一对小球将与引脚接触,SIG引脚将输出高电平;

image-20260821220743228.png


主要特性

image.png


Grove - Button

Grove - 按钮是一个瞬时按键开关,它包含一个独立的“瞬时开/关”按钮。

“瞬时”意味着按钮在释放后会自动弹回,按下按钮时输出高电平信号,释放时输出低电平信号;

image-20260822101847427.png


主要特性

image.png


Grove - Vibration Sensor

Grove - 振动传感器是一个高灵敏度的无方向性振动传感器,当模块处于稳定状态时,电路导通,输出为高电平。当发生移动或振动时,电路会短暂断开并输出低电平;

image-20260822102200133.png


主要特性

image.png



二、功能实现

1、硬件搭建

将倾斜开关、震动传感器、按键模块,通过Grove接口连接到开发板对应的引脚上;

image.png


实物搭建效果:

image-20260822112303112.png


2、功能效果

通过按键按下切换工作模式(倾斜检测 / 震动检测),串口提示当前模式,倾斜模式检测倾斜信号,震动模式检测震动信号,对应传感器触发时串口打印状态;

倾斜检测模式:只读取倾斜传感器,检测输出打印 “当前处于倾斜状态”;

震动检测模式:只读取震动传感器,检测输出打印 “当前处于震动状态”;

串口打印输出当前检测模式及相关状态;



三、代码编写

主要相关代码

#define BUTTON_PIN D10
#define VIBRATION_PIN D8
#define TILT_PIN D9

// 0=倾斜检测模式  1=震动检测模式
#define MODE_TILT  0
#define MODE_VIBR  1

int buttonState = -1;
int lastButtonState = -1;   //按键上一次状态
int vibrationState = -1;
int tiltState = -1;

int workMode = MODE_TILT;    //默认 倾斜检测模式

void setup() {
    Serial.begin(115200);
    pinMode(BUTTON_PIN, INPUT);
    pinMode(VIBRATION_PIN, INPUT);
    pinMode(TILT_PIN, INPUT);
    delay(100);
}

void loop(){
    buttonState = digitalRead(BUTTON_PIN);
    vibrationState = digitalRead(VIBRATION_PIN);
    tiltState = digitalRead(TILT_PIN);

    if(buttonState == HIGH && lastButtonState == LOW)
    {
        //切换模式
        if(workMode == MODE_TILT)
        {
            workMode = MODE_VIBR;
            Serial.println("切换为:震动检测模式");
        }
        else
        {
            workMode = MODE_TILT;
            Serial.println("切换为:倾斜检测模式");
        }
    }

    lastButtonState = buttonState;

    if(workMode == MODE_TILT)
    {
        //倾斜模式
        if (tiltState == HIGH)
        {
            Serial.println("当前处于倾斜状态");
        }
    }
    else if(workMode == MODE_VIBR)
    {
        //震动模式
        if (vibrationState == LOW)
        {
            Serial.println("当前处于震动状态");
        }
    }
}



四、程序烧录

1、连接USB数据线至开发板;

2、选择端口号对应的开发板;

3、点击 `上传` 烧录程序到开发板上;

image-20260818173949849.png



五、效果演示


6.gif








共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]