• slider image 844
  • slider image 858
  • slider image 867
  • slider image 868
:::


1-1-1 Arduino Nano 主控端+藍芽測試

【觀念釐清】

1.藍芽可以設定主、從,二種角色,HC-05可以透過 AT 指令,指定角色,但是 HC-06 不行,一出廠就是從端喔。

2.連線距離:在無障礙之下,理論是 10 M

3.HC-05 在設定時,最好將 UART 設定為 :38400,比較不容失敗。

4.以下是藍芽設定完成之後,使用 Arduino IDE 進行測試的程式。主控端的程式,使用序列埠視窗,下達指令給接收端的藍芽;而在主控端這方,可從序列埠,看到接收端回傳的訊息。

/*
1.本程式為人體紅外線感測器 ( PIR Motion Sensor )針對HC-HR501型號,SR505也適用本程式
2.此程式,手機下載 bluetooth control APP , 進行測試。
*/
#include <SoftwareSerial.h>   // 引用程式庫

// 定義連接藍牙模組的序列埠
SoftwareSerial BT(8, 9); // (對方裝置的 TX | RX )

char val;  // 儲存接收資料的變數
char input_temp; //暫存變數
String BT_return; //儲存回傳的訊息字串
int sensor = 5;  //訊號線 HC-HR501
int LED_PIN = 4;  // 定義LED腳位

void setup() {
  Serial.begin(9600);   // 與電腦序列埠連線
  Serial.println("BT is ready!");
  pinMode(LED_PIN, OUTPUT);
  pinMode(sensor, INPUT); 
  
  //測試LED
  digitalWrite(LED_PIN, HIGH); 
  delay(200);     
  digitalWrite(LED_PIN, LOW); 

  // 藍牙透傳模式的預設連線速率。
  BT.begin(38400);
}

void loop() {
  // 若收到「序列埠監控視窗」的資料,則送到藍牙模組
  val = ' ';
  if (Serial.available()) {
    input_temp = Serial.read();
    if(input_temp != '\r' && input_temp != '\n'){
      val = input_temp; //傳入單一字元
      Serial.println(" serial 輸入");
      Serial.println(val);
      BT.print(val);
    }
  }

  // 若收到藍牙模組接受端回傳的資料,則送到主控端的「序列埠監控視窗」
  if (BT.available()) {
    for (int i = 0; i <= 20; i++) {
      char c = BT.read();
      if(c != '\r' && c != '\n'){
        BT_return += c; 
      }
      delay(4);
    }
    Serial.println("BT 回傳的BT值為");
    Serial.print(BT_return);
   }

}

 


:::

Web Language Select