您好,欢迎访问三七文档
HC-05与HC-06蓝牙串行端口通讯模块HC-05和HC-06的硬件相同,都采用英国剑桥的CSR(CambridgeSiliconRadio)公司的BC417143芯片,支持蓝牙2.1+EDR规范,只是芯片内部的韧体不同。CSR是全球市占率最高的蓝牙通讯芯片厂,2014年10月中旬,全球手机芯片龙头高通(Qualcomm)同意以25亿美元现金,购并CSR,以强化该公司在物联网(InternetofThings)的布局。韩国三星也于2012年花费3.1亿美元,取得CSR公司的蓝牙、WiFi和GPS定位等技术专利。HC-05模块的外观与主要接脚如下:附带底板的HC-05和HC-06蓝牙串行端口通讯模块基本的蓝牙序列通讯模块没有引出接脚,而是在印刷电路板的四周留下邮票般的齿孔,方便焊接。若不想动手焊接,可以选购附带底板的模块。这个底板附带直流电压转换IC,方便连接3.6V~6V的电源。附带底板的HC-05蓝牙模块外观与接脚如下:「命令响应模式」接脚(通常标示成“KEY”或“EN”),用于启动AT命令模式,调整蓝牙模块的设定(例如,调整串行端口的传输速率、修改模块的名称、修改配对密码…等等)。市面上的藍牙裝置通常都屬於“slave(從端)”設備,像藍牙滑鼠∕鍵盤、藍牙GPS、藍牙遙控玩具…等等。一般的Arduino蓝牙遥控和通讯实验,也都是用「从端」模式,所以HC-06模块足以应付大多数需求。但如果HC-05和HC-06模块的价格差不多,那就买HC-05。HC-05和HC-06的主要差异在于主、从模式的设定,以及设置模块参数的AT命令的支持程度。HC-05通常支持30多道AT命令,HC-06只支持少数AT命令,但实务上会用到的AT命令通常也只有两、三个(请参阅下一篇贴文说明)。若要采购HC-05,请选择有引出「命令响应模式」接脚的模块,方便执行AT命令。不同蓝牙模块的引脚和韧体可能不太一样,购买时,务必跟厂商索取datasheet(规格说明书,含AT命令手册,有些会附带底板的电路图)。Bluetooth4.0具备藍牙低功耗(BluetoothLowEnergy,BLE)模式,耗电量低,但计算机、手机和平板等装置的支持、普及程度,不及2.1版。如果你确认你的计算机和手机都支持蓝牙4.0,那就可以选购蓝牙4.0的序列通讯模块。不管是HC-05,HC-06还是蓝牙4.0,对Arduino都没有影响,控制程序都一样,实际接线也只用到4条线:电源、接地、传送(TxD)和接收(RxD)。电路接线说明,请参阅下一篇贴文。延续上一篇贴文,本文将补充蓝牙模块的AT命令模式与设定方法。蓝牙模块的两种操作模式自动联机(automaticconnection),又称为透通模式(transparentcommunication)。命令响应(order-response),又称为AT模式(ATmode)。平时使用的「自动联机」模式只是把RxD脚传入的数据,转成蓝牙无线讯号传递出去;或者将接收到的无线数据,从TxD脚传给Arduino,模块本身不会解读数据,也不接受控制。操控蓝牙模块的指令统称AT命令(AT-command)。AT命令并非透过蓝牙无线传输,而是模块的TxD和RxD接脚。蓝牙模块只有在AT模式,才能接收AT命令。HC-05与HC-06蓝牙模块进入AT模式的方法HC-06模块在与其他装置联机之前,都处于AT模式状态;换句话说,只要一通电,HC-06模块就进入AT模式。HC-06的AT命令,采用9600bps的速率传送。通電後,在尚未與裝置連線之前,HC-06板子上的LED將不停地閃爍;一旦與其他藍牙裝置联机(如:手机或计算机),LED将维持点亮状态。让HC-05模块进入AT模式,需要在通电之前,先把KEY脚位(蓝牙模块本身的34脚)接在高电位(通常指3.3V,但是接5V也行)。如此,一通电,它就进入AT模式。在尚未与装置联机之前,HC-05板子上的LED将快速闪烁;若进入AT模式,LED将慢速闪烁(两秒闪烁一次)。HC-05的AT命令,采用38400bps的速率传送。笔者购买的HC-05板子上面有一个按键,根据厂商提供的电路,这个按键接在蓝牙模块的34脚:透过Arduino的串行端口设定蓝牙模块的AT命令除了使用现成的USB转TTL序列模块来设定AT命令(请参阅「执行AT命令(AT-command)修改蓝牙模块的数据传输速率」),也能使用Arduino板来操作。本节将撰写一个简易程序,把我们在计算机上敲入的AT命令,转发给接在Arduino上的蓝牙模块。#includeSoftwareSerial.h//引用链接库//定义连接蓝牙模块的串行端口SoftwareSerialBT(8,9);//接收脚,传送脚charval;//储存接收数据的变量voidsetup(){Serial.begin(9600);//与计算机串行端口联机Serial.println(BTisready!);//设定蓝牙模块的联机速率//如果是HC-05,请改成38400BT.begin(9600);}voidloop(){//若收到「串行端口监控窗口」的数据,则送到蓝牙模块if(Serial.available()){val=Serial.read();BT.print(val);}//若收到蓝牙模块的数据,则送到「串行端口监控窗口」if(BT.available()){val=BT.read();Serial.print(val);}}在HC-05與HC-06藍牙模組上執行AT命令程式上傳完畢後,開啟Arduino的「序列埠監控視窗」,HC-06模組的AT指令不需要加上行結尾字元,下圖是執行“AT+VERSION”命令,查看韌體版本的結果:
本文标题:HC-05蓝牙模块
链接地址:https://www.777doc.com/doc-2875889 .html