零基礎入門到精通「單片機藍牙模塊教程」

現如今,每個人的手機都配有藍牙功能,我們可以用藍牙傳輸數據,連接耳機以及控制一些自帶藍牙功能的電子設備。我們也可以使用藍牙模塊配上單片機就可以輕鬆實現手機控制LED燈,電機,智能小車,機器人等各種設備。讓我們的創作實現無線控制。

下面我們就來介紹一種性價比極高的藍牙模塊:HC-06從機藍牙模塊。

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

藍牙簡介

BLE藍牙的角色有以下幾種:廣播者(Advertise)、掃描者(Scanner)、從設備(Slave)、主設備(Master)、發起者(Initiator),其中主設備是由發起者、掃描者轉化而來,從設備則是由廣播者轉化而來;藍牙模塊通信是指兩個藍牙模塊或藍牙設備之間進行通信,進行數據通信的雙方一個是主機,一個是從機。

  • 主設備模式:工作在主設備模式,可以與一個從設備進行連接。在此模式下可以對周圍設備進行搜索並選擇需要連接的從設備進行連接。理論上,一個藍牙主端設備,可同時與7個藍牙從端設備進行通訊。一個具備藍牙通訊功能的設備, 可以在兩個角色間切換,平時工作在從模式,等待其它主設備來連接,需要時,轉換為主模式,向其它設備發起呼叫。一個藍牙設備以主模式發起呼叫時,需要知道對方的藍牙地址,配對密碼等信息,配對完成後,可直接發起呼叫。
  • 從設備模式:工作在從機模式下的藍牙模塊只能被主機搜索,不能主動搜索。從設備跟主機連接以後,也可以和主機設備進行發送和接收數據。

主模式與從模式的區別:主機是指能夠搜索別人並主動建立連接的一方,從機則不能主動建立連接,只能等別人連接自己。

HC-05是主從一體化的藍牙串口模塊,主從可指令切換,指令豐富齊全。

HC-06是主從一體化的藍牙串口模塊,主從可指令切換,指令少於HC-05,使用簡單。

這次使用的是藍牙HC-06是從模塊,也就是從機模塊,我們的手機就是主模塊。主機可以與從機配對,從機不能和從機配對。如果要兩個單片機通信,那就至少一個是有主機功能的,要是兩個都是從機是通信不了的。

模塊介紹

  1. 採用CSR主流藍牙晶元,藍牙V2.0協議標準
  2. 模塊供電電壓:3.3V~6.0V
  3. 默認參數:波特率9600
  4. 配對碼:1234
  5. 工作模式:從機
  6. 核心模塊尺寸大小為:27mm x 13 mm x 2mm
  7. 工作電流:不大於50mA
  8. 通訊距離:空曠條件下10M,正常使用環境8M左右
  9. 作用:用於GPS導航系統,水電煤氣抄表系統,工業現場采控系統,可以與藍牙筆記本電腦、電腦加藍牙適配器、PDA等設備進行無縫連接
  10. 可以對STC單片機無線升級和下載程序

引腳定義:

  • VCC:電源正極
  • GND:接地
  • TXD:發送端
  • RXD:接收端
用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

重要提示:

  • 模塊LED快閃,表示模塊正常工作,處於AT模式,等待主機連接
  • 模塊LED長亮,表示模塊正常工作,已連接主機,處於透傳模式。
  • TXD:一般表示模塊自己的發送端,正常通信必須連接另一設備的RXD接收端。
  • RXD:一般表示模塊自己的接收端,正常通信必須連接另一設備的TXD發送端。

Arduino驅動實例

下面我們就用一台手機控制一個點陣屏的亮暗和不同圖案顯示。

硬體設備:

  • Arduino UNO控制器 × 1
  • HC-06藍牙模塊 × 1
  • 8×8 MAX7219點陣模塊 × 1
  • 電源 × 1
  • 杜邦線 × n
  • 智能手機× 1

接線圖:

將點陣模塊的DIN、CS、CLK分別連到Arduino10/11/12數字引腳上,連接電源和接地線;藍牙模塊的TXD:連接ArduinoRXD接收端;RXD連接ArduinoTXD發送端,連接電源和接地線。

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

下面是實物圖;圖中Arduino模塊增加了擴展板,方便接線。

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

程序:

#include <LedControl.h>  //點陣模塊庫

int DIN = 10;    //點陣模塊引腳定義
int CS =  11;
int CLK = 12;

byte smile[8]=   {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};//笑臉
byte X[8]= {0xC3,0xE7,0x7E,0x3C,0x3C,0x7E,0xE7,0xC3};    //X
byte OFF[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};  //全關閉
byte ON[8]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};  //全打開
LedControl lc=LedControl(DIN,CLK,CS,4);

void setup()
{
  Serial.begin(9600);
  lc.shutdown(0,false);       //啟動時,MAX72XX處於省電模式
  lc.setIntensity(0,4);       //將亮度設置為最大值
  lc.clearDisplay(0);         //清除顯示
}

void loop()
{ 
  while(Serial.available())
   {
     char M = Serial.read();    //接收藍牙數據
     switch (M){
     case '0': printByte(OFF); break;      //點陣屏全熄滅
     case '1': printByte(ON); break;  //點陣屏全點亮
     case '2': printByte(X); break;  //點陣屏顯示大叉叉
     case '3': printByte(smile); break;   //點陣屏顯示笑臉
     }
    }
}
//點陣顯示函數
void printByte(byte character [])
{
  int i = 0;
  for(i=0;i<8;i++)
  {
    lc.setRow(0,i,character[i]);
  }
}

手機藍牙通訊app:

在進行控制之前,我們需要在手機端安裝藍牙調試工具。在手機應用商店裡搜索「藍牙調試器」。我選擇的是這款工具,體積小,操作簡單,功能強大。

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

效果展示:

安裝APP後,藍牙連接HC-06模塊;

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

我們選擇按鈕控制模式;將其中四個按鍵名詞改為:關閉,打開,×,笑臉;並將按下按鍵的發送代碼分別改為:0,1,2,3。

用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

現在大功告成,分別按下:關閉、打開、×、笑臉,點陣屏就會按照對應的方式顯示:用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

點陣屏全滅用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

點陣屏全亮用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

點陣屏顯示大叉叉用手機藍牙控制萬物:HC-06從機藍牙模塊介紹和使用

點陣屏顯示笑臉

只要我們在加上不同的執行器,就可以用手機藍牙控制步進電機,舵機,燈等等,實現各種功能了。一起來試試吧。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/207482.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-08 14:33
下一篇 2024-12-08 14:33

相關推薦

發表回復

登錄後才能評論