用Arduino蓝牙模块控制LED的详细教程
创作时间:
作者:
@小白创作中心
用Arduino蓝牙模块控制LED的详细教程
引用
简书
1.
https://www.jianshu.com/p/fea4c20a4f2e
本文将详细介绍如何使用Arduino和蓝牙模块控制LED的亮灭和亮度调节。通过本教程,读者将学习到蓝牙模块的接线方法、代码编写以及与手机的通信方式。
工具准备
- Arduino开发板一块
- HC05或HC06蓝牙模块一个
- 杜邦线若干根
- USB通讯线一根
- Android手机一个
- 面包板一个
通信原理图
(此处省略具体原理图,实际应用中需要参考相关资料)
蓝牙模块引脚说明
(此处省略具体引脚说明,实际应用中需要参考模块说明书)
电路接线图
(此处省略具体接线图,实际应用中需要参考相关资料)
操作步骤
- 将Arduino控制板连接USB上电。
- 上传代码(代码见文末)
注意:上传代码时保证Arduino控制板上数字输入输出端0和1接口不接任何外接设备,否则无法上传。即先将程序上传至Arduino控制板再将HC-06连接在控制板的串口引脚上。 - 按照电路接线图接线,正确检查无误后连接USB上电。会看到蓝牙模块有红色指示灯闪烁。这时,打开智能手机,以Android手机为例。打开蓝牙开关并搜索找到相应的模块后如果是HC-06那么点击后连接配对,一般会要输入配对密码,一般为1234 或0000,输入后配对成功。
- 在手机端的蓝牙应用中与蓝牙模块连接,连接成功后红色指示灯常亮。此时便可以操作了。
注:蓝牙应用可在网上下载
代码实现
蓝牙模块控制LED的亮灭
char val;
int ledpin=11;
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
}
void loop()
{
val=Serial.read();
if(val=='0')
{
digitalWrite(ledpin,HIGH);
Serial.println("LED ON!");
}
else if(val=='1'){
digitalWrite(ledpin,LOW);
Serial.println("LED OFF!");
}
}
蓝牙模块控制LED的亮度(程序可能有问题)
int brightness; //LED亮度变量
int serialData; //串口数据变量
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
pinMode(11, OUTPUT);
}
void loop(){
if( Serial.available()>0 ){ //如果串口缓存有数据
serialData = Serial.parseInt(); //将串口缓存数值存储到serialData变量
Serial.print("serialData = "); Serial.println(serialData);
if (serialData >=0 && serialData <= 255) {
if (serialData >= brightness){ //逐渐调节LED亮度
for (brightness; brightness <= serialData; brightness++){
analogWrite(11, brightness);
Serial.print("brightness = "); Serial.println(brightness);
delay(5);
}
} else if (serialData < brightness){
for (brightness; brightness >= serialData; brightness--){
analogWrite(11, brightness);
Serial.print("brightness = "); Serial.println(brightness);
delay(5);
}
}
}
}
}
注:此代码以11号引脚为输出
补充:通过蓝牙模块实现Arduino与手机的通信,数据传输
- 线路连接图
TX接端口2,RX接端口3,电源接5V
- 连接成功后,在手机端输入数据即可在Arduino IDE上接收到,或者在Arduino IDE上输入数据即可在手机端接受到。
- 代码实现
#include <SoftwareSerial.h>
SoftwareSerial BTserial(2, 3); // 建立SoftwareSerial对象,RX引脚2, TX引脚3
void setup() {
Serial.begin(9600);
BTserial.begin(9600); // HC-06 默认波特率 9600
Serial.print("HC-06 DEMO/TEST ");
BTserial.print("AT"); //可在此处输入设置HC-06蓝牙模块的AT指令。
//此AT指令须在HC-06未连接蓝牙状态输入。
pinMode(11, OUTPUT);
}
void loop(){
// 通过串口监视器显示HC-06发送的数据
if( BTserial.available()>0 ){ //如果软件串口有HC-06发来的数据
char BTserialData = BTserial.read(); //将软件串口中的数据赋值给变量BTserialData
Serial.print( BTserialData ); //通过硬件串口监视器显示HC-06发来的数据
if (BTserialData == '1') { //判断HC-06发来的数据是否是字符1
digitalWrite(11, HIGH); //如果是字符1,则点亮LED
} else if (BTserialData == '0') { //如果不是字符0
digitalWrite(11, LOW); //则熄灭LED
}
}
// 将用户通过串口监视器输入的数据发送给HC-06
if (Serial.available()>0) { //如果硬件串口缓存中有等待传输的数据
char serialData = Serial.read(); //将硬件串口中的数据赋值给变量serialData
BTserial.print( serialData ); //将硬件串口中的数据发送给HC-06
}
}
- AT指令
(此处省略具体AT指令,实际应用中需要参考模块说明书)
热门推荐
从文本到图像:深度解析向量嵌入在机器学习中的应用
黄花菜的开花时间是什么时候?
十大知名浮水植物,榜首是入侵物种,诗经植物仅排第四(荇菜)
胃镜检查前禁食几小时
《五牛图》揭秘:韩滉笔下的牛,隐喻丰富的人生哲理与政治智慧
加味逍遥丸与谷维素同服的作用
四代传承绣出韶州风情!探秘韶关武江“狗牙绣”非遗技艺
DS-160在线表格填写2025,手把手教你
养心菜:健康之路的不二选择
薄皮甜瓜嫁接与施肥技术详解
巴西通胀预期上调!货币政策或进一步紧缩,利率或达15%
灯笼椒的种植方法和时间 种植技术及管理要点
美联储主席,重磅发声!回应降息时间点
八宝粥的功效与禁忌:食用过多真的有害吗?
一文读懂:血液的成分及主要功能
制作古代军用干粮:锅盔的详细步骤
制作古代军用干粮:锅盔的详细步骤
厦门鼓浪屿历史文化打卡路线推荐
从明清商埠吃到2025,这10样才是鼓浪屿美食DNA
阑尾炎手术后食谱怎么制定
雨水节气饮食怎么吃?中医教养生食谱「茯苓山药粥」3步骤健脾排湿
肝囊肿和肝癌的鉴别要点
Android 12桌面抽屉应用图标显示与排序自定义实现
目标:冥王星
目标:冥王星
春天宜养心,推荐十款养心菜可以多吃,低卡控油,清淡营养护心脏
四季观星指南
喝中药加白糖有影响吗
内向如何融入团队
利伐沙班片的功效