这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » 【GROVECREATORKIT测评】2、综合1-输入输出

共1条 1/1 1 跳转至页

【GROVECREATORKIT测评】2、综合1-输入输出

高工
2026-10-04 13:09:34     打赏

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

    

效果如下:

d8df2350-9acc-472b-92d1-75378b9e3156.png

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

a7e40b51-b534-40c1-aded-ed733e230083.png

        这个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);
}

        效果如下:

eepw-1.gif




关键词: 测评     输入     输出    

共1条 1/1 1 跳转至页

回复

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