ZBLOG

#define BLINKER_PRINT Serial #define BLINKER_BLE #include //定义引脚号 #define pin_bluetooth_stat 4 #define pin_led 6 #define servoPWM 8 //舵机变量 Servo s; // 新建组件对象 BlinkerButton Button1("btn-abc");//开门 BlinkerButton Button2("btn-abd");//更...

这段代码是用Arduino编写的,主要用于控制一个蓝牙设备与舵机之间的交互。具体来说,它通过两个按钮来控制舵机开门,并更新运行时间和其他数据。以下是代码的一些关键部分解析:

1. 引入库

#define BLINKER_PRINT Serial
#define BLINKER_BLE 
#include <Blinker.h>
  • BLINKER_PRINT 定义了使用 Serial 进行打印。
  • #include <Blinker.h> 引入 Blink 库,用于蓝牙通信。

2. 定义引脚

#define pin_bluetooth_stat 4
#define pin_led 6
#define servoPWM 8
  • 定义了连接蓝牙状态指示灯、LED 和舵机信号的引脚。

3. 舵机和组件对象的初始化

Servo s;
BlinkerButton Button1("btn-abc");
BlinkerButton Button2("btn-abd");
BlinkerNumber NUM("num-abc");
...
  • 创建一个舵机对象和多个 Blinker 组件(按钮和数字显示)。

4. setup() 函数

void setup() 
{
    Serial.begin(9600);
    pinMode(pin_bluetooth_stat, INPUT);
    pinMode(pin_led, OUTPUT);
    Blinker.begin(0,1,9600);
    Button1.attach(button1_callback);
    Button2.attach(button2_callback);
    s.attach(pin_servo);
    s.write(45);
}
  • 初始化串口通信、设置引脚模式,启动 Blinker,附加按钮回调函数,并设置舵机初始位置。

5. loop() 函数

void loop() 
{
    while(!digitalRead(pin_bluetooth_stat))
    {
        t=1;
        digitalWrite(pin_led, LOW);
    }
    digitalWrite(pin_led, HIGH);
    Blinker.run();
    
    if(digitalRead(pin_bluetooth_stat) && t == 1)
    {
        delay(1000);
        freshData();
    }
    
    t = 0;
}
  • 检查蓝牙是否连接,控制 LED 灯并处理蓝牙消息。若有连接则每隔一秒更新一次数据。

6. 按钮回调函数与开门动作定义

void button1_callback(const String & state) 
{
   ...
   Open();
}

void Open()
{
   Serial.println("Welcome!");
   ...
}
  • 当按下“开门”按钮时,会执行 Open() 函数,发出“欢迎”的信息并控制舵机旋转到特定角度。

总结:

这段代码展示了如何利用 Arduino 控制舵机,同时实现 Bluetooth 操作。根据实际需要,可以进一步调整 LED 状态、舵机动作角度以及数据更新方式。确保在编译前已经正确安装所有必要的库,包括 Blink 库及其依赖项。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?