两块Arduino分别与HC-05模块和 HC-06模块连接并进行通信

要做一个简单的装置,需要用到两个蓝牙模块分别与两块Arduino连接,一个作为发送,一个作为接收。

关于HC-05与Arduino的连接与调试如下:

HC-05引脚:

STATE:蓝牙连接状态指示,连接成功此引脚为高电平,没有连接则为低电平

RX:接收端

TX:发送端

GND:接地端

+5V:5V电源输入端

EN:使能端,需要进入AT模式时接3.3V。其实不接也没有关系

1.接线与进入AT模式设置:

接线:

  • RX —>TX
  • TX —>RX
  • GND —>GND
  • +5V —>5V

另外两个引脚可以不接

在arduino下载以下程序,为了不与arduino自带串口冲突,选用软件模拟串口,我选用6,7引脚

#include 
SoftwareSerial BTserial(6, 7); // RX | TX
// Connect the HC-05 TX to Arduino pin 6 RX. 
// Connect the HC-05 RX to Arduino pin 7 TX through a voltage divider.

char c = ' ';

void setup() 
{
    // start th serial communication with the host computer
    Serial.begin(9600);
    Serial.println("Arduino with HC-05 is ready");

    // start communication with the HC-05 using 38400
    BTserial.begin(38400);  
    Serial.println("BTserial started at 38400");
    //pinMode(5,OUTPUT);
    //digitalWrite(5,HIGH);
}

void loop()
{

     // Keep reading from HC-05 and send to Arduino Serial Monitor
    if (BTserial.available())
    {
        c = BTserial.read();
        Serial.write(c);
    }

    // Keep reading from Arduino Serial Monitor and send to HC-05
    if (Serial.available())
    {
        c =  Serial.read();

        // mirror the commands back to the serial monitor
        // makes it easy to follow the commands
        Serial.write(c);   
        BTserial.write(c);  
    }

}

烧录成功后,按住HC-05按钮,然后重新上电,发现指示灯缓慢闪烁,即可在arduino 串口监视器中进行调试:

模式改成NL和CR

需要设置以下命令:

AT

返回: OK

AT+NAME=名称      进行修改名称,例如 AT+NAME=BT1

AT+PSWD密码       进行密码修改 例如:AT+PSWD2019 默认密码为1234

AT+ROLE=1           将HC05设置为主模式

AT+ADDR?           可获取蓝牙地址

AT+UART=波特率,停止位,校验位   例如AT+UART=38400,0,0 不设置的话默认为9600,0,0

2. 设置完毕后,烧录以下程序:

#include 
//使用软件串口,能讲数字口模拟成串口
SoftwareSerial BT1(6, 7);  //新建对象,RX脚为6,TX脚为7
char val;  //存储接收的变量

void setup() {
  Serial.begin(9600);   //与电脑的串口连接
  Serial.println("BT is ready!");
  BT1.begin(38400);  //设置波特率,如果在上一步AT调试中未设置波特率,这个地方值为9600
}

void loop() {
  //如果串口接收到数据,就输出到蓝牙串口
  if (Serial.available()) {
    val = Serial.read();
    BT1.print(val);
  }

  //如果接收到蓝牙模块的数据,输出到屏幕
  if (BT1.available()) {
    val = BT1.read();
    Serial.print(val);
  }
}

烧录后重新上电,可用手机,蓝牙串口工具和Arduino 串口监视器进行检验:两块Arduino分别与HC-05模块和 HC-06模块连接并进行通信_第1张图片

两块Arduino分别与HC-05模块和 HC-06模块连接并进行通信_第2张图片

3.从机HC06-与另一块Arduino的调试

 

你可能感兴趣的:(学习笔记,Arduino,蓝牙,HC-05,HC-06)