通過Arduino與藍(lán)牙控制

本文藍(lán)牙采用的是HC-05藍(lán)牙模塊,該模塊為主從一體、民用級(jí)的。

藍(lán)牙模塊(非HC-05)


主從一體模塊與從模塊區(qū)別

“主從一體模塊”:就是可以發(fā)出配對(duì)請(qǐng)求,又可以接受配對(duì)請(qǐng)求的。

“從模塊”:就是只能接受配對(duì)請(qǐng)求而不能發(fā)出配對(duì)請(qǐng)求。

除了HC-05模塊,還有HC-06等雙數(shù)的從模塊藍(lán)牙。其中BT-06/HC-06藍(lán)牙模塊均為從體、民用級(jí)。

主從一體模塊與從模塊代表型號(hào)

主從一體:HC-03(工業(yè)級(jí))、HC-05(民用級(jí))

從機(jī):HC-04(工業(yè)級(jí))、HC-06(民用級(jí))

HC-05藍(lán)牙模塊使用具體方法

接線:

兩個(gè)數(shù)據(jù)口,一個(gè)叫RXD(接收),一個(gè)叫做TXD(發(fā)送)。

藍(lán)牙R與電腦或手機(jī)T接

藍(lán)牙T與電腦或手機(jī)R接

HC-05電壓5v

HC-06電壓3.3v

連線圖

原理:

Pc端數(shù)據(jù)通過兩個(gè)藍(lán)牙通信傳輸,到單片機(jī)藍(lán)牙上,該藍(lán)牙通過T端將數(shù)據(jù)發(fā)送給單片機(jī)。反之亦然。

方法:

手機(jī):手機(jī)下載藍(lán)牙串口助手,配對(duì)密碼一般為0000/1234

發(fā)送指令返回到手機(jī)上

電腦:1.藍(lán)牙轉(zhuǎn)串口模塊(USB轉(zhuǎn)TTL)

USB轉(zhuǎn)TTL

? ? ? ? ? 2.藍(lán)牙適配器? 利用驅(qū)動(dòng)程序使兩個(gè)藍(lán)牙配對(duì) 較麻煩

程序(控制燈)



int led=4;

void setup()

{

Serial.begin(9600);

}

void loop()

{

? while(Serial.available())

? {

? ? char c=Serial.read();

? ? ? if(c=='A')

? ? ? ? {

? ? ? ? ? Serial.println("Hello I am amarino");

? ? ? ? ? digitalWrite(led,HIGH);

? ? ? ? }

? ? ? else{digitalWrite(led,LOW);

? ? ? ? ? Serial.println("You idle");

? }

? }

}



程序(串口監(jiān)視器)



void setup()

{

Serial.begin(38400);

}

void loop()

{

? while(Serial.available())

? {

? ? char c=Serial.read();

? ? ? if(c=='A')

? ? ? ? {

? ? ? ? ? Serial.println("Hello I am amarino");

? ? ? ? }

? }

}



程序(控制電機(jī))



int in1=7;

int in2=8;

int in3=9;

int in4=10;

//上面定義了板上的4個(gè)控制端,12一組,34一組

int E1=6;

int E2=5;

//上面定義了PWM引腳

int led=4;

void setup()

{

Serial.begin(9600);

pinMode(in1,OUTPUT);

pinMode(in2,OUTPUT);

//下面程序開始時(shí)讓控制端都為高電平,電機(jī)保持不動(dòng)。

digitalWrite(in1,HIGH);

digitalWrite(in2,HIGH);

}

void loop()

{

while(Serial.available())

{? ? char c=Serial.read();

if(c=='ahead')

{

Serial.println("Ahead");

_mAhead(in1,in2);

_mAhead(in3,in4);

}

if(c=='back')

{

Serial.println("Back");

_mBack(in1,in2);

_mBack(in3,in4);

}

if(c=='stop')

{

Serial.println("Stop");

_mStop(in1,in2);

_mStop(in3,in4);

}

if(c=='left')

{

Serial.println("DownAhead");

_mLeft(in1,in2);

_mStop(in3,in4);

}

if(c=='right')

{

Serial.println("DownBack");

_mStop(in1,in2);

_mRight(in3,in4);

}

else

{

digitalWrite(led,HIGH);

Serial.println("You idle");

}

}

}

void _mBack(int pin1,int pin2)//后退

{

digitalWrite(pin1,HIGH);

digitalWrite(pin2,LOW);

}

void _mAhead(int pin1,int pin2)//前進(jìn)

{? analogWrite(E1,150);

digitalWrite(pin1,LOW);

digitalWrite(pin2,HIGH);

}

void _mStop(int pin1,int pin2)//緊急制動(dòng)

{

digitalWrite(pin1,HIGH);

digitalWrite(pin2,HIGH);

}

void _mLeft(int pin1,int pin2)//左轉(zhuǎn)

{

digitalWrite(pin1,LOW);

digitalWrite(pin2,HIGH);

}

void _mRight(int pin1,int pin2)// 右轉(zhuǎn)

{

? digitalWrite(pin1,LOW);

? digitalWrite(pin2,HIGH);

}

void _mSetSpeed(char a, char b)//設(shè)定速度

{ analogWrite (E1, a);

analogWrite (E2, b);

}



參考:

http://blog.csdn.net/sjyhehe/article/details/39700575

http://www.ijiandao.com/tech/geek/1100.html

http://tieba.baidu.com/p/2365821805

http://www.eeboard.com/bbs/thread-35513-1-1.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容