国庆假期到了,小编先祝大家节日玩的开心!然后小编又又又要出来发表文章了图片图片图片 今天,我们来聊一聊Arduino中常用的无线传输模块----蓝牙。
1.蓝牙的来历
介绍蓝牙之前,我们先了解一下蓝牙的来历,蓝牙这个名称来自于第十世纪的一位丹麦国王 Harald Blatand(Bluetooth) , 因为国王喜欢吃蓝莓,牙龈每天都是蓝色的所以叫蓝牙(据说是这个样子的图片,但实际并不是),这位国王统一了现在的挪威、瑞典和丹麦,后来在命名这一无线通信技术时,研究人员觉得这位国王和这种技术有相似之处,所以就用国王的名字来命名了这项高新技术。
2.蓝牙
蓝牙(Bluetooth)是由东芝、爱立信、IBM、Intel和诺基亚于1998年5月共同提出的近距离无线数据通讯技术标准。它能够在10 米的半径范围内实现单点对多点的无线数据和声音传输,其数据传输带宽可达1Mbps。通讯介质为频率在2.402GHz到2.480GHz之间的电磁波。目前蓝牙技术规范日渐成熟,新的蓝牙4.0标准以传输距离远和功耗低的特点,使得采用新的蓝牙4.0标准的终端已经抢占了一定的市场份额。 蓝牙模块
3.蓝牙模块的分类
蓝牙模块(Bluetooth module)是指集成蓝牙功能的芯片基本电路集合,用于短距离2.4G的无线通讯模块。 蓝牙模块有很多种类,如果按照应用和支持协议分类,大致可以分为两种:经典蓝牙模块和低功耗蓝牙模块
经典蓝牙模块
经典蓝牙模块(BT):支持蓝牙协议1.0、2.0和3.0的模块,一般用于数据量比较大的传输,如音乐等较高数据量传输。经典蓝牙模块还可以再细分为传统蓝牙模块(BR)和高速蓝牙模块(EDR)。传统蓝牙模块支持蓝牙2.1协议,被广泛应用于智能手机;高速蓝牙模块的传输速率是传统蓝牙模块的8倍,大约是24Mbps,一般用于高清电视、PC、打印机等设备之间的资料传输。
低功耗蓝牙模块
低功耗蓝牙模块(BLE):是指支持蓝牙协议4.0或更高的模块,其最重要的特性是低功耗,比较省电,以不需占用太多带宽的设备连接为主,比如:智能家居类(蓝牙锁、蓝牙灯)、传感设备的数据发送(血压计、温度传感器)、消费类电子(电子烟、遥控玩具)等。
4.HC-05蓝牙模块
在Arduino中最常用的蓝牙模块有HC-05、HC-06、BT-05等,在本篇文章中,小编以HC-05为例,跟大家分享一下经典蓝牙在Arduino中的应用。 HC-05模块上的主要引脚包括: VCC 电源正极,接(3.3v~5v) GND 电源负极,接GND TXD 模块串口发送脚,接Arduino的RX引脚,也就是0号引脚。 RXD 模块串口接收脚,接Arduino的TX引脚,也就是1号引脚。
蓝牙模块与Arduino UNO的连线图: 蓝牙模块与Arduino UNO之间通过串口进行通信,所有串口通信的语法对蓝牙模块同样适用。
注意:Arduino UNO的0和1引脚为串口通信专用引脚,也是程序下载的专用引脚,如果蓝牙模块占用此引脚,那么下载程序前需要先拔掉蓝牙模块的接线,下载完程序后再接上。
5.通信实验
我们在Aduino UNO端编写接收蓝牙指令的程序,当蓝牙接收到指令后就控制Arduino UNO板上的LED灯点亮或者熄灭,程序如下:
char val;
void setup()
{
Serial.begin(38400);
pinMode(13, OUTPUT);
}
void loop()
{
val = Serial.read();
if (val == 'n')
{
digitalWrite(13, HIGH);
Serial.println("LED ON!");
}
else if (val == 'f') {
digitalWrite(13, LOW);
Serial.println("LED OFF!");
}
}
将程序下载到Arduino UNO上,然后连接好蓝牙模块作为数据接收端,蓝牙模块上的指示灯会快速闪烁,表示没有其他模块与之配对。 蓝牙发送端要借助手机APP了,由于小编没有苹果手机,所以只用安卓手机进行测试,大家有苹果手机的可以自行测试哦~ 我们先在手机端下载一个蓝牙APP,可以在手机应用商店直接搜索“蓝牙调试器”,小编把“蓝牙调试器”的压缩包和程序一块传到网盘了,文章末尾有链接哦~
安装完以后直接打开蓝牙APP,根据提示打开手机蓝牙,然后搜索附近的蓝牙设备,找到名为HC-05的蓝牙模块就是我们Arduino UNO上连接的蓝牙模块,然后选择连接HC-05蓝牙模块,在对话框输入配对密码就可以了,步骤截图如下: 注意:小编购买的蓝牙模块没有做任何设置,直接就上手了,所以蓝牙模块还是默认的HC-05,配对密码是1234,波特率默认为38400,下一篇文章再跟大家分享如何修改蓝牙模块的名字、配对密码、波特率等信息。 然后我们选择软件中的“对话模式”,在输入框中输入指令n或f,点击发送按钮以后,数据就被发送到Arduino UNO端的蓝牙模块了,并且能控制LED灯的亮灭状态。
其实在创客或者机器人教育中,蓝牙模块最经典的用途就是遥控Arduino小车了,所以小编最后再分享一个遥控小车的程序,该程序仅使用指令控制小车前、后、左右移动,并没有实现调速功能。 注意: (1)蓝牙模块占用了Arduino UNO的0和1引脚,下载程序前需要先拔掉蓝牙模块的TX和RX接线,下载完程序后再接上。 (2)手机APP端要使用“按钮控制”选项,而且要在“编辑模式”中修改每个按钮的值,注意按下按键发送的数据要和Arduino UNO端接收的数据相同! 蓝牙遥控小车的程序和蓝牙调试器的安装包已上传到网盘了,想要的小伙伴请关注公众号,然后在公众号回复“蓝牙遥控小车”即可获得下载链接图片 本期分享就到这里了,撰文不易,欢迎伙伴们持续关注我的公众号,更多惊喜等着你哦~
|