基于51单片机制作的蓝牙小车

基于51单片机制作的蓝牙小车

这是本人(小菜鸡一枚)于大一寒假所做的小玩意,以展现我这几月所学,这也是我发的第一篇博客,准确来说这可能是我搞51单片机的巅峰所做了,因为部长说以后要学stm32开发板了,51单片机以后大概是不会接触了,不得不说写博客对我而言真的有点困难。祝愿我也祝愿大家能够坚持自己的梦想。

一.所需材料
1,51单片机开发板x1
2,杜邦线(公对公,母对母,公对母)
3,L298N步进电机x1
4,电池一枚,以作为电源
5,HC-05蓝牙模块(本人买的是主从一体式)
6,蓝牙小车底盘一个

二,组装阶段
1,L298N模块各接口说明,
基于51单片机制作的蓝牙小车_第1张图片
1)首先12V电源输入是直接接电源正极的(本人买的是12V电池,毕竟跑的快)。
2)电源地接电源负极以及单片机的GND(当作负极看吧,好理解)。
3)5V输入直接就接51单片机的VCC(就是51单片机的电源输入口)。
4)电池电流是先流入L298N再去51单片机开发板的,别问我为什么知道,因为我已经烧坏一块板子了。至于其他接口图上已经说的很明白了。
5)A,B通道使能输出口(ENA及ENB),本人没有用,也不用管那个玩意,因为我菜不会用,而且也没什么大用
6)马达A,B输出口,用于控制马达的电流输出,接马达就好。
7)A,B通道使能输出口中间的的4个口,是接单片机IO口的,用于逻辑写入。

2,HC-05蓝牙模块
1)蓝牙模块上的VCC接51单片机上的VCC,GND接51单片机上的GND
2)蓝牙模块上的TXD与RXD是接入单片机的IO口上,下面会有所说明。

3,51单片机说明

基于51单片机制作的蓝牙小车_第2张图片
这是单片机开发板的部分原理图(IO口)
1)L298N上的A,B通道使能输出口中间的的4个口(IN1,INT2,INT3,INT4),本人分别接于单片机上P00,P01,P02,P03这四个IO口上。
2)蓝牙模块上的RXD接口接在单片机上的TXD接口上,在该原理图上是P31接口;TXD接口接在RXD接口上,即P30接口。

三,成品展示
因本人手艺粗糙,效果就是这个样子(我弟弟玩的还是很开心,导致有些接口接的比较松)
基于51单片机制作的蓝牙小车_第3张图片
四,代码实现阶段

#include  

sbit int1=P0^0;	 
sbit int2=P0^1;
sbit int3=P0^2;
sbit int4=P0^3;

char i;

void stop()//停止
{
     
	int1=0;	   
	int2=0;
	int3=0;
	int4=0; 
}
void back()//后退
{
     
	int1=1;	   
	int2=0;
	int3=1;
	int4=0;
}

void forward()//前进
{
     
	int1=0;	   
	int2=1;
	int3=0;
	int4=1;    
}

void right() //右转  
{
     
	int1=0;	   
	int2=1;
	int3=1;
	int4=0;
}

void left()//左转
{
     
	int1=1;	   
	int2=0;
	int3=0;
	int4=1;
}

void main()
{
     
	  TMOD=0x20;                         //设置T1为工作方式2
      TH1=0xfd;                        //装入初值,比特率为9600bps
      TL1=0xfd;
      TR1=1;                              //开启T1
      REN=1;                             //接收允许
      SM0=0;                             //方式1
      SM1=1;
      EA=1;                               //开全局中断
      ES=1;                                //开串口中断
 	while(1)
 	{
     
		 i=SBUF;//SBUF为单片机接收到的数据,单片机接收到的数据都存放在SBUF里;
         RI=0;
         switch(i)
         {
     
		    case '1':       
			    forward();
		        break;
		    case '2':       
			    back();
			    break;
		    case '3':       
		        left();
			    break;
			case '4':       
		        right();
			    break;
		    case '5':       
		    	stop();
		    	break;
		}
	}
}

五,测试
通上电之后呢,就可以用手机蓝牙进行测试啦。
1,首先呢先在手机上下载一个蓝牙助手,大概像这个样子的。
基于51单片机制作的蓝牙小车_第4张图片
最主要的是那四个前后左右的按键,其他的是我自己加的,反正在源代码上自行添加就好。

解析:前进,后退,左转,右转,停止,都对应着程序中相应的信息,如图;

当手机端发送 1 给蓝牙模块,就会执行 forward()函数; 小车会向前走

当手机端发送 2 给蓝牙模块,就会执行 back();函数;,小车会向后走

当手机端发送 3 给蓝牙模块,就会执行 left();函数;,小车会向左走

当手机端发送 4 给蓝牙模块,就会执行 right()函数;,小车会向右走

当手机端发送 5 给蓝牙模块,就会执行stop()函数;,小车会停止

具体的编辑如图:
基于51单片机制作的蓝牙小车_第5张图片
话说缩进咋弄?还有字体大小什么的呢?

你可能感兴趣的:(单片机,蓝牙,串口通信)