2020-02-20

[筆記]Arduino與HC-06藍芽遠端控制WS2812B - [1] Arduino與HC-06

最近有個需求,有兩位美女需要能夠遠端控制RGB彩色燈條,讓他們閃爍及調整顏色。由於一般市面上RGB幻彩燈條都需要由控制器來控制,但常見的控制器一次都只能控制一條,而我們需要的效果要由兩條燈條來完成:兩條不同顏色、其中一條要有呼吸效果、兩條需要同時開和關,這樣就必須有兩個控制器、兩台手機來連接,而且控制器上的效果又不符合我想要的,剛好我喜歡在油管看看DIY的影片,現在蠻紅的Arduino是個很棒的東西,可以自訂各個接腳的功用,也可以連接各種外接設備,實在是太符合我的要求啦!!覺得自己硬幹一台好像也不是問題,於是這個專案就誕生了...


需求:

  1. 由一台手機操控兩條不同的RGB燈條
  2. 效果由自己設定(很簡單,一條固定單色,另一條也固定單色但要有滑順穩定的呼吸效果)
  3. 同時開關


第一步,我們必須先讓Arduino和藍芽接收器結合,所以就準備了一台Arduino Micro、一台HC-06藍芽接收器,趕快來讓他們合體吧!!

介紹一下為什麼我會選Arduino Micro和HC-06。因為我要體積小,所以只能選Micro(其實還有Nano,但他的USB接頭是Mini USB,現在已經快淘汰了,而且我絕對不會說蝦皮上買到的Nano不是原廠出的,而Micro可以買到原廠的,用IDE燒錄程式比較順利)。藍芽接收設備有HC-05和HC-06,HC-05功能較多,但我只需要單純的接收由手機傳來的資料,所以買便宜一些些的HC-06就好了。

好了之後就來看一下接線圖:

由於Arduino Micro提供了另外一組獨立的Serial Tx/Rx,所以我們可以不用插在Digital Pin,直接將HC-06的Tx接在Arduino的Rx,HC-06的Rx接在Arduino的Tx。
注意!!有看到那顆1k電阻嗎?因為HC-06的Tx/Rx最高只接受3.3V的電壓,而Arduino的輸出可能會達5V,為了怕燒壞HC-06,所以我們接了顆1k的限流電阻,意義跟LED的限流電阻一樣避免高電壓直接進入元件。

接好了之後就可以開啟Arduino IDE來編寫簡單的程式連線到HC-06,看看功能是否正常了!
底下是程式碼:

//使用Arduino Micro,Serial1使用獨立街口RX/TX
//上傳程式到Arduino時,請斷開與HC-06的連線

void setup() {
  Serial.begin(9600);
  while(!Serial){
    //(重要)等待開啟Serial Port才可繼續下一步
  }
  Serial.println("Serial準備好了");

  // 設定藍牙模組的連線速率(Arduino Micro提供另一組名為Serial1的序列埠,可直接使用Tx/Rx接腳
  // 如果是HC-05,請改成38400
  Serial1.begin(9600);
  while(!Serial1){
    //(重要)等待開啟Serial1 Port才可繼續下一步
  }
  Serial.println("Serial1準備好了");
}

void loop() {
  // 若收到「序列埠監控視窗」的資料,則送到藍牙模組
  if (Serial.available()){
    Serial1.print(Serial.read());
  }
 
  // 若收到藍牙模組的資料,則送到「序列埠監控視窗」
  if (Serial1.available()) {
    Serial.print(Serial1.read());
  }
}

好了之後就可以上傳到Arduino內,注意在上傳前,先把Arduino上連接到HC-06的Tx/Rx接線拔掉,等上傳完成之後再插上,避免HC-06損壞。

上傳完成之後,Reset Arduino,接著打開IDE上的「序列埠監控視窗」,若連接正確,應該可看到底下畫面:

兩個序列埠都正常開啟的話就會顯示Serial is ready與Serial1 is ready。接著我們就可以輸入AT指令看看HC-06功能是否正常,但在對HC-06輸入指令前須注意底下兩者必須選擇正確:

接著就可在上方文字框輸入AT,再按下enter或是右邊傳送鈕,沒意外的話應該可以看到下方會回應OK:

這樣就代表我們Arduino與HC-06連接正常啦!!!還有一些AT指令也可以使用:

  • AT+NAMEXYZ:將HC-06名稱改為XYZ
  • AT+PIN8787:將連線密碼改為8787

注意上面指令和參數是要連在一起的

還有一點,HC-06在通電之後,但還未被藍芽連線之前,狀態燈是會快速閃爍,要在此狀態下才能執行AT指令。

Arduino與HC-06連接沒問題之後,接著就準備增加我們需要的電路囉!

註:這篇文章只是我對這個控燈專案的一個筆記,所以只會介紹重點部分,對於各硬體的介紹網路有很多文章可以參考~

--
相關文章:
[筆記]Arduino與HC-06藍芽遠端控制WS2812B - [2] 控制Relay


--
參考資料:
HC-05與HC-06藍牙模組補充說明(一)
HC-05與HC-06藍牙模組補充說明(二):連接電路
HC-05與HC-06藍牙模組補充說明(三):使用Arduino設定AT命令


1 則留言:

  1. If you're attempting to lose weight then you have to start following this brand new custom keto diet.

    To create this keto diet service, certified nutritionists, fitness trainers, and professional cooks have joined together to produce keto meal plans that are powerful, convenient, economically-efficient, and fun.

    From their grand opening in January 2019, 1000's of people have already completely transformed their body and well-being with the benefits a proper keto diet can give.

    Speaking of benefits: clicking this link, you'll discover 8 scientifically-certified ones provided by the keto diet.

    回覆刪除