本次的测评主要以如何使用这些模块为主,不过我们要注意的的是,这些模块都是外设模块,我们需要使用一些主控继续进一步的控制或者采集,这里最合适的就是arduino的板子,这次我们使用ABX00052 RP2040进行本次开发,主要是正好也有一个扩展能够使用,可以便捷链接:
效果如下:

我们先简单尝试一下,这次我们选取一个输入模块一个输出模块进行测试,都是数字接口,这里我们选用的是Grove - Blue和Grove - Button,一个是瞬时按键开关,一个是LED的控制:

这个LED居然选择的便携模式的,但是这样脱落下来后就不知道正负关系了,只能使用我们的万用试一下了,光的调节使用的是物理方式,调节电位器实现,基本上在这里我们不用动。
Grove - Button按下按钮时输出高电平信号,释放时输出低电平信号,我们主要也是通过这个逻辑进行采集;LED的控制通过高电平继续点亮,低电平熄灭。
我们本次主要实现的功能就是按键控制LED,按下的时候亮起,放开的时候熄灭,主要代码如下:
#include <Arduino.h>
const uint8_t BUTTON_PIN = 6; // Grove - Button -> 丝印 D6
const uint8_t LED_PIN = 4; // LED -> 丝印 D4
void setup() {
// 配置按键引脚为输入
pinMode(BUTTON_PIN, INPUT);
// 配置 LED 引脚为输出
pinMode(LED_PIN, OUTPUT);
// 初始状态:LED 熄灭
digitalWrite(LED_PIN, HIGH);
// 调试用串口
Serial.begin(115200);
// 等待串口就绪(板载 USB CDC)
while (!Serial) { /* 等待枚举 */ }
Serial.println("=== Button -> LED ready ===");
}
int lastButton = LOW;
void loop() {
// 读取按键状态
// Grove - Button:按下时输出高电平,释放时输出低电平
int buttonState = digitalRead(BUTTON_PIN);
// 状态变化瞬间(边沿)才打印一条消息,避免每 10ms 刷一行
if (buttonState != lastButton) {
if (buttonState == HIGH) {
// 按键按下 -> 点亮 LED
digitalWrite(LED_PIN, HIGH);
Serial.println("[EVENT] Button PRESSED -> LED ON");
} else {
// 按键释放 -> 熄灭 LED
digitalWrite(LED_PIN, LOW);
Serial.println("[EVENT] Button RELEASED -> LED OFF");
}
lastButton = buttonState;
}
// 简单去抖延时
delay(10);
}效果如下:

我要赚赏金
