蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块远程控制模块等。 1.什么是蓝牙模组(来源于网络) 蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,按功能分为蓝牙数据模块和蓝牙语音模块。蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯,大致可分为三大类型:数据传输模块、蓝牙音频模块、蓝牙音频+数据二合一模块等等。一般模块具有半成品的属性,是在芯片的基础上进行过加工,以使后续应用更为简单。 2.蓝牙模组原理蓝牙信号的收发采用蓝牙模块实现。此蓝牙模块是公司最近推出的遵循蓝牙V1.1标准的无线信号收发芯片,主要特性有:具有片内数字无线处理器DRP(DigitalRadioProcessor)、数控振荡器,片内射频收发开关切换,内置ARM7嵌入式处理器等。接收信号时,收发开关置为收状态,射频信号从天线接收后,经过蓝牙收发器直接传输到基带信号处理器。 基带信号处理包括下变频和采样,采用零中频结构。数字信号存储在RAM(容量为32KB)中,供ARM7处理器调用和处理,ARM7将处理后的数据从编码接口输出到其他设备,信号发过程是信号收的逆过程,此外,还包括时钟和电源管理模块以及多个通用I/O口,供不同的外设使用。它的主机接口可以提供双工的通用串口,可以方便地和PC机的RS232通信,也可以和DSP的缓冲串口通信。 3.蓝牙模组作用1.无线PC外设 2.无线游戏手柄 3.无线音频
5.电子消费品 6.家庭自动化 版权声明:网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。侵权投诉 延續上一篇貼文,本文將補充藍牙模組的AT命令模式與設定方法。 藍牙模組的兩種操作模式
平時使用的「自動連線」模式只是把RxD腳傳入的資料,轉成藍牙無線訊號傳遞出去;或者將接收到的無線資料,從TxD腳傳給Arduino,模組本身不會解讀資料,也不接受控制。 操控藍牙模組的指令統稱AT命令(AT-command)。AT命令並非透過藍牙無線傳輸,而是模組的TxD和RxD接腳。藍牙模組只有在AT模式,才能接收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腳: 所以先按著板子上的開關,再通電,即可讓此藍牙模組進入AT模式(通電之後,即可放開開關)。 HC-06模組的AT命令根據廠商提供的AT命令說明書,筆者購買的HC-06藍牙模組支援下列AT指令(這個模組規定,AT命令一定要大寫,有些模組不區分大小寫): 常用的AT指令有兩個:
HC-06模組的預設名稱就是“HC-06”,於多人、多組藍牙一起實驗的場合,在電腦或手機上探索藍牙裝置時,將會發現許多叫做“HC-06”的裝置。 為了方便實驗者連接到自己的藍牙設備,可以事先用AT命令替每一個模組設定不同的名字,例如,bt01, bt02, bt03,…(註:一般最多允許32個英∕數字)。 透過Arduino的序列埠設定藍牙模組的AT命令除了使用現成的USB轉TTL序列模組來設定AT命令(請參閱「執行AT命令(AT-command)修改藍牙模組的資料傳輸速率」),也能使用Arduino板來操作。 本節將撰寫一個簡易程式,把我們在電腦上敲入的AT命令,轉發給接在Arduino上的藍牙模組。 同樣地,藍牙模組的回應訊息也會轉發到電腦的序列埠。請編譯底下的程式並上傳到Arduino板: #include <SoftwareSerial.h> // 引用程式庫 // 定義連接藍牙模組的序列埠 SoftwareSerial BT(8, 9); // 接收腳, 傳送腳 char val; // 儲存接收資料的變數 void setup() { Serial.begin(9600); // 與電腦序列埠連線 Serial.println("BT is ready!"); // 設定藍牙模組的連線速率 // 如果是HC-05,請改成38400 BT.begin(9600); } void loop() { // 若收到「序列埠監控視窗」的資料,則送到藍牙模組 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”命令,查看韌體版本的結果: 下圖是執行“AT+NAMEsix”,將模組的識別名稱改成“six”的結果: HC-05模組的AT指令需要加上\n\r行結尾,下圖是執行“AT+VERSION”命令,查看韌體版本的結果: 根據廠商的AT命令參考手冊,此HC-05模組有個查閱識別名稱的命令:“AT+NAME?”,然而,我手上這個模組對此命令沒有反應。但是從Windows 7的藍牙「新增裝置」畫面看得出,此藍牙模組的預設名稱是“HC-05”: HC-05模組修改識別名稱的AT命令是:”AT+NAME=識別名稱”,設定成功後,它將傳回“OK”,將模組識別名稱改成“five”的操作畫面如下: 再次於Windows 7系統執行藍牙「新增裝置」,可看到模組的名稱已經改變了: 延伸閱讀
|