实验目标:使用手机的蓝牙功能控制LED灯,单片机使用arduino UNO。
物料准备: 单片机arduino UNO 1个;

蓝牙模块HC-05 1个;

串口模块 1个;

LED灯 1个

一、用串口模块配置HC-05蓝牙模块,把蓝牙模块通过串口助手连接于笔记本电脑。

二、蓝牙模块上有个按键,手按着它再通电,这样蓝牙模块进入配置模式。 此时灯闪的频率很慢。
三、在笔记本上打开串口助手。笔者用的是SSCOM V5.
在加回车换行前打勾。
发送以下指令。

四、最后一个指令 AT+RESET蓝牙模块就退出配置模式了。
五、单片机Arduino编程。
#include <SoftwareSerial.h> // 包含软串口库
// 定义软串口引脚 (RX, TX)
SoftwareSerial BT(10, 11); // HC-05的TX接Arduino的Pin2,RX接Pin3
// LED引脚定义
const int ledPin = 13;
char btData; // 存储蓝牙接收的数据
void setup() {
// 初始化硬件串口(用于电脑调试)
Serial.begin(38400);
// 初始化软串口(用于蓝牙模块)
BT.begin(38400); // HC-05默认波特率9600
// 设置LED引脚
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// 打印启动信息
Serial.println("=== Bluetooth LED Control System ===");
Serial.println("System initialized successfully!");
Serial.println("Bluetooth module is ready.");
Serial.println("Send commands via Bluetooth:");
Serial.println(" '1' - Turn ON LED");
Serial.println(" '0' - Turn OFF LED");
Serial.println(" '?' - Get status");
Serial.println("==============================");
// 也向蓝牙模块发送欢迎信息
BT.println("Bluetooth Connected!");
BT.println("Send commands:");
BT.println("1 - LED ON");
BT.println("0 - LED OFF");
BT.println("? - Status");
}
void loop() {
// 检查蓝牙是否有数据
if (BT.available() > 0) {
btData = BT.read(); // 读取蓝牙数据
// 打印接收到的数据到串口监视器
Serial.print("Bluetooth received: ");
Serial.println(btData);
// 处理命令
processCommand(btData);
}
// 检查串口监视器是否有数据(从电脑发送到蓝牙)
if (Serial.available() > 0) {
char dataFromPC = Serial.read();
BT.write(dataFromPC); // 转发到蓝牙模块
Serial.print("Sent to Bluetooth: ");
Serial.println(dataFromPC);
}
}
void processCommand(char cmd) {
switch(cmd) {
case '1': // 打开LED
digitalWrite(ledPin, HIGH);
BT.println("LED turned ON");
Serial.println("LED: ON");
break;
case '0': // 关闭LED
digitalWrite(ledPin, LOW);
BT.println("LED turned OFF");
Serial.println("LED: OFF");
break;
case '?': // 查询状态
BT.print("LED status: ");
BT.println(digitalRead(ledPin) ? "ON" : "OFF");
Serial.print("LED status: ");
Serial.println(digitalRead(ledPin) ? "ON" : "OFF");
break;
default: // 未知命令
BT.println("Unknown command. Use: 1, 0, ?");
Serial.println("Unknown command received");
break;
}
}
六、把单片机、蓝牙模块、串口模块、LED灯连接好。

七、打开手机上的蓝牙APP,使用如下图的蓝牙模块,它可以搜索到经典蓝牙。
八、打开蓝牙APP,搜索蓝牙,连接上蓝牙模块,再发送1.

九、此时LED灯就亮了。
