arduino uno和mega2560使用hc05通信

首先要进入AT模式:
在这里插入图片描述
在这里插入图片描述

#include <SoftwareSerial.h> 

// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11); 
char val;

void setup() {
  Serial.begin(38400); 
  Serial.println("BT is ready!");
  // HC-05默认,38400
  BT.begin(38400);
}

void loop() {
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

然后将arduino断电,按着蓝牙模块的黑色按钮然后给arduino通电(一定要把arduino一起断电,不要只断hc05),如果蓝牙按照两秒的频率闪烁指示灯们就说明进入了AT模式,输入AT如果返回OK则正常
AT代码:

AT+ORGL    # 恢复出厂模式
AT+NAME=<Name>    # 设置蓝牙名称
AT+ROLE=0    # 设置蓝牙为从模式
AT+CMODE=1    # 设置蓝牙为任意设备连接模式
AT+PSWD=<Pwd>    # 设置蓝牙匹配密码

接下来利用hc05控制13引脚的led
在这里插入图片描述

void setup()
{
  // 设置波特率为 38400
  Serial.begin(38400);
  pinMode(13, OUTPUT);
}


void loop()
{
  while(Serial.available())
  {
    char c=Serial.read();
      if(c=='1')
      {
        Serial.println("BT is ready!");
        // 返回到手机调试程序上
        Serial.write("Serial--13--high");
        digitalWrite(13, HIGH);
      }
     if(c=='2')
     {
       Serial.write("Serial--13--low");
       digitalWrite(13, LOW);
     }
  }
}

注意,如果是mega2560的板子他有4组tx和rx
Arduino MEGA的板子上共有4对Tx,Rx引线口.
分别是(RX1 19、TX1 18)、(RX2 17、TX2 16)、(RX3 15、TX3 14)
如果我们要使用手机通信的话最好不要使用0和1号脚位

代码例子:

void setup()
{
Serial.begin(19200); //串口0,就是PWM区域里的Pin0和Pin1脚
Serial1.begin(19200); //串口1,即Pin19及Pin18
Serial2.begin(19200); //串口2,即Pin17及Pin16
Serial3.begin(19200); //串口1,即Pin15及Pin14
}

void loop()
{
int val;
val=Serial.read();
Serial.print("Hello!"); //向串口0发送信息
Serial1.print("Hello!"); //向串口1发送信息
Serial2.print("Hello!"); //向串口2发送信息
Serial3.print("Hello!"); //向串口3发送信息
delay(500); //发送的间隔时间(1000=1秒)
}

这里我选择了第三组

void setup()
{
  // 设置波特率为 38400
  Serial3.begin(38400);
  pinMode(13, OUTPUT);
}


void loop()
{
  while(Serial3.available())
  {
    char c=Serial3.read();
      if(c=='1')
      {
        Serial3.println("BT is ready!");
        // 返回到手机调试程序上
        Serial3.write("Serial--13--high");
        digitalWrite(13, HIGH);
      }
     if(c=='2')
     {
       Serial3.write("Serial--13--low");
       digitalWrite(13, LOW);
     }
     Serial3.println(c);
  }
}
  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值