蓝牙模块HC-05的调试(利用LED灯来检验信号是否能正常传输)
by hasyu
我所用到的硬件
BlueTooth HC-05,arduino 2560(uno也行吧) 电脑 手机
硬件的连接
不同步骤不一样,所以丢到后面。
蓝牙模块的不同模式解读
AT模式
首先按住蓝牙模块上的复位键然后再上电,看见蓝牙模块上的LED灯以2s间隔闪烁,就表示进入了AT模式 记住串口助手的波特率设置为38400,停止位1位,数据为8位,奇偶校验无,另外一定要勾上“发送新行”!
当然如果使用arduino 自带的串口调试器,你只需要9600→38400就完了,毕竟其他的都是默认的。
当模块处于命令响应工作模式(或者AT模式)时能才能执行 AT 命令,用户可向模块发送各种 AT指令,为模块设定控制参数或发布控制命令。(AT指令就是我们PC与一些终端设备(例如蓝牙,WiFi模块)之间进行通信的,配置这些终端设备参数的一套指令。)
在别的模块也可能会用到AT指令,虽然各有不同,但都是利用串口进行沟通的一套“预设”指令。相对来说HC05是相对友好的指令了。//UWB dw1000 nodemcu-BU01***没意见吧
链接模式
我们发送AT+RESET之后,当模块LED以0.5s间隔闪烁时表示进入自动连接模式。 在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。 当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输。
本模块需要的是从模式。
流程目录
- 进入AT模式,蓝牙模块接软串口并在此模式下修改蓝牙配置//未接触过AT模式和串口的话需要细心留意一下每一个步骤的先后顺序。
- AT模式跟蓝牙模块交流。
- 退出AT模式,蓝牙模块连接0 1口(RX→TX,TX→RX),然后把led接到原本蓝牙模块的位置//想换也行,大不了重新声明个位置呗。。
- 写LED灯的代码,验证上传,手机下载个蓝牙串口调试的app(个人使用的是蓝牙调试器),连接你的蓝牙模块(蓝牙配置的时候改一个好辩认的名字),利用串口控制led。
一.进入AT模式
硬件连接
板子 link 蓝牙模块 软RX,引脚8 TX 软TX,引脚9 RX 3.3V VCC GND GND arduino代码
#include <SoftwareSerial.h>//软串口通信的库 SoftwareSerial BT(8,9);//定义8,9为软串口,相对的0,1是默认的硬串口 void setup() { //开启电脑通信串口,因为HC-05的波特率为38400,两者通信保持一致 Serial.begin(38400);//开启蓝牙,设置波特率38400,进入AT模式 BT.begin(38400); Serial.println("BT is ready!");// Serial.这里是电脑与板子交流的串口,BT.是板子和蓝牙模块的串口 } char AT_Cmd,AT_Rec; void loop() { //若是电脑发送信息 if(Serial.available()>0) { //读取信息,并且将信息发送给蓝牙,进行AT设置 AT_Cmd = Serial.read(); BT.print(AT_Cmd); } //若是接收到蓝牙返回的信息:一般设置后返回OK if(BT.available()>0) { AT_Rec = BT.read(); Serial.print(AT_Rec); } }
现实中的动作
1 .电脑接板子,代码上传,然后,,断掉电脑和板子的连接(为了断电)。
2 .长按蓝牙模块的按钮,接电,红灯2s为间隔闪烁,成功进入AT模式。
3 . 打开串口监视器,输入 AT 返回 OK 就算成功。
4 .开始利用电脑上的串口,借由板子作中转站和蓝牙模块进行AT对话。
二.AT模式跟蓝牙模块交流
//换句话说是配置
在arduino串口需要做的事
AT+ORGL # 恢复出厂模式
AT+NAME= **# 设置蓝牙名称 **//eg: AT+NAME=bendan
AT+ROLE=0 **# 设置蓝牙为从模式 **
AT+CMODE=1 # 设置蓝牙为任意设备连接模式
AT+PSWD= # 设置蓝牙匹配密码//eg: AT+PSWD=dabendan
一个一个来,它会回复你OK。
三.退出AT模式
拔掉电脑的USB,好了,断电退出了。
四.写LED灯的代码,验证
第二次硬件连接
板子 link 蓝牙模块 11 LED灯 GND LED灯 3.3V VCC GND GND 硬RX,引脚0 蓝牙模块TX 硬TX,引脚1 蓝牙模块RX 第二次代码
void setup() { Serial.begin(9600); pinMode(11,OUTPUT); } char ch; void loop() { if(Serial.available()>0) { ch = Serial.read(); if(ch=='1') digitalWrite(11,HIGH); //开启小灯 else digitalWrite(11,LOW); //关闭小灯 Serial.print(ch); } }
手机的蓝牙调试器连接蓝牙模块,输入1开灯,输入非1则关灯。
至此,用led验证了能正常输入输出。