You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Arduino Uno的硬件RX/TX引脚向HM-10发送AT指令?

用硬件串口(引脚0/1)与HM-10通信的实现方法

嘿,我之前也把SoftwareSerial换成硬件串口和HM-10通信过,其实完全不需要额外的库,直接用Arduino自带的Serial对象就行,操作比软串口还稳定!

接线要点

先理清楚硬件连接,这步错了后面全白搭:

  • HM-10的Tx引脚 → Arduino的Rx(数字引脚0)
  • HM-10的Rx引脚 → Arduino的Tx(数字引脚1)
  • HM-10的VCC接3.3V(划重点!HM-10是3.3V电平模块,直接接5V大概率会烧)
  • 最后把Arduino和HM-10的GND连在一起,保证共地

⚠️ 必看提醒:上传程序到Arduino时,必须断开HM-10与引脚0/1的连接!因为这两个引脚同时负责Arduino和电脑USB的通信,模块插在上面会干扰程序上传。等程序传完,再把接线插回去就行。

示例代码

这个极简代码就能实现发送AT指令并读取模块响应:

void setup() {
  // 初始化硬件串口,波特率要和HM-10一致(默认是9600)
  Serial.begin(9600);
  
  // 针对Leonardo/Micro这类需要等待USB串口连接的板子,加个等待逻辑
  while (!Serial) {
    ; // 空循环,直到串口连接成功
  }
}

void loop() {
  // 每隔5秒发送一次AT指令测试连通性
  Serial.println("AT");
  delay(5000);

  // 读取HM-10返回的响应并打印到串口监视器
  if (Serial.available() > 0) {
    String response = Serial.readStringUntil('\n');
    Serial.print("HM-10响应:");
    Serial.println(response);
  }
}

额外实用提示

  1. 电平转换:Arduino的Tx引脚输出是5V,而HM-10的Rx是3.3V输入,短时间直接接可能没事,但长期用建议加个电平转换模块(比如TXB0104),避免损坏模块引脚。
  2. 串口监视器设置:打开Arduino串口监视器时,波特率要选9600(和代码一致),换行符选「NL & CR」,这样发送的AT指令才符合HM-10的解析要求。
  3. 多串口需求:如果你的项目需要同时和电脑通信+控制HM-10,可以换带多硬件串口的板子(比如Arduino Mega,有Serial1/Serial2/Serial3),这样就不用频繁插拔接线了。

内容的提问来源于stack exchange,提问作者AravindGanesh

火山引擎 最新活动