ArduinoUNO連線藍芽模組與安卓連線進行測距

NeilRon發表於2014-01-10
今天到了第一批製作四旋翼飛行器用的開發板和感測器,實現了最簡單的ArduinoUNO和Android手機間的藍芽串列埠通訊和超聲測距感測器的試用。

Arduino <wbr>UNO連線藍芽模組與安卓手機通訊教程

最左邊的是HC-06藍芽模組,中間的一對金屬圓柱是超聲測距的感測器,最右是ArduinoUNO開發板。然後操作者點按手機中串列埠除錯助手上的按鈕傳送訊號,並接收發回的感測器資料。下圖鍵盤左上角的測量按鍵會通過藍芽串列埠向ArduinoUNO傳送一個訊號,微控制器收到訊號啟用超聲感測器,並讀回資料,再通過藍芽傳回手機顯示。圖中前一部分資料是感測器測得的桌面到屋頂的距離,最後一個是桌面到地面的距離。

Arduino <wbr>UNO連線藍芽模組與安卓手機通訊教程

1 藍芽模組的除錯

我選擇的藍芽模組是HC-06,相關資料下載:百度雲下載
第一步,連線:
  RXD--------TX->1
  TXD--------RX<-0
藍芽模組  GND--------GND   Arduino UNO
  VCC--------3.3V

第二步,修改藍芽模組的名字、密碼和波特率,因為我的應用中對頻寬要求不高,所以波特率還是選擇預設的9600。修改名字和密碼用藍芽模組的AT指令,因為沒有USB轉串列埠的片子,我是用微控制器執行這段程式碼,更多程式碼可以在手冊裡檢視:
void setup()
{
  
Serial.begin(9600);
Serial.print("AT");
delay(2000);
Serial.print("AT+NAMERon_bluetooth");
delay(2000);
Serial.print("AT+PIN5274");
}
void loop()
{
delay(1000);
}
注意:上傳程式碼的時候必須先拔掉接藍芽模組接在串列埠上的兩條線,程式寫入之後按下板上的reset鍵使程式碼執行一遍。
第三步,在手機上下載藍芽串列埠助手,搜尋先前設定的藍芽裝置,這個app的使用很簡單,不多做介紹。



至此,藍芽模組配置完成,用法與串列埠完全一樣,基本上屬於即插即用。


2 超聲模組HC-SR04

主要引數:1 使用電壓:5V 2 靜態電流:小於2mA 3 電平輸出:0-5V
        4 感應角度:不大於15度 5 探測距離:2cm-450cm
使用方法:控制口Trig發一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變為低電平時就可以讀定時器的值,此時就為此次測距的時間,方可算出距離.如此不斷的週期測,就可以得到測量的距離了。

第一步,接線
  TRIG--------PIN 2

  ECHO--------PIN4

超聲模組 GND---------GND   Arduino UNO

  VCC---------5V



第二步,燒寫入以下程式碼,



#define TRIG_PIN 2 
#define ECHO_PIN 4 
char val; 
int cm; 
void setup()
{
   Serial.begin(9600);
   pinMode(TRIG_PIN,OUTPUT);
   pinMode(ECHO_PIN,INPUT);
}
void loop()
{
   if((val = Serial.read()) == 'c')
   {
    
     digitalWrite(TRIG_PIN, LOW);
     delayMicroseconds(2);
     digitalWrite(TRIG_PIN,HIGH);
     delayMicroseconds(10);
     digitalWrite(TRIG_PIN, LOW);
     cm = pulseIn(ECHO_PIN,HIGH) / 60;
     Serial.print(cm);
     Serial.println(" cm");
   }
}
這時候手機與藍芽模組完成配對,如程式碼中所寫,手機端串列埠傳送'c',獲得超聲測距的數值。

相關文章