哔哩哔哩项目展示视频:https://www.bilibili.com/video/BV1Wy4y1z7a5
csdn资料链接:https://download.csdn.net/download/mbs520/13124051
百度网盘资料链接:https://pan.baidu.com/s/1p93c_CG3TJvcAXAENR_X0g
提取码:dwe2
取走记得点赞哟!
化作尘百度网盘下载中心:
一、材料准备
1、电机选择
名称:霍尔编码电机
型号:620转12V
这里用直流电机即可,这个贵,网上搜直流减速电机,最好带个轮子,方便安装
2、小车框架
博主这个就直接锯木板了
或者直接购买智能小车底盘
3、主控芯片选择
名称:STC89C52单片机最小系统板
购买链接:https://m.tb.cn/h.43JCfUl?sm=0792c6
4、电机驱动
名称:LN298
特点:驱动电流大,工作稳定,就是比较费电
5、电源
名称:18650锂电池
特点:比较便宜,比较常见
电压:3.7V
(我的是废充电宝下拆下的,比较丑)
6、蓝牙模块
名称:HC-05
特点:能连接手机
二、电路原理
电路原理图(看不清请下载资料)
注意:298的 +12V 引脚是输入,+5V 引脚是5V输出
单片机供电由298稳压供电
按图连接好
三、源代码
/*******************************************
名称:51蓝牙小车
作者:化作尘
时间:2020年11月18日21:36:47
*******************************************/
#include "reg52.h"
#define uchar unsigned char
#define uint unsigned char
/***小车控制定义**/
#define DIR P1
#define QIAN 0xaa
#define HOU 0x55
#define ZUO 0x5a
#define YOU 0xa5
#define STOP 0x00
void uart_init();
void uart_tx_string(uchar *str);
void uart_tx_byte(uchar str);
void Delayms(unsigned int n);
uchar rec;
/*********************************************************
函数名:主函数
*********************************************************/
void main()
{
uart_init();
DIR = STOP;
Delayms(1);
uart_tx_string("hello buletooch car!\n");
while(1)
{
switch(rec)
{
case 1:DIR = QIAN; break;
case 2:DIR = HOU; break;
case 3:DIR = ZUO; break;
case 4:DIR = YOU; break;
case 5:DIR = STOP; break;
}
}
}
/*********************************************************
函数名:串口中断
*********************************************************/
void uart_timer() interrupt 4
{
if(RI)
{
RI=0;
rec=SBUF;
uart_tx_byte('&');
Delayms(2);
uart_tx_byte(rec);
Delayms(2);
uart_tx_byte('&');
}
}
/*********************************************************
函数名:串口初始化
波特率:9600
晶振:11.059M
*********************************************************/
void uart_init()
{
TMOD=TMOD&0x0F;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
TR1=1;
SCON=SCON&0x0F;
SCON=0x50;
EA=1;
ES=1;
}
/*********************************************************
函数名:串口发送一个字节
*********************************************************/
void uart_tx_byte(uchar str)
{
SBUF=str;
while(!TI);
}
/*********************************************************
函数名:串口发送一个字符串
*********************************************************/
void uart_tx_string(uchar *str)
{
while(*str!='\0')
{
uart_tx_byte(*str++);
Delayms(2);
}
}
/*********************************************************
函数名:延时函数
*********************************************************/
void Delayms(unsigned int n)
{
unsigned int i,j;
for(j=n;j>0;j--)
for(i=112;i>0;i--);
}
四、调试
1、HC-05蓝牙模块调试
HC-05默认波特率9600,如果不是9600,修改方法
电脑用串口助手连接模块,连接波特率38400,模块上电前按住小按键进入AT模式。
修改波特率指令:AT+UART=9600,0,0
2、蓝牙串口app
打开资料里有蓝牙串口app或者直接应用商店搜索“蓝牙串口”下载。
使用方法:
1)键盘->打开编辑模式->点击键盘开始编辑
2)按照下图设置:
3)连接蓝牙,开始测试
测试可能正反转有出错的情况,只需要改动代码或者接线即可