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电池就行
第二部分:程序原理
- 手机端
应用宝搜索APP:蓝牙遥控小车,界面如图,不用必须和我一样的APP
这个软件利用的是蓝牙,不需要去搞懂它的原理,只要会用就行,按下某个键它就会将对应的数字发送到安装于单片机端的蓝牙模块,蓝牙模块再将其发送到单片机上的蓝牙模块
- 单片机端
单片机程序需要进行设置,具体寄存器啥的怎么用去查,忘了一些不怎么用,注意波特率和晶振是对应的,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单片机的蓝牙手机遥控小车相关推荐
- 2.基于51单片机的蓝牙遥控器制作
上一次介绍了基于51单片机的蓝牙遥控小车,使用的是手机APP作为遥控器,本节中介绍使用51单片机制作遥控器. 1.单片机 同样使用51单片机作为控制芯片,同样只需要一个芯片和一个晶振电路单片机就能运行 ...
- 毕业设计 基于51单片机无线蓝牙APP控LED灯亮灭亮度设计
基于51单片机无线蓝牙APP控LED灯亮灭亮度设计 1.项目简介 1.1 系统构成 1.2 系统功能 2.部分电路设计 2.1 LED信号指示灯电路设计 2.2 蓝牙模块 3.部分代码展示 3.1 串 ...
- B003 - 基于51单片机的蓝牙交通灯车流量控制系统
摘要 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统.交通信号灯控制方式很多.本系统采用STC89C52单片机以及单片机最小系 ...
- 基于51单片机的超声波避障小车设计(含Proteus仿真)
超声波避障程序随处可见,基于51单片机的超声波避障小车也很成熟,但是完整的Proteus仿真并不容易找到开源资料. 这次主要给大家分享其Proteus仿真部分. 涉及到的模块有:超声波模块(hc-sr ...
- 基于51单片机的蓝牙台灯
大一期间学51单片机时做的小作品,功能如下: 1.通过按键调节灯的亮度(1-10档位): 2.通过蓝牙远程控制灯的亮度和开关: 3.感应,根据附近是否有人自动进行开关灯. 功能展示视频链接: http ...
- 基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资料)
资料编号:086 采用stm32单片机,可以通过蓝牙app控制点阵显示不同效果, 具体功能请看演示视频,全套资料齐全: 86-基于51单片机的蓝牙控制双色LED点阵显示屏(实物图+原理图+源码+全套资 ...
- 基于51单片机的超声波避障小车(HC-SR04,SG90舵机)
+ 一.HC-SR04超声波模块 二.SG90舵机 三.总程序编写 一.HC-SR04超声波模块 HC-SR04时序图 触发信号输入端(Trig)输入一个10微秒以上的高电平信号,超声发送口收到信号自 ...
- 基于51单片机的蓝牙温度检测器(附完整代码,网盘链接)
目录 一.绪论 (一).设计目的 (二).设计要求 (三).设计方法 (四).设计过程 (五).实现功能 二.设计内容 (一).总体方案设计 (二).子模块设计 (三).总原理框图 (四).程序流程图 ...
- 基于51单片机的蓝牙控制小车的简单实现(有源代码,无图) (上篇)
1. 简介 这是2016年底两周时间做的一个蓝牙小车,它分为上下两篇,本文是上篇.原本是发在了http://bbs.elecfans.com/ 的,不过由于我的博客都在CSDN上,因此我就把它们重新复 ...
最新文章
- 我的关于前端一些知识点的理解《一》
- 每日一皮:雷神索尔的锤子为什么这么重?
- centos7装机教程
- 实录分享 | 计算未来轻沙龙:计算机视觉与图形学(PPT下载)
- Merge Sort及其对一类问题的应用
- ADSL之PPPOE
- 江苏约谈滴滴、T3出行等6家企业 因疫情防控落实不到位
- 二次无约束二值优化模型(The Quadratic Unconstrained Binary Optimization(QUBO) model)
- VMware安装win10:需win10虚拟机专用镜像,不是真机装系统的ISO镜像
- 基于高德地图API — 绘制热力图初尝试
- windows 获取当前进程所占内存
- 如何使用Arduino和R305制作指纹考勤系统
- QQ守卫农场辅助--QQ守卫农场外挂
- oracle自动清理归档,Oracle rman 自动清理归档日志
- 已发送邮件如何撤回?
- 欢迎关注异贝!今天异贝与您一起分享:美容行业异贝引客方案设计!
- 揭秘经典案例炼成之道 微信开发者大会精华回顾
- 字符版本贪吃蛇游戏设计及算法
- python数据框提取子集_pandas 数据子集的获取
- 手机淘宝宝贝详情页《问大家》数据爬虫手把手实战,包含动态参数如何生成...
热门文章
- Android studio中如何利用Debug模式来调试程序
- 火山引擎数智平台的这款产品,正在帮助 APP 提升用户活跃度
- Android实战(四)——正能量日报
- java对象头 MarkWord
- 『基础教学第二章』MMD基本功能详解-Kinsama
- 基本的计算机结构知识----基础向
- Tensorflow 笔记 Ⅺ——NLP 实现电影评论情感分析
- java获取指定周的第一天和最后一天(周统计报表)
- 由 tpp.c:63: __pthread_tpp_change_priority failed 引发的思考
- js 实现模糊搜索功能