上周鼓捣 Deepin 系统去了,就没认真学习,发文章。这周学习的是蓝牙模块的使用。实现蓝牙模块控制 LED 的开关。蓝牙模块的用处很多,主要用于数据的传输,可以通过其和传感器的联合使用,收集一些需要的数据并传到电脑上进行处理。
设置蓝牙
本人使用的蓝牙模块是 HC-05,由实验室的小伙伴友情提供。因为是他人使用过的,所以得进行初始化设置。
- 进入 AT 模式:具体参考这篇文章:Arduino使用HC05蓝牙模块与手机连接
- AT 模式的一些命令:
进入 AT 模式后,重新设置名称和密码,并将蓝牙设置为从模式,因为这个项目中,手机是主机。
1 | AT+ORGL # 恢复出厂模式 |
硬件准备
- Arduino UNO 一个
- 蓝牙模块 HC-05 一个
- Android 手机
- LED 一个
- LCD 一块
- 面包板一块
- 连接线若干
软件准备
- Arduino IDE
- 在 Google APP Store 或者其他安卓市场下载 Arduino Bluetooth controler app
电路连接
LCD 的连线:VCC ——> 5V,GND ——> GND,SDA ——> A4,SCL ——> A5
LED 的连线:长脚 ——>先接个电阻,再连接 13,短脚 ——> GND
蓝牙的连线:VCC ——> 5V,GND ——> GND,RXD ——> TXD,TXD ——> RXD,这里需要注意蓝牙的 RXD 要与 Arduino 的 TXD 连接,TXD 要与 Arduino 的 RXD 连接,两者是交错连接的。同时在烧录的时候,注意断开 TXD 和 RXD 的连接,要不然烧录的时候会受到干扰,继而会报错。
实现代码
Arduino_Learning/BluetoothControlLed
1 | /* |
烧录代码
代码编译完没问题后,点击图中所选按钮将其上传至 Arduino UNO 板上。
手机设置
手机搜索蓝牙,输入密码并连接。
之后选择
Switch mode
。对按键进行设置。
点击 APP 上的开关,就能够实现控制 LED 了。
实际结果
LED 打开:
LED 关闭:
心得总结
昨天晚上鼓捣了很久,都没有出现正确的结果,后来才发现,控制 LED 开关的时候波特率设置成了 38400,应该设置成 9600。而 38400 这个波特率是进入 AT 模式的波特率。这个也是一个需要注意的点。还有一个需要注意的就是烧录的时候一定要断开 TXD 和 RXD 的连接,要不然烧录会受到干扰,这个问题也困扰了我很久。
参考文章
[2]. Arduino and HC-05 Bluetooth Module Tutorial
[3]. Arduino蓝牙模块HC-06错误