这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » Grove Creator Kit开发指南【磁性感应LED灯】

共1条 1/1 1 跳转至

Grove Creator Kit开发指南【磁性感应LED灯】

菜鸟
2026-08-24 22:17:14     打赏

一、硬件介绍

1、主控开发板

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

1787576271514383.png





功能引脚示意图

1787576305327340.png


2、Grove Creator Kit 器件

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


Grove - Magnetic Switch

Grove 接口的磁性开关模块,基于封装的干簧管开关CT10,是单极单掷类型具有常开触点,该传感器为双端类型,可通过电磁铁、永久磁铁或两者结合进行驱动;

磁性开关根据接近情况打开或关闭电路;


image-20260822163122453.png



主要特性


image.png


Grove - Red LED(红色LED灯)


image-20260818180812373.png



二、功能实现

1、硬件搭建

将磁性开关、红色LED模块,通过Grove接口连接到开发板对应的引脚上;

image.png


实物搭建效果:

image-20260822163030207.png



2、功能效果

使用磁铁模拟具有磁性的物质,当磁铁靠近磁性开关时,开关闭合此时点亮红色LED灯,当磁铁远离磁性开关时,开关断开此时红色LED灯熄灭;

串口打印输出当前磁性开关状态;



三、代码编写

主要相关代码

#define MAGNECTIC_PIN D9
#define LED_PIN D10

int magnecticState = -1;    // 开关状态
int lastMagnecticState = -1;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 30;  //消抖

void setup()
{   
    pinMode(MAGNECTIC_PIN,INPUT);
    pinMode(LED_PIN,OUTPUT);
    digitalWrite(LED_PIN,LOW);
    Serial.begin(115200);
    delay(100);
}

void loop() 
{
    // 消抖
    int rawState = digitalRead(MAGNECTIC_PIN);
    if(rawState != lastMagnecticState)
    {
        lastDebounceTime = millis();
    }

    if ((millis() - lastDebounceTime) > debounceDelay)
    {
        if(rawState != magnecticState)
        {
            magnecticState = rawState;

            if(magnecticState == HIGH){
                Serial.println("开关已闭合");
                digitalWrite(LED_PIN,HIGH);     // 点亮 LED
            }else{
                Serial.println("开关已断开");
                digitalWrite(LED_PIN,LOW);
            }
        }
    }

    lastMagnecticState = rawState;
}



四、程序烧录

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

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

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

image-20260818173949849.png



五、效果演示


7.gif









共1条 1/1 1 跳转至

回复

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