第一次写CSDN,就写个51的小车算了。51单片机也是大部分嵌入式初学者所选择的单片机型号了,虽然51的运行速度要慢一些,但是芯片什么的都挺便宜,比较适合初学者入门,并且制作一些比较有趣的小作品来进一步的提高学习的兴趣,加快学习速度和效率。

说了一大堆废话,现在就步入正题吧!

一、材料准备

        1.小车底座(淘宝有很多亚克力板的,但是我没有,我就拿以前比赛用过的铁板来组装了)

2.51单片机最小系统

3.51单片机芯片

4.l298n电机驱动芯片x2(因为是做四轮的,所以我就用了两个驱动了,驱动效率也高一些)

5.HC-05蓝牙模块 (新手可以用hc-06,比较简单一些,因为我只有hc-05就只能用这个了)

6. 直流电机x4

7.轮子x4

8.12V 16850锂电池组

9.DC转接头

10.公对母,公对公,母对母杜邦线若干(建议长短都买些,全是长的接线就太乱了,全是短  的也就不太好接线了)

11.USB转TTL (用于给HC-05蓝牙模块配置)

二、蓝牙设置

        1.引脚说明

1. RXD: 接收端
        2. TXD: 发送端
        3. AT: 设置工作模式
            1) 工作模式: 自动连接(automatic connection),又称为透传模式() 又稱為透通模式                 (transparent communication)
            2) AT指令设置模式: 命令回应(order-response),又称为AT模式(AT mode) 
        4. VCC: 模块供电正极(5V)
        5. GND: 模块供电负极
        6. EN:使能端,需要进入AT模式时接3.3V。其实不接也没有关系
        7. STATE:我也不知道有什么用,没有用到

2.连接方式

1.USB转TTL与HC-05的连接

2.HC-05与51单片机的连接

              3.进入AT模式

        HC-05与HC-06不同,HC-06没有连接上时,就是AT模式,而HC-05需要有个开关,注意到模块上的小黑点没有,按下它再上电就使HC-05进入AT模式了,严格的讲,它只是一个开的作用,无法退出AT模式。此时指示灯慢闪(1秒亮一次),模块进入AT状态。

4.基本配置

我这里用来配置的串口调试助手是XCOM V2.5

模块默认波特率为9600、默认配对密码为1234、默认名称为HC-05,
        AT模式波特率固定38400,8位数据位、1位停止位、无奇偶校验的通信格式。

AT+NAME="XXX"           修改蓝牙模块名称为XXX
AT+ROLE=0               蓝牙模式为从模式
AT+CMODE=1              蓝牙连接模式为任意地址连接模式,也就是说该模块可以被任意蓝牙设备连接
AT+PSWD=1234            蓝牙配对密码为1234
AT+UART=9600,0,0        蓝牙通信串口波特率为9600,停止位1位,无校验位

5.模块指示灯说明

        1.将模块上电同时(或者之前),将KEY接高电平,此时指示灯慢闪(1秒亮一次),模块进入AT状态,此时波特率固定38400。
        2.将模块上电后,将KEY悬空或者接地,此时指示灯快闪(1秒2次),表示模块进入可配对状态。此时如果将KEY接高电平,模块也会进入AT状态。但是指示灯依然是快闪(1秒2次)。
        3.模块配对成功,此时STA双闪(一次闪2下,2秒闪一次)。

6、设置过程中遇到的两个问题

        正常情况下,按照上面的配置,基本上都能成功。但如果没有成功,要怎么自检。本人就遇到过来成功配对后无法通信的问题,结果是由于蓝牙模块设置的波特率与单机片烧写的波特率不一样所致。开始一直怀疑是蓝牙模块本身有问题。弄了一下午,测输出波形,更换连接串口,浪费了很多时间。自检方法也很简单,单片机给蓝牙模块供电,单片机端的蓝牙模块TX与RX直接相连,自发自收,电脑端能收到串口信号,则说明主从模块没有问题。遇到的另一个问题是用串口助手发送AT命令没有反应。我也不知道怎么原因,开始一直以为是自己操作或者数据格式的问题,后来去网上查,网上说不能用串口助手配置,换了个串口调试工具就可以了。

三、小车组装与接线

        1.l298n接口说明

2.线路连接

蓝牙模块和单片机直接的连接在上面说了,就不说了

