Arduino蓝牙模块实现通信

2019-04-15 12:56发布

蓝牙参数特点 1.蓝牙核心模块使用HC-06从模块,引出接口包括VCC,GND,TXD,RXD,预留LED状态输出脚,单片机可通过该脚状态判断蓝牙是否已经连接 2.led指示蓝牙连接状态,闪烁表示没有蓝牙连接,常亮表示蓝牙已连接并打开了端口 3.输入电压3.6~6V,未配对时电流约30mA,配对后约10mA,输入电压禁止超过7V! 4.可以直接连接各种单片机(51,AVR,PIC,ARM,MSP430等),5V单片机也可直接连接 5.在未建立蓝牙连接时支持通过AT指令设置波特率、名称、配对密码,设置的参数掉电保存。蓝牙连接以后自动切换到透传模式 6.体积 3.57cm*1.52cm 7.该蓝牙为从机,从机能与各种带蓝牙功能的电脑、蓝牙主机、大部分带蓝牙的手机、Android、PDA、PSP等智能终端配对,从机之间不能配对。 Arduino 与蓝牙模块连接方法 VCC:接Arduino的5V。
GND:接Arduino的GND。 TXD:发送端,一般表示为自己的发送端,接Arduino的RX。
RXD:接收端,一般表示为自己的接收端,接Arduino的TX。
正常通信时候本身的TXD永远接设备的RXD!正常通信时RXD接其他设备的TXD, 接下来就是写程序了。为了测试通讯,PC通过无线连接向arduino发送一个字符't',arduino收到后闪一下灯,并向PC反馈一个字符串"echo"。程序如下: const int ledpin = 13; const int pinRx = 0; const int pinTx = 1;  void setup() { Serial.begin(9600); pinMode(ledpin, OUTPUT); } void loop() { int val = Serial.read(); if (val == 't') { digitalWrite(ledPin, HIGH);   // set the LED on delay(500); digitalWrite(ledpin, LOW); delay(500); Serial.println("echo"); } }   相对上一个程序,这里面有些新的东西,就是串口对象Serial,这个对象对应于0,1接口的串口设备;当然,其他3个串口也有对应的串口对象,名字分别为Serial1, Serial2, Serial3。编程参考可以看这个链接:http://arduino.cc/en/Reference/Serial。这里使用的对象接口函数很简单,Serial.begin(波特率),用于初始化串口并指定通讯的波特率;Serial.read()是从串口的接收缓冲区中读出一个字符,如果没有,返回-1;Serial.println(字符串)用于输出一个带回车符的字符串。需要提一下的是,arduino的第一个串口和FTDI USB-to-TTL串口芯片相接,也就是说这个串口设备可以通过USB线连接PC。   程序写完,就可以上传运行了。蓝牙模块背面有2个灯,分别是power和state,通电后power就亮了,state灯却一直闪烁,这是因为蓝牙还没有连接。PC端这时需打开蓝牙管理,然后搜寻新的设备,会找到一个叫linvor的蓝牙设备。打开,这个设备只有一个蓝牙串口。点右键连接,跳出配对密码输入框,输入密码"1234"即可。连接完成后,可以看到蓝牙模块上的state灯长亮了,这表明连接正常,就可以进行通讯了。   既然是通讯,PC端也要有个基于串口的通讯程序。除了使用arduino开发环境自带的Serial Monitor,自己也可以找一个流行的。咱是懒人,就用开发环境自带的好了,反正应用很简单,这个程序也够用了。点击开发环境最右面Serial Monitor那个图标,就跳出下面这个界面。不过要注意,在TOOL菜单下的COM选择,应该是对应蓝牙串口所用的那个串口编号,而不是USB的,否则,呵呵,就不是蓝牙无线通讯而是USB串口通讯了。   最后补充一下,蓝牙模块的信息是可以通过AT命令来进行改动的,缺省情况下,蓝牙设备名是"linvor", 通讯波特率为9600,配对密码为"1234"。具体说明如下:   通过串口与电脑连接,再通过串口调试助手给模块发送命令可以配置模块的一些参数, 具体的配置方式如下: 1)、测试通讯:发送AT 命令,返回ok 2) 更改波特率 模块默认的波特率是9600 发送AT BAUD1 返回OK1200 发送AT BAUD2 返回OK2400 …… BAUD1------------1200 BAUD2------------2400 BAUD3------------4800 BAUD4------------9600 BAUD5------------19200 BAUD6------------38400 BAUD7------------57600 BAUD8------------115200 BAUD9------------230400 A--------------------460800 B--------------------921600 C--------------------1382400 不建议使用超过115200 的波特率,因为大多系统都没有提供高 于115200 的波特率,PC 机也是如此,波特率设置超过115200 以后, 电脑无法使用,要使用波特率高于115200 的系统才能重新发AT 命令 设置低的波特率,否则无法恢复低波特率了。 用AT 命令设置好波特率后,下次上电不需要再设置,掉电可以 保存波特率。 3)更改蓝牙名字 发送:AT NAMEname 返回:OKname 参数name:你所要设置的名字,也就是蓝牙被搜索到的名字, 20 个字符以内。 例:发送AT NAMEJYOO 返回返回JYOO 参数可以掉电保存,只需设置一次 4)更改蓝牙配对密码 发送:AT PINXXXX 返回:OKsetpin 参数XXXX:所需设置的密码4 位,只需更改一次,掉电保存。