ZBLOG

#define BLINKER_PRINT Serial #define BLINKER_BLE #include // 新建组件对象 BlinkerButton Button1("btn-abc"); BlinkerButton Button2("btn-abd"); // 新增的按钮 BlinkerNumber Number1("num-abc"); int counter = 0; // 按下按键即会执行该函数 void button1_callba...

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

  1. #define BLINKER_PRINT Serial
  2. #define BLINKER_BLE
  3. #include <Blinker.h>
  4. // 新建组件对象
  5. BlinkerButton Button1("btn-abc");
  6. BlinkerButton Button2("btn-abd"); // 新增的按钮2
  7. BlinkerButton Button3("btn-abe"); // 新增的按钮3
  8. BlinkerNumber Number1("num-abc");
  9. int counter = 0;
  10. // 按下按键即会执行该函数
  11. void button1_callback(const String & state) {
  12. BLINKER_LOG("get button state (Button 1): ", state);
  13. digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  14. }
  15. // 按下按键二即会执行该函数
  16. void button2_callback(const String & state) {
  17. BLINKER_LOG("get button state (Button 2): ", state);
  18. digitalWrite(3, !digitalRead(3)); // 控制引脚3上的LED状态
  19. }
  20. // 按下按键三即会执行该函数
  21. void button3_callback(const String & state) {
  22. BLINKER_LOG("get button state (Button 3): ", state);
  23. digitalWrite(4, !digitalRead(4)); // 控制引脚4上的LED状态
  24. }
  25. // 如果未绑定的组件被触发,则会执行其中内容
  26. void dataRead(const String & data)
  27. {
  28. BLINKER_LOG("Blinker readString: ", data);
  29. counter++;
  30. Number1.print(counter);
  31. }
  32. void setup() {
  33. // 初始化串口
  34. Serial.begin(115200);
  35. #if defined(BLINKER_PRINT)
  36. BLINKER_DEBUG.stream(BLINKER_PRINT);
  37. #endif
  38. // 初始化有LED的IO
  39. pinMode(LED_BUILTIN, OUTPUT);
  40. pinMode(3, OUTPUT); // 初始化引脚3为输出模式
  41. pinMode(4, OUTPUT); // 初始化引脚4为输出模式
  42. digitalWrite(LED_BUILTIN, HIGH); // 内置LED默认熄灭
  43. // 初始化blinker
  44. Blinker.begin();
  45. Blinker.attachData(dataRead);
  46. Button1.attach(button1_callback); // 为第一个按钮绑定回调函数
  47. Button2.attach(button2_callback); // 为第二个按钮绑定回调函数
  48. Button3.attach(button3_callback); // 为第三个按钮绑定回调函数
  49. }
  50. void loop() {
  51. Blinker.run();
  52. }

修改说明:

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

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


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?