我接线是先用12v的16850电池组给其中一个l298n驱动供电,然后将两个l298n的12v和GND接口用杜邦线相连接起来,然后在用其中一个l298n的5v和GND接口给单片机最小系统供电(千万别连错了,电压小了,单片机无法正常工作;电压大了,单片机芯片就会被烧坏)。

l298n上面还有4个IN接口(负责控制两边电机的开关)和两对EN接口(可以做PWM给电机调速),这次就只做个基础的蓝牙小车,就不做调速了(想要调速的同学可以去学习一下PWM占空比调速)。四个IN接口分别连接最小系统上对应的接口(按照我的代码就是其中一个in1234分别连接单片机的P0^3,P0^4,P0^5,P0^6;另外一个in1234分别连接P1^0,P1^2,P1^3,P1^4)。

然后l298n的左右两边分别有两个口,分别为output1,output2,output3,output4.。output1,output2分别连接直流电机的正负;output3,output4分别连接直流电机的正负,两个l298n就同理了。

        接线图(由于我用的是铁板,怕影响就垫了层纸巾)

3.小车调试

        接完线之后肯定就是调试了,连接电源后,用手机连接蓝牙进行调试(调试也没啥细节,就拿到手就知道该怎么调试了,我也不知道该怎么打字打出来了……)我用的软件是SPP蓝牙串口。

四、代码

#include <reg52.h> sbit int1=P0^3;
sbit int2=P0^4;
sbit int3=P0^5;
sbit int4=P0^6;sbit int01=P1^0;
sbit int02=P1^1;
sbit int03=P1^2;
sbit int04=P1^3;char i;void stop()
{int1=0;      int2=0;int3=0;int4=0; int01=0;      int02=0;int03=0;int04=0;
}void back()
{int1=1;      int2=0;int3=1;int4=0;int01=1;       int02=0;int03=1;int04=0;
}void forward()
{int1=0;      int2=1;int3=0;int4=1;int01=0;       int02=1;int03=0;int04=1;
}void right()
{int1=0;      int2=1;int3=1;int4=0;int01=0;       int02=1;int03=1;int04=0;
}void left()
{int1=1;      int2=0;int3=0;int4=1;int01=1;       int02=0;int03=0;int04=1;
}void main()
{TMOD=0x20;  TH1=0xfd;TL1=0xfd;TR1=1;  REN=1;    SM0=0;    SM1=1;EA=1;        ES=1;while(1){i=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;}}
}

五、提醒

        线路别接错,接线的时候看仔细了,千万别给最小系统供到12v的电,要不然芯片直接烧了,调试的时候发现有问题,检查一下线路有没有接错,可以拿示波器或者万用表来测一下各个位置正不正常,有没有什么元件损坏了。

六、闲话

第一次发博客,可能有些漏了的地方,或者用的不恰当的,欢迎各位大佬在评论区指出错误,也欢迎各位大佬来给我提出更好的意见,共同学习共同进步。

        51其实上学期刚入学就自学了,今天看到以前的同学在写csdn就想着过来分享与记录一下自己的学习,就凑了些零件过来做了一个基于51的蓝牙小车。当初从实验室随便拿了两个电机驱动回去做,发现是7A/160W的双路直流电机驱动模块XY-160D(下图),没有跳线帽,接不了杜邦线,就只好去淘宝买了l298n来做了。

L298N 电机驱动板 具体介绍:https://blog.csdn.net/dingxiang1987824/article/details/113420892

HC-06蓝牙模块设置出自      :https://blog.csdn.net/zx3517288/article/details/52291027

