关于蓝牙模块的简易小车(基于51单片机)
很早之前玩过一次蓝牙模块,但最近在进行项目制作的时候对于蓝牙模块的使用有些生疏,所以写下自己学习蓝牙模块的一些心得,作为学会总结的第一步。
一、HC-05蓝牙模块及其引脚连接
二、使用步骤
1.蓝牙模块配对
首先通过蓝牙模块与USB转TTL模块连接,RXD-TXD,TXD-RXD,VCC-VCC,GND-GND
将蓝牙模块和USB转TTL模块相连后,按住蓝牙模块上的按键,将USB转TTL模块插入电脑的USB口,松开蓝牙模块上的按键,此时蓝牙会慢闪,即进入了AT模式(即调试模式)
然后用串口调试助手进行配对(串口助手:链接:https://pan.baidu.com/s/1-_Lv6FH7s4RTp-QTyfeBYQ
提取码:wewt )
1.选择正确的COM口,波特率设为38400(固定的)
2.校验位无,数据位8,停止位1,点击打开串口(主要选择正确的com端口,其他填空默认)
3. 正确打开串口后,点击左侧AT指令,若接收窗口返回ok,则该蓝牙正常进入了AT模式,可以继续进行下面的配置。
4. 设置从机,若接收窗口返回ok,则设置成功。
5. 点击设置模式后会自动设为模式1,由于我们需要蓝牙一对一传输,所以将右侧发送区AT+CMODE=1改为AT+CMODE=0,注意末尾有回车,点击手动发送,即可改为模式0
6. 接着点击设置波特率,默认9600,如需更改,只需将9600改为需要的即可,同样发送区末尾需要有回车,点击手动发送。
7. 可以设置名称,这样连接蓝牙模块的时候好找。
8. 其他的可以根据自己需要进行设置。
2.设置串口
相关代码
void USART()
{
SCON=0X50; //SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志
TMOD=0X20;
PCON=0X00;
TH1=0Xfd;
TL1=0Xfd; //波特率为9600算出来的fd,可以使用单片机小精灵进行计算初值,有需要单片机小精灵的可以留言获取
TR1= 1;
ES = 1;
EA = 1;
}
void USART_Int(void) interrupt 4
{
uchar receive_data;
EA = 0;
if(RI == 1)
{
RI=0;
IN1=0;
IN2=0;
IN3=0;
IN4=0;
receive_data = SBUF;
switch(receive_data)
{
case ('1'):
forward();break;
case ('2'):
back();break;
case ('3'):
left();break;
case ('4'):
right();break;
case ('0'):
stop();break;
}
}
EA = 1;
}
3.小车驱动部分代码
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
//自己定义引脚
sbit IN1 = P1^4; //为1 左电机正转
sbit IN2 = P1^3; //为1 左电机反转
sbit IN3 = P1^2; //为1 右电机反转
sbit IN4 = P1^1; //为1 右电机正转
void stop()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
void forward()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
void back()
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
}
void left()
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
}
void right()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
4.主函数调用
void main()
{
USART();
while(1);
}
5.手机控制端配对蓝牙模块
可以在应用市场下载蓝牙调试器,好用也方便
找到自己设置蓝牙模块的名称
然后点击图中的按钮进行设置,根据代码编写的发送串口的值,例如上面代码显示,1,2,3,4,5发送后各表示不同的功能。
,
因为我们按钮按下与松开发送值一样,则设置一样的值就行。
三、小结
通过对蓝牙模块的学习,让我明白了知识要温故而知新,学一遍学会了只是暂时性的,要时常往回看,不然新的知识会掩盖之前学的不牢的知识,而且要善于总结!!!蓝牙模块首先要通过串口助手进行初始化设置,然后通过蓝牙调试器进行与蓝牙配对,根据自己所编写的代码对按键进行设置值,代码编写的时候要理解串口通信的功能,不然照抄不理解代码这么写的话最后面还是会遗忘。
首次以博客的形式来记录自己的一些所学,写的有些勉强,还有待提高,有不足的地方大家也可以指出。
***学习从零开始,到无穷结束***
,