淘寶買了一個BT module HC-06,花了大約20塊人民幣。我想先做個最簡單的功
能,也就是控制LED。由於還不會寫Android程式,所以先用PC內建的BT來做控
制。我在PC上的終端機,在BT的com port也就是UART,輸入L (light) or D (dark)
字元,然後透過BT傳送到Arduino板子的UART port,當Arduino板子接收到L or D
字元,就會去控制LED的亮暗。
1.由於寫程式需要用到UART port來燒錄,需要先將Arduino UART port接到 USB
to UART的轉板,然後燒錄下面的程式。BT module對於Arduino的板子來說,
只是一個UART介面的IC,所以Arduino MCU都是用Serial的函式來與BT module
溝通。由於HC-06預設的Baud rate是9600bps,所以MUC需要用9600bps來跟
HC-06來跟它溝通。另外我用到Arduino板子上的綠光LED,當MCU接收到"L"
就將ledPin設置為1,LED就會亮。當接收到"D",就將ledPin設置為0,LED就會
暗。
const int ledPin = 13;
int incomingByte = 0;
void setup()
{
// open a serial connection
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
Serial.println("Control start, please press L or D");
}
void loop()
{
while (Serial.available())
{
incomingByte=Serial.read();
if ( incomingByte=='L')
{
digitalWrite(ledPin, 1);
Serial.println("Turn on LED");
}
else if ( incomingByte=='D')
{
Serial.println("Turn off LED");
digitalWrite(ledPin, 0);
}
else
{
Serial.println("Wrong input");
}
}
}
2.程式燒錄完後,就可以連接Arduino板子與HC-05,這時你的Arduino板子已經脫離
你的PC了。我們只需要接VCC,GND,TXD,RXD 4條線,注意module的TXD要接到
Arduino板子的RXD,module的RXD要接到Arduino板子的TXD。最後再供外部電
源5V或3.3V給VCC pin,等於是同時供電給Arduino板子與HC-06。
3.最後我們打開電腦的BT,可以看到您附近有那些BT device,我們選擇連接到
HC-06後,開啟終端機,就可以看到有一個Bluetooth serial port的選項,點選
"OK"後,就會出現終端機畫面,這時你輸入keyboard的L或D會出現訊息,而
LED也會隨著亮或暗。
注:如果要修改BT module的設定,需要用AT command。我們用USB to UART轉板
連接到BT module,只需要VCC,GND,TXD,RXD四條線,然後進到終端機模式
輸入左邊第一排的command就可以來修改BT module的設定。例如輸入"
AT+PIN1234"就是設定BT module的密碼為"1234",Baud rate也可以修改。
command
|
response
|
effect
|
AT+VERSION
|
OKlinvorV1.6
|
Gets the version info, no changes
|
AT+NAMExyz
|
OKsetname
|
Sets the module name to "xyz"
|
AT+PIN1234
|
OKsetPIN
|
Sets the module PIN to 1234
|
AT+BAUD7
|
OK57600
|
Sets the baud rate to 57600
|
Reference:
1.http://wiki.mikrokopter.de/en/HC-06