ZBLOG

#define BLINKER_PRINT Serial #define BLINKER_BLE #include // 新建组件对象 BlinkerButton Button1("btn-abc"); BlinkerNumber Number1("num-abc"); int counter = 0; // 按下按键即会执行该函数 void button1_callback(const String & state) { BLINKER_LOG("...

可以在原代码中添加一个新的按钮对象 Button2,并为其定义一个回调函数 button2_callback。这个新按钮将会控制LED引脚3(假设LED引脚3已被定义为OUTPUT)。以下是修改后的代码:

#define BLINKER_PRINT Serial
#define BLINKER_BLE

#include <Blinker.h>

// 新建组件对象
BlinkerButton Button1("btn-abc");
BlinkerButton Button2("btn-abd");  // 新增的按钮
BlinkerNumber Number1("num-abc");

int counter = 0;

// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state (Button 1): ", state);
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}

// 按下按键二即会执行该函数
void button2_callback(const String & state) {
    BLINKER_LOG("get button state (Button 2): ", state);
    digitalWrite(3, !digitalRead(3));  // 控制引脚3上的LED状态
}

// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
    BLINKER_LOG("Blinker readString: ", data);
    counter++;
    Number1.print(counter);
}

void setup() {
    // 初始化串口
    Serial.begin(115200);

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif
    
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    pinMode(3, OUTPUT);  // 初始化引脚3为输出模式
    digitalWrite(LED_BUILTIN, HIGH);
    
    // 初始化blinker
    Blinker.begin();
    Blinker.attachData(dataRead);
    
    Button1.attach(button1_callback);   // 为第一个按钮绑定回调函数
    Button2.attach(button2_callback);   // 为第二个按钮绑定回调函数
}

void loop() {
    Blinker.run();
}

修改说明:

  • 增加了新的按钮 Button2,名字为 “btn-abd”。
  • 增加了 button2_callback 函数,用于处理按下第二个按钮时控制引脚3的状态。
  • setup() 函数中,将引脚3初始化为输出模式。

这样,当你按下对应的按钮时,会分别控制内置LED和连接到引脚3上的LED。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22761

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?