基于51单片机制作的基础四轮蓝牙小车(含代码)相关推荐

  1. 基于51单片机的智能超声波四轮遥控小车proteus仿真

    硬件设计 下边讲一下遥控小车,同样是基于51单片机,利用超声波进行测距,利用蓝牙模块实现遥控(仿真里边没有蓝牙,所以采用的是RS485通信模拟) 仿真图: 由LCD1602作为显示器,具有蜂鸣器报警, ...

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

    基于51单片机制作的蓝牙小车 这是本人(小菜鸡一枚)于大一寒假所做的小玩意,以展现我这几月所学,这也是我发的第一篇博客,准确来说这可能是我搞51单片机的巅峰所做了,因为部长说以后要学stm32开发板了 ...

  3. 基于STC89C52RC单片机制作的红外循迹小车(4个传感器)

    单片机:基于STC89C52RC单片机制作的红外循迹小车(4个传感器) 个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器 ...

  4. 51系列—基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全)

    基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全) 本文主要介绍基于51单片机实现的校园打铃系统设计,实现了基本的上下课打铃功能.本设计基于51单片机,使用单片机定时计数器及LCD1602接 ...

  5. 基于51单片机的智能空调控制系统设计(仿真+代码+原理图+报告+视频讲解)

    基于51单片机的智能空调控制系统 这里写目录标题 1 开发环境 讲解演示视频 2 功能说明介绍 3 仿真图 4 程序 4.1 工程文件 4.2 代码 5 原理图 6 元器件清单 7 视频讲解 8 资料 ...

  6. 基于51单片机温湿度检测采集系统无线蓝牙APP上传方案原理图设计

    硬件电路的设计 (附文件) 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机电路+DHT11温湿度传感器店里了+蓝牙电路+电源电路组成. 1.通过单片机采集DHT1 ...

  7. 基于51单片机八路抢答器课程设计(含proteus仿真图及代码)

    一.设计要求: 1.可满足8个选手的抢答 2.具有主持者控制开关,用来控制系统清零和抢答开始 3.抢答器具有数据锁存功能.显示功能和声音提示功能 4.抢答开始后,若有选手按动抢答器按钮,编号立即锁存, ...

  8. 基于51单片机的红外自动避障小车(lunwen+任务书+开题+文献综述+翻译及原文+避障程序)

    目 录 1 绪论 1 1.1 课题研究背景及意义 1 1.2 国内外研究现状 1 1.2.1国外智能车辆研究现状 2 1.2.2发展前景 3 1.3 课题主要研究内容 4 2 工作原理及总体设计 5 ...

  9. 基于51单片机霍尔测速直流电机控制设计(含源码+原理图+论文+PCB封装)、基于STM32闭环步进电机控制系统设计(仿真,程序,说明)-转发分享

    设计思路: 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法.本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理.产生方法以及如何通过软件编 ...

  10. sht-11c语言程序,基于51单片机SHT11温湿度传感器检测程序(含电路图)

    #include #include /******************************************************** 宏定义 ******************** ...

最新文章

  1. 2020-12-7(字节,半字,字,双字总结)
  2. RISC-V应用创新大赛 | 一文详解RVB2601套件 助你快速上手赢比赛
  3. python 多功能下载网页
  4. Canny边缘检测算法原理及其VC实现详解(一)
  5. c语言输出教学日历表 节假日突出,[蓝桥杯][算法提高VIP]任意年月日历输出 (C语言代码)...
  6. 史上最全的MSSQL复习笔记
  7. 解决U盘安装Win10报错:No bootbale devices found.
  8. SQL语句处理一些修改、新增、删除、修改属性操作(MySql)
  9. docker 下使用 Hyperf(win10)
  10. 掌握这个思维,你的文案也能价值百万
  11. explicit,violate,volatile,mutable
  12. 留学Essay写作方法从哪里学习?
  13. 计算机演示文稿教学实例课件,ppt课件制作基本要求及ppt教学案例
  14. 年薪50万的程序员_毕业之后,这些年薪50万+的90后程序员经历了什么?-阿里云开发者社区...
  15. 通信电子电路(2)---使用multisim分析电路小技巧、晶体管等效电路
  16. 使用双线性插值做图像旋转
  17. Copley-STM32串口+CANopen实现双电机力矩同步
  18. 超级详细讲解线性回归(含吴恩达相关)
  19. vue--封装日历,周历,月历,季历组件
  20. 第07课:生活中的代理模式——帮我拿一下快递

热门文章

  1. GCC、GNU到底啥意思?
  2. python 进化树_7款物种分类(进化树地位)信息检索工具使用方法
  3. Choerodon猪齿鱼实践之持续交付流水线
  4. matlab maps 指北针和比例尺,R 地图绘制-比例尺与指北针
  5. 计算机考研a区院校,这些985院校没有A+学科!985院校的哪些专业在C+之下?
  6. Plain Road
  7. 和python哪个容易胖_哪些吃了最容易长胖呢?
  8. VR养狗,养的是寂寞还是潮流?
  9. 在centos上安装pycharm
  10. linux mint字体缺失,WPS for Linux【Debian、Ubuntu、Deepin、Linux Mint】字体缺失解决【批量字体安装】...