入门级蓝牙遥控小车制作教程

一、材料准备
1.小车底座
2.公对母,公对公,母对母杜邦线
3.l298n电机驱动芯片(想省事的话直接买模块)
4.一个51单片机最小系统(自己焊接或买成品,网上的成品大多很劣质,买回来后要好好检查)
5.蓝牙模块 (一般就是hc-05或者hc-06)
6. 直流电机2(一般在网上买小车套件会附赠)
7.四节电池盒和电池
4
8.USB转TTL连接器
9.烙铁之类的焊接工具请添加图片描述
请添加图片描述

二、L298n相关资料

在这里插入图片描述
输入1,2端口控制通道A,3,4端口控制通道b;通道a,b分别连接两个电机,电机正负极最好保持一致(这样你程序控制电机的方向就在逻辑上一致,不然会反向)
感兴趣可以自己焊一个出来

三、hc-06蓝牙设置
1.通过usb转ttl工具将hc-06和电脑连接
2.在网上下载一个stc-isp下载器(stc官网有免费软件)在这里插入图片描述
使用串口助手,新买的hc-06的话默认连接是9600波特率,将串口助手波特率设置为9600就可以实现通讯了(如果不行试试其他的波特率,如38400等等)
输入AT然后发送,会接受到OK,证明通讯成功,就可以进行下一步了
根据这个指令集发送指令配置你的蓝牙,配置好以后就连接到单片机上在这里插入图片描述
三、单片机代码
1.使用的是stc89c51单片机(11.0592MHZ)

#include "stc15F2k60s2.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;

void UsartInit()
{
	SCON=0X50;			//设置为工作方式1
	TMOD=0X20;			//设置计数器工作方式2
	PCON=0X80;			//波特率加倍
//	TH1=0XF3;				//计数器初始值设置,波特率4800
//	TL1=0XF3;
	TH1=0XF4;				//计数器初始值设置,波特率4800
	TL1=0XF4;
	ES=1;						//打开接收中断
	EA=1;						//打开总中断
	TR1=1;					//打开计数器
}

void main()
{	
	UsartInit();  //	串口初始化
	while(1);		
}


void Usart() interrupt 4
{
	u8 receiveData;

	receiveData=SBUF;//出去接收到的数据
	RI = 0;//清除接收中断标志位
	if(receiveData=='1')
	{
		P10=0;
		P11=1;
		P12=0;
		P13=1;
	}
	else if(receiveData=='2')
	{
		P10=1;
		P11=0;
		P12=1;
		P13=0;
	}
	else if(receiveData=='3')
	{
		P10=0;
		P11=0;
		P12=0;
		P13=1;
	}
	else if(receiveData=='4')
	{
		P10=0;
		P11=1;
		P12=0;
		P13=0;
	}	
	else 
	{
		P10=0;
		P11=0;
		P12=0;
		P13=0;
	}
	SBUF=receiveData;//将接收到的数据放入到发送寄存器
	while(!TI);			 //等待发送数据完成
	TI=0;						 //清除发送完成标志位
}

关于串口通讯,单片机的主频与计算出的波特率一定要与蓝牙你自己设置的波特率精准匹配!!一定要精准!!如上图代码中我注释掉的计数器初始值设置,计算波特率出现偏差会导致蓝牙与单片机无法正常通讯或通讯出现乱码!!

蓝牙与单片机通讯失败的影响因素主要有:
1.代码中波特率设置错误
2.单片机主频设置与配对的晶振不符
3.你的晶振质量有点差,波特率设置又有点偏差,也会导致乱码
4.其他硬件损坏

四、连线
在这里插入图片描述
1.P10接输入1,P11接输入2,P12接输入3,P13接输入4
2.电池正极和负极分别接在l298n主电源正负上,l298n驱动板上的5v输入连接到单片机的vcc上给单片机供电,单片机的vss端(及接地)连到主电源负极
在这里插入图片描述请添加图片描述
五、实际测试
1.手机下载一个蓝牙串口软件
2.打开电源,手机连上你的蓝牙hc-06软件请添加图片描述
请添加图片描述
请添加图片描述
3.发送1前进,2后退,3左转,4右转,其他停止

版权声明:本文为CSDN博主「大麒麟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45601654/article/details/119961718

