用Android手机蓝牙发信息给HC-06蓝牙模块


版权声明:本文为博主原创文章,未经博主允许不得转载。

发布

通过手机进行通信是可以实现很多遥控功能,虽然蓝牙的收发距离是比较短,一般是10米左右,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。

实例效果

用Android手机APP,发送信息到HC-06蓝牙模块,并通过Arduino Uno的串口输出信息。

资源下载

本实例所包含代码和手机APP打包下载:

https://u16460183.ctfile.com/fs/16460183-293935425

元件说明

这次使用的是蓝牙HC-06从模块,就是从机模块,在这解释一下,如有错误请指正。谢谢。

HC-05是主从模块,既能做主机,又能做从机。

HC-06是从模块,只能做从机。

主机可以与从机配对,从机不能和从机配对。如果要两个单片机通信,那就至少一个是有主机功能的,要是两个都是从机是通信不了的。

其他型号补充说明:

HC03工业级主从

HC04工业级从

HC05民用级主从

HC06民用级从

(资料上写,HC06空旷的传输距离是10米。买的时候要搞清楚自己的需求了。)

引脚说明

  • STATE – 表示状态,持续高电位(灯长亮)为连通状态,若持续高低点位(闪烁)为未连接状态。
  • RXD – 接收(接开发版的发送)
  • TXD – 发送(接开发版的接收)
  • GND – 接地(地线)
  • VCC – 接正电源(接3.3v,5v可能会烧请注意)
  • EN – (暂未确)

BOM表

Arduino UNO x 1
HC-06蓝牙模块 x 1
Android手机 x 1
面包板 x 1
USB数据线 x 1
跳线 若干

APP下载:

安卓APP: Amarino_2_v0_55

下载地址:http://code.google.com/p/amarino/downloads/detail?name=Amarino_2_v0_55.apk&can=2&q=

amarino 主页:http://www.amarino-toolkit.net/

备用下载地址:http://pan.baidu.com/s/1jG6FJAQ

(或者下载文章开头位置的打包文件亦可。)

接线

程序代码

int num = 0; //声明num为int(整型)变量,默认值为0

void setup()
{
 Serial.begin(9600); //定义串口波特率
}

void loop()
{
  while(Serial.available()) //不断检测串口是否有数据
   {
     char c=Serial.read(); //有,则读取
      if(c=='A')           //判断是否读取的字符值为A
        {
          num++;           //是,则num+1
          Serial.print(Hello:num=);  //串口输出结果
          Serial.println(num);
        }
   }
}

请注意:

在烧写(上传)程序的时候,蓝牙模块请先不要接线,正确步骤应该是:

1,先烧写程序上开发版。

2,断电,接线。

3,通电。

如果蓝牙模块接好线是烧写不上程序的,为什么会这样?留待你们去发现咯

程序说明

while(Serial.available()){…}

Serial.available()的作用是如果在串口中存在字节,则读取,串口读取的并非正常理解的字符串,而是ASCII码,是一个数字,然后转码为我们常看到的字符。例如:‘65‘ 对应就是 ‘A’。更多请搜索ASCII码码表。

while(…){…} 这个是循环结构语句。

手机安装APP

打开APP ,打开手机蓝牙功能,可以搜索到蓝牙模块HC-06。

进行连接的时候会提示进行配对,输入1234就可以了,如果不行可以试试0000。

同时蓝牙模块的LED灯也变成了常亮,这就表示连接成功了。

然后点击右下角的Monitoring按钮,进入如下界面:

在这里输入“A”,按SEND就可以了。