第一节  基于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

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

  1. 2.基于51单片机的蓝牙遥控器制作

    上一次介绍了基于51单片机的蓝牙遥控小车,使用的是手机APP作为遥控器,本节中介绍使用51单片机制作遥控器. 1.单片机 同样使用51单片机作为控制芯片,同样只需要一个芯片和一个晶振电路单片机就能运行 ...

  2. 毕业设计 基于51单片机无线蓝牙APP控LED灯亮灭亮度设计

    基于51单片机无线蓝牙APP控LED灯亮灭亮度设计 1.项目简介 1.1 系统构成 1.2 系统功能 2.部分电路设计 2.1 LED信号指示灯电路设计 2.2 蓝牙模块 3.部分代码展示 3.1 串 ...

  3. B003 - 基于51单片机的蓝牙交通灯车流量控制系统

    摘要 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统.交通信号灯控制方式很多.本系统采用STC89C52单片机以及单片机最小系 ...

  4. 基于51单片机的超声波避障小车设计(含Proteus仿真)

    超声波避障程序随处可见,基于51单片机的超声波避障小车也很成熟,但是完整的Proteus仿真并不容易找到开源资料. 这次主要给大家分享其Proteus仿真部分. 涉及到的模块有:超声波模块(hc-sr ...

  5. 基于51单片机的蓝牙台灯

    大一期间学51单片机时做的小作品,功能如下: 1.通过按键调节灯的亮度(1-10档位): 2.通过蓝牙远程控制灯的亮度和开关: 3.感应,根据附近是否有人自动进行开关灯. 功能展示视频链接: http ...

  6. 基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资料)

    资料编号:086 采用stm32单片机,可以通过蓝牙app控制点阵显示不同效果, 具体功能请看演示视频,全套资料齐全: 86-基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资 ...

  7. 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)

    + 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...

  8. 基于51单片机的蓝牙温度检测器(附完整代码,网盘链接)

    目录 一.绪论 (一).设计目的 (二).设计要求 (三).设计方法 (四).设计过程 (五).实现功能 二.设计内容 (一).总体方案设计 (二).子模块设计 (三).总原理框图 (四).程序流程图 ...

  9. 基于51单片机的蓝牙控制小车的简单实现(有源代码,无图) (上篇)

    1. 简介 这是2016年底两周时间做的一个蓝牙小车,它分为上下两篇,本文是上篇.原本是发在了http://bbs.elecfans.com/ 的,不过由于我的博客都在CSDN上,因此我就把它们重新复 ...

最新文章

  1. 我的关于前端一些知识点的理解《一》
  2. 每日一皮:雷神索尔的锤子为什么这么重?
  3. centos7装机教程
  4. 实录分享 | 计算未来轻沙龙:计算机视觉与图形学(PPT下载)
  5. Merge Sort及其对一类问题的应用
  6. ADSL之PPPOE
  7. 江苏约谈滴滴、T3出行等6家企业 因疫情防控落实不到位
  8. 二次无约束二值优化模型(The Quadratic Unconstrained Binary Optimization(QUBO) model)
  9. VMware安装win10:需win10虚拟机专用镜像,不是真机装系统的ISO镜像
  10. 基于高德地图API — 绘制热力图初尝试
  11. windows 获取当前进程所占内存
  12. 如何使用Arduino和R305制作指纹考勤系统
  13. QQ守卫农场辅助--QQ守卫农场外挂
  14. oracle自动清理归档,Oracle rman 自动清理归档日志
  15. 已发送邮件如何撤回?
  16. 欢迎关注异贝!今天异贝与您一起分享:美容行业异贝引客方案设计!
  17. 揭秘经典案例炼成之道 微信开发者大会精华回顾
  18. 字符版本贪吃蛇游戏设计及算法
  19. python数据框提取子集_pandas 数据子集的获取
  20. 手机淘宝宝贝详情页《问大家》数据爬虫手把手实战,包含动态参数如何生成...

热门文章

  1. Android studio中如何利用Debug模式来调试程序
  2. 火山引擎数智平台的这款产品,正在帮助 APP 提升用户活跃度
  3. Android实战(四)——正能量日报
  4. java对象头 MarkWord
  5. 『基础教学第二章』MMD基本功能详解-Kinsama
  6. 基本的计算机结构知识----基础向
  7. Tensorflow 笔记 Ⅺ——NLP 实现电影评论情感分析
  8. java获取指定周的第一天和最后一天(周统计报表)
  9. 由 tpp.c:63: __pthread_tpp_change_priority failed 引发的思考
  10. js 实现模糊搜索功能