本帖最後由 liu5123 於 2017-9-5 22:12 編輯  
 
我的電路材料是 兩個UNO 和兩個HC-05的藍芽晶片 
原本先用AT配對完 用發送端程式  來讓兩個HC-05來進行溝通是可行 
兩邊都可以收發 顯示出來 
 
但當我想把一個當接收端  一個發送端的模式 
程式內容是我把它寫成在接收端上的13接腳 
接收到發送端的訊號 來亮燈   
當我寫好  兩個HC-05都連線了確 
但是就沒有動作 沒有反應 
 
因為剛入門  所以不知道該怎麼DEBUG   
所以求助各位專家 
 
發送端程式 
 
#include <SoftwareSerial.h>   // 引用程式庫 
  
// 定義連接藍牙模組的序列埠 
SoftwareSerial BT(8, 9); // 接收腳, 傳送腳 
char val;  // 儲存接收資料的變數 
  
void setup() { 
  Serial.begin(9600);   // 與電腦序列埠連線 
  Serial.println("BT is ready!"); 
  
  // 藍牙透傳模式的預設連線速率。 
  BT.begin(9600); 
} 
  
void loop() { 
  // 若收到「序列埠監控視窗」的資料,則送到藍牙模組 
  if (Serial.available()) { 
    val = Serial.read(); 
    BT.print(val); 
  } 
  
  // 若收到藍牙模組的資料,則送到「序列埠監控視窗」 
  if (BT.available()) { 
    val = BT.read(); 
    Serial.print(val); 
  } 
} 
 
 
接收端程式 
 
#include <SoftwareSerial.h>   // 引用程式庫 
  
// 定義連接藍牙模組的序列埠 
SoftwareSerial BT(8, 9); // 接收腳, 傳送腳 
char val;  // 儲存接收資料的變數 
const byte LED_PIN = 13;  // 定義LED腳位 
  
void setup() { 
  // 設定HC-05藍牙模組,AT命令模式的連線速率。 
  BT.begin(38400); 
  pinMode(LED_PIN, OUTPUT); 
} 
  
void loop() { 
  // 若收到藍牙模組的資料,則送到「序列埠監控視窗」 
  if (BT.available()) { 
    val = BT.read(); 
    if (val == '1') { 
      digitalWrite(LED_PIN, HIGH); 
      // 回應命令發送端,告知「已開燈」 
      BT.println("LED ON"); 
    } else if (val == '0') { 
      digitalWrite(LED_PIN, LOW); 
      // 回應命令發送端,告知「已關燈」 
      BT.println("LED OFF"); 
    } 
  } 
} |