通过Arduino与蓝牙控制

本文蓝牙采用的是HC-05蓝牙模块,该模块为主从一体、民用级的。

通过Arduino与蓝牙控制_第1张图片
蓝牙模块(非HC-05)


主从一体模块与从模块区别

“主从一体模块”:就是可以发出配对请求,又可以接受配对请求的。

“从模块”:就是只能接受配对请求而不能发出配对请求。

除了HC-05模块,还有HC-06等双数的从模块蓝牙。其中BT-06/HC-06蓝牙模块均为从体、民用级。

主从一体模块与从模块代表型号

主从一体:HC-03(工业级)、HC-05(民用级)

从机:HC-04(工业级)、HC-06(民用级)

HC-05蓝牙模块使用具体方法

接线:

两个数据口,一个叫RXD(接收),一个叫做TXD(发送)。

蓝牙R与电脑或手机T接

蓝牙T与电脑或手机R接

HC-05电压5v

HC-06电压3.3v

通过Arduino与蓝牙控制_第2张图片
连线图

原理:

Pc端数据通过两个蓝牙通信传输,到单片机蓝牙上,该蓝牙通过T端将数据发送给单片机。反之亦然。

方法:

手机:手机下载蓝牙串口助手,配对密码一般为0000/1234

发送指令返回到手机上

电脑:1.蓝牙转串口模块(USB转TTL)

通过Arduino与蓝牙控制_第3张图片
USB转TTL

          2.蓝牙适配器  利用驱动程序使两个蓝牙配对 较麻烦

程序(控制灯)



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");

  }

  }

}



程序(串口监视器)



void setup()

{

Serial.begin(38400);

}

void loop()

{

  while(Serial.available())

  {

    char c=Serial.read();

      if(c=='A')

        {

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

        }

  }

}



程序(控制电机)



int in1=7;

int in2=8;

int in3=9;

int in4=10;

//上面定义了板上的4个控制端,12一组,34一组

int E1=6;

int E2=5;

//上面定义了PWM引脚

int led=4;

void setup()

{

Serial.begin(9600);

pinMode(in1,OUTPUT);

pinMode(in2,OUTPUT);

//下面程序开始时让控制端都为高电平,电机保持不动。

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)//前进

{  analogWrite(E1,150);

digitalWrite(pin1,LOW);

digitalWrite(pin2,HIGH);

}

void _mStop(int pin1,int pin2)//紧急制动

{

digitalWrite(pin1,HIGH);

digitalWrite(pin2,HIGH);

}

void _mLeft(int pin1,int pin2)//左转

{

digitalWrite(pin1,LOW);

digitalWrite(pin2,HIGH);

}

void _mRight(int pin1,int pin2)// 右转

{

  digitalWrite(pin1,LOW);

  digitalWrite(pin2,HIGH);

}

void _mSetSpeed(char a, char b)//设定速度

{ 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

你可能感兴趣的:(通过Arduino与蓝牙控制)