Arduino 蓝牙模块 HC-05(ZS-040)

Arduino 蓝牙模块 HC-05(ZS-040)

1、蓝牙模块:HC-05(ZS-040)

2、Arduino 代码:

#define BTSerial  Serial3
#define DEBUGSerial Serial

#define LED_R 2
#define LED_G 3
#define LED_B 4

#define LED_ON 	LOW
#define LED_OFF HIGH

const unsigned int BTRxBufferLength = 100;
char BTRxBuffer[BTRxBufferLength];
unsigned int BTBufferCount = 0;


void setup()	//初始化内容
{
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(LED_B, OUTPUT);

  digitalWrite(LED_R, LED_OFF);
  digitalWrite(LED_G, LED_OFF);
  digitalWrite(LED_B, LED_OFF);

  BTSerial.begin(9600); // 定义波特率9600
  DEBUGSerial.begin(9600);
  DEBUGSerial.println("http://chanpinxue.cn");
  DEBUGSerial.println("Wating...");
}

void loop()		//主循环
{
  while (BTSerial.available()) {
    char buffer =  BTSerial.read();

    BTRxBuffer[BTBufferCount++] = buffer;
    if (BTBufferCount == BTRxBufferLength)clrRxBuffer();

    DEBUGSerial.write(buffer); // 收到数据则通过Serial输出
  }

  if (strstr(BTRxBuffer, "RON") != NULL)
  {
    digitalWrite(LED_R, LED_ON);
    clrRxBuffer();
  }
  else if (strstr(BTRxBuffer, "ROFF") != NULL)
  {
    digitalWrite(LED_R, LED_OFF);
    clrRxBuffer();
  }

  if (strstr(BTRxBuffer, "GON") != NULL)
  {
    digitalWrite(LED_G, LED_ON);
    clrRxBuffer();
  }
  else if (strstr(BTRxBuffer, "GOFF") != NULL)
  {
    digitalWrite(LED_G, LED_OFF);
    clrRxBuffer();
  }

  if (strstr(BTRxBuffer, "BON") != NULL)
  {
    digitalWrite(LED_B, LED_ON);
    clrRxBuffer();
  }
  else if (strstr(BTRxBuffer, "BOFF") != NULL)
  {
    digitalWrite(LED_B, LED_OFF);
    clrRxBuffer();
  }

}

void clrRxBuffer(void)
{
  memset(BTRxBuffer, 0, BTRxBufferLength); // 清空
  BTBufferCount = 0;
}

3、Android端:
用蓝牙调试助手,连接蓝牙模块BT04-A(默认工作在 从模式,接收指令)。蓝牙配对密码为1234。
连接成功后,发送RON、GON、BON指令,观看小灯亮灯效果。

发表回复

您的电子邮箱地址不会被公开。