Arduino 代碼同 HC-06 藍牙 AC 燈膽影片
喺呢個教學入面,我哋會探討點樣用HC-06藍牙模組同Arduino嚟控制一個AC燈膽。呢個項目容許你透過藍牙連接嘅裝置發送指令嚟開關燈膽。呢個遙距控制功能令到佢成為一個實用又有趣嘅項目,啱晒想將藍牙功能整合入Arduino項目嘅初學者。

跟住呢個教學列出嘅步驟,你就可以設定硬件、寫程式,然後由你嘅智能手機或平板電腦控制盞燈。如果你需要進一步嘅澄清,記得睇吓同呢個教學相關嘅影片(影片喺0:00)。
硬件解說
呢個項目嘅主要組件包括HC-06藍牙模組、一塊Arduino板,同埋一個用嚟控制AC燈膽嘅繼電器模組。HC-06模組負責建立藍牙連接,令你嘅裝置可以無線同Arduino通訊。佢有四個針腳:VCC(電源)、GND(接地)、TX(傳送)同RX(接收)。
繼電器模組充當一個開關嚟控制AC燈膽。佢連接去燈膽嘅電源線,容許佢根據從Arduino收到嘅訊號嚟接通電路(開燈)或者斷開電路(關燈)。Arduino就係成個操作嘅大腦,負責解讀從藍牙模組發送嚟嘅指令,並相應咁控制繼電器。
數據表細節
| 製造商 | HC |
|---|---|
| 零件編號 | HC-06 |
| 邏輯/IO電壓 | 3.3 V – 6 V |
| 供電電壓 | 3.3 V – 6 V |
| 輸出電流(每通道) | 20 mA |
| 峰值電流(每通道) | 50 mA |
| PWM頻率指引 | 唔適用 |
| 輸入邏輯閾值 | 0.2 V(低)/ 0.7 V(高) |
| 電壓降 / RDS(on) / 飽和 | 0.5 V |
| 熱限制 | 85 °C |
| 封裝 | 模組 |
| 備註 / 變體 | 藍牙2.0 |
- 確保電壓水平正確,以免損壞模組。
- 如果模組用喺高負載應用,就要用適當嘅散熱。
- 保持TX同RX針腳正確連接,以免出現通訊問題。
- 再三檢查繼電器規格,以配合AC燈膽嘅電壓同電流額定值。
- 處理AC電壓時要實施適當嘅隔離,以加強安全。
接線指示

要將HC-06藍牙模組同繼電器接線到Arduino,首先將HC-06嘅VCC針腳連接去Arduino嘅5V針腳,然後將GND針腳連接去Arduino嘅接地。跟住將HC-06嘅TX針腳連接去Arduino嘅數碼針腳10,RX針腳就連接去數碼針腳11。呢個設定容許Arduino同藍牙模組通訊。
至於繼電器模組,將控制針腳(通常標示為IN)連接去Arduino嘅數碼針腳2。繼電器嘅VCC針腳都應該連接去5V電源,接地針腳就去共同接地。確保將AC燈膽嘅電線連接去繼電器嘅常開(NO)同共同(COM)端子,先可以有效咁控制燈膽嘅電源。
程式碼示例同講解
Arduino程式一開始就包含SoftwareSerial程式庫,呢個容許喺其他數碼針腳上進行串列通訊。藍牙模組初始化時,TX針腳連接去針腳10,RX針腳連接去針腳11:
SoftwareSerial BT(10, 11); // 建立一個「虛擬」串列埠/UART
呢個設定令Arduino可以有效咁同HC-06模組通訊。繼電器嘅控制針腳定義如下:
#define SW 2 // 將針腳2定義為控制針腳
setup()函數初始化藍牙連接,並將繼電器控制針腳設定為輸出:
void setup() { pinMode(SW, OUTPUT); BT.begin(9600); }
喺loop()函數入面,Arduino檢查有冇收到藍牙指令。如果收到'1',繼電器就會啟動嚟開燈:
if (a=='1') { digitalWrite(SW, LOW); BT.println("Light on"); }
相反,如果收到'2',繼電器就會停用嚟關燈:
if (a=='2') { digitalWrite(SW, HIGH); BT.println("Light off"); }
如果想知更多細節同完整程式碼,請參考文章下面載入嘅完整程式。
示範 / 預期效果
當所有嘢正確設定好之後,你就可以用藍牙指令嚟開關AC燈膽。輸入'1'會開燈,輸入'2'就會關燈。喺發送指令之前,確保你嘅藍牙裝置已經同HC-06模組配對。如果指令冇被識別,檢查吓你嘅接線,並確保HC-06正確連接(影片喺3:30)。
影片時間戳
- 00:00 - 項目介紹
- 01:45 - 硬件設定
- 04:30 - 程式碼解說
- 06:15 - 應用程式示範
- 08:00 - 疑難排解貼士
/*
* This is the Arduino code for the HC-06 Bluetooth module
* to measure the distance using Arduino for a robotic car and other applications
* Watch the video https://youtu.be/-E9J9ExdZ20
*
* Written by Ahmad Nejrabi for Robojax Video
* Date: January 1, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
// original source code: https://github.com/tronixlabsAU/HC06
#include <SoftwareSerial.h>
SoftwareSerial BT(10, 11);
// creates a "virtual" serial port/UART
// connect BT module TX to D10
// connect BT module RX to D11
// connect BT Vcc to 5V, GND to GND
#define SW 2 // define pin 2 as control pin
// by Robojax for Robojax.com, January 1, 2018
void setup()
{
// set digital pin to control as an output
pinMode(SW, OUTPUT);
// set the data rate for the SoftwareSerial port
BT.begin(9600);
// Send test message to other device
BT.println("Hello from Arduino");
}
char a; // stores incoming character from other device
void loop()
{
if (BT.available())
// if text arrived from BT serial...
{
a=(BT.read());
if (a=='1')
{
digitalWrite(SW, LOW);// Turn LIGHT ON
BT.println("Light on");
}
if (a=='2')
{
digitalWrite(SW, HIGH);// Turn LIGHT OFF
BT.println("Light off");
}
if (a=='?')
{
BT.println("Send '1' to turn LIGHT on");
BT.println("Send '2' to turn LIGHT off");
}
}
}
你可能需要嘅嘢
-
亞馬遜
資源與參考資料
-
外部HC-06 Bluetooth code on GitHubgithub.com
文件📁
Fritzing 文件
-
Bluetooth HC-06 Male fritzing
Bluetooth HC-06 Male.fzpz0.04 MB