一、材料准备
1.小车底座
2.公对母,公对公,母对母杜邦线
3.l298n电机驱动芯片(想省事的话直接买模块)
4.一个51单片机最小系统(自己焊接或买成品,网上的成品大多很劣质,买回来后要好好检查)
5.蓝牙模块 (一般就是hc-05或者hc-06)
6. 直流电机2(一般在网上买小车套件会附赠)
7.四节电池盒和电池
4
8.USB转TTL连接器
9.烙铁之类的焊接工具请添加图片描述
请添加图片描述

二、L298n相关资料

在这里插入图片描述
输入1,2端口控制通道A,3,4端口控制通道b;通道a,b分别连接两个电机,电机正负极最好保持一致(这样你程序控制电机的方向就在逻辑上一致,不然会反向)
感兴趣可以自己焊一个出来

三、hc-06蓝牙设置
1.通过usb转ttl工具将hc-06和电脑连接
2.在网上下载一个stc-isp下载器(stc官网有免费软件)在这里插入图片描述
使用串口助手,新买的hc-06的话默认连接是9600波特率,将串口助手波特率设置为9600就可以实现通讯了(如果不行试试其他的波特率,如38400等等)
输入AT然后发送,会接受到OK,证明通讯成功,就可以进行下一步了
根据这个指令集发送指令配置你的蓝牙,配置好以后就连接到单片机上在这里插入图片描述
三、单片机代码
1.使用的是stc89c51单片机(11.0592MHZ)

#include "stc15F2k60s2.h"			 //此文件中定义了单片机的一些特殊功能寄存器

typedef unsigned int u16;	  //对数据类型进行声明定义
typedef unsigned char u8;

void UsartInit()
{
	SCON=0X50;			//设置为工作方式1
	TMOD=0X20;			//设置计数器工作方式2
	PCON=0X80;			//波特率加倍
//	TH1=0XF3;				//计数器初始值设置,波特率4800
//	TL1=0XF3;
	TH1=0XF4;				//计数器初始值设置,波特率4800
	TL1=0XF4;
	ES=1;						//打开接收中断
	EA=1;						//打开总中断
	TR1=1;					//打开计数器
}

void main()
{	
	UsartInit();  //	串口初始化
	while(1);		
}


void Usart() interrupt 4
{
	u8 receiveData;

	receiveData=SBUF;//出去接收到的数据
	RI = 0;//清除接收中断标志位
	if(receiveData=='1')
	{
		P10=0;
		P11=1;
		P12=0;
		P13=1;
	}
	else if(receiveData=='2')
	{
		P10=1;
		P11=0;
		P12=1;
		P13=0;
	}
	else if(receiveData=='3')
	{
		P10=0;
		P11=0;
		P12=0;
		P13=1;
	}
	else if(receiveData=='4')
	{
		P10=0;
		P11=1;
		P12=0;
		P13=0;
	}	
	else 
	{
		P10=0;
		P11=0;
		P12=0;
		P13=0;
	}
	SBUF=receiveData;//将接收到的数据放入到发送寄存器
	while(!TI);			 //等待发送数据完成
	TI=0;						 //清除发送完成标志位
}

关于串口通讯,单片机的主频与计算出的波特率一定要与蓝牙你自己设置的波特率精准匹配!!一定要精准!!如上图代码中我注释掉的计数器初始值设置,计算波特率出现偏差会导致蓝牙与单片机无法正常通讯或通讯出现乱码!!

蓝牙与单片机通讯失败的影响因素主要有:
1.代码中波特率设置错误
2.单片机主频设置与配对的晶振不符
3.你的晶振质量有点差,波特率设置又有点偏差,也会导致乱码
4.其他硬件损坏

四、连线
在这里插入图片描述
1.P10接输入1,P11接输入2,P12接输入3,P13接输入4
2.电池正极和负极分别接在l298n主电源正负上,l298n驱动板上的5v输入连接到单片机的vcc上给单片机供电,单片机的vss端(及接地)连到主电源负极
在这里插入图片描述请添加图片描述
五、实际测试
1.手机下载一个蓝牙串口软件
2.打开电源,手机连上你的蓝牙hc-06软件请添加图片描述
请添加图片描述
请添加图片描述
3.发送1前进,2后退,3左转,4右转,其他停止

版权声明:本文为CSDN博主「大麒麟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45601654/article/details/119961718

生成海报
点赞 0

大麒麟

我还没有学会写个人说明!

暂无评论

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

2、51单片机——I2C 总线

本人使用的51开发板为 郭天祥C51 TX-1C开发板 ; 本笔记根据B站up主:江科大自化协的教学视频 整理得到 参照博客 https://zouchanglin.cn/2458978170.html I2C 总