arduino使用HC05蓝牙模块和手机通讯:手机通过蓝牙发送数据给arduino,arduino根据手机发送的数据控制一个灯的亮灭。
一、需要的材料:arduino 系列的板子(这里我用的是UNO板)、HC05蓝牙模块、蓝牙串口APP。
二、准备工作:
1、HC05蓝牙模块的参数设置:
关于HC05的参数设置大家可以去看下面的这个视频,设置起来并不难的:
我的参数是这样的:蓝牙模块名称:lanya 密码:1234
波特率:9600 设置主从:从机
2.arduino UNO板和Hc05的接线:
HC05 → UNO
VCC → VCC
GND → GND
RXD → 9
TXD → 8
按理说RXD和TXD应该对应接板子的TXD和RXD,这里我却没有接,为什么呢?这里我说明一下原因:
正常RXD和TXD如果接板子的TXD和RXD,那么在下载的时候就需要将蓝牙模块先拔掉,而且数据传输也会有影响,所以我使用软串口,模拟rx和tx接口,这样板子的下载和运行就不会受什么影响了,下面是程序的图片,看了就很清楚了:
软串口程序
3.程序图:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9);//rx,tx
char a;
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
//如果硬件串口有数据
if(Serial.available())
{
//从硬件串口读出一字节,写入软件串口
mySerial.write(Serial.read());
}
//如果软件串口有数据
if(mySerial.available()>0)
{
//从软件串口读出一字节,写入硬件串口
a=mySerial.read();
if( a=='1')
{
digitalWrite(13,HIGH);
mySerial.write("power on");
}
else if(a=='2')
{
digitalWrite(13,LOW);
mySerial.write("power off");
}
}
}
接收部分的程序是这样的:
串口接收程序
原理:串口首先判断是否接收到字符,如果接收到字符,判断字符是几,为1则点亮13号引脚的LED灯,为2则关闭13号引脚的LED灯。
4.用手机到应用商店里下载蓝牙串口的软件:
很多软件都可以,我下载的是红框的软件:
下载好之后,可以先点开手机的蓝牙,搜索HC05的蓝牙名称,点击连接,输入密码就行:(我的密码是1234)
打开软件之后可以看到,右上角有个连接
点击连接,可以看到我的HC05名称是蓝牙,点击就可以连接:
连接完成的图片:
连接好了之后就可以输入对应的1和2 ,就可以看到串口也输出了对应的字符
下面是亮灭的实际图:
亮
灭