1.基于51单片机的蓝牙手机遥控小车

第一节  基于51单片机控制的蓝牙遥控小车

51控制的蓝牙遥控小车是楼主大一刚开始接触单片机时DIY的项目,时间大概是2016年的6月,现在已经是19年的5月底,借毕业前有闲时间写一下之前自己做过得种种东西。

51单片机是大学生能够接触到的最简单的单片机之一,之二是arduino,虽说简单,但是对于外行人来说,这些很高大上,即使对即将成为内行人的你来说,也很高大上,因为你没有动手去研究它,鸡汤到此为止,接下来介绍一下当年做51遥控车的经历。

51单片机虽然诞生很多年,但是仍然很方便大家学习。一般人的学习步骤都是先买一些高大上的开发板,书等等东西,然后两周之后彻底远离单片机,大学四年从不再碰。我的学习步骤不太一样,之前在舍友手里买过一块比较简单的开发板,资料齐备,关键是得有视频教程,因为从一个啥也不懂的小白,到一个入门的单片机选手,看视频是一个必不可少的过程,当然看书也可以,但是对这个阶段的玩家来说看书太慢,不容易懂,需要把握好自己的学习方式。看视频也不能单独的光看视频,要边看边实践,照抄老师的程序,他怎么做我就怎么做,这样度过了最开始从一点都不懂都稍微懂点的阶段,这个阶段是最容易让人放弃的。单片机这东西,一般你放弃了就再也拾不起来了。

附图:史上最廉价的51遥控车,加上充电器两节18650,当时价格是79元左右(16年),自动忽略左下角的废元件

第一部分:单独介绍51小车需要的各个模块(因为时间太久了所以没有图片):

51核心板经过原始的技术积累之后,需要进行实际操作了,小车的电路不太复杂,不需要开发板那么多功能,51 电路最简单只需要一个芯片,一个晶振,两个22pf的晶振供电就可以运行,51小车对51单片机的要求就是单片机能够运行跑程序,能够连接蓝牙和驱动,因此除了上述三种期间还需要洞洞板、单排针或双排针。原理图如下

 

蓝牙模块:

电路连接:蓝牙模块就是相当于串口线,蓝牙在51遥控车上只需要三根线,即gnd,vcc,tx,其中tx接到51的rx即P3.0引脚

注意事项:蓝牙模块具有固定的波特率,可以设置成主模块或从模块(主模块是可以主动连接其他蓝牙模块的蓝牙模块),设置方式是将蓝牙模块连接到USB转TTL上,注意TX和RX反接,淘宝店可见设置方式,注意进入AT模式,仔细阅读手册,既可以设置蓝牙名字,也可以设置密码,主从角色等等

 

L298N模块:

     两路电机驱动模块,左右两侧的接线帽各接电机,中间的四根插针是控制线,左边两个控制左边电机(电平颠倒后电机反转),刚买来的带有两个接线帽,每个接线帽接有两个插针,一个是使能端,一个是5V,3P的接线帽中间是接GND,左侧是接高电源输入(最高可能12V),右侧是5V输出,所以这个模块可以当5V电源用(上面有标号,记得是这样的)

电机车轮模块、电源:

电机配车轮,一定要有减速器,黄色的那种;电源需要两节18650电池就行

第二部分:程序原理

  1. 手机端

            应用宝搜索APP:蓝牙遥控小车,界面如图,不用必须和我一样的APP

             

             这个软件利用的是蓝牙,不需要去搞懂它的原理,只要会用就行,按下某个键它就会将对应的数字发送到安装于单片机端的蓝牙模块,蓝牙模块再将其发送到单片机上的蓝牙模块

  1. 单片机端

         单片机程序需要进行设置,具体寄存器啥的怎么用去查,忘了一些不怎么用,注意波特率和晶振是对应的,4800或者9600,注意信号线不要连接错,硬件错了软件连接再好也没有用,

          初始化设置:

SCON=0x50;

PCON=0x00;

TMOD=0x20;

EA=1;

ES=1;

TL1=0xfd;

TH1=0xfd;

TR1=1;

执行语句:

void serial() interrupt 4

{

while(1)

{ ES=0;

RI=0;

buf=SBUF;

switch(buf)

{

case 0x31: P1=0xfe;FM=1;Car_Run(1);break;

case 0x32: P1=0xfd;FM=1;Car_Run(0);break;

case 0x33: P1=0xfb;FM=0;Car_Run(2);break;

case 0x34: P1=0xf7;FM=1;Car_Run(1);Car_Run(4);break;

case 0x35: P1=0xef;FM=1;Car_Run(1);Car_Run(3);break;

}

ES=1;//´®¿ÚÖжÏ

}

 

}

 

几个case的情况是按下不同按键发过来的代码,我的分别是0x31,0x32.....不同的APP不一样可以查使用说明,或者去自己使用串口助手通过USB转ttl接收蓝牙模块的信号,然后看发过来的是啥;几个Car_Run函数是我自己写的控制小车前进后退的程序

 

在中断里面接收并执行,串口中断的原理不懂去查,大概意思是执行main函数时来了串口信号,于是停止执行主函数,然后去执行中断函数里面的函数。

附上程序工程:https://download.csdn.net/download/qq_36071362/11209730

发布了28 篇原创文章 · 获赞 39 · 访问量 6822

猜你喜欢

转载自blog.csdn.net/qq_36071362/article/details/90613979