历史上的今天
返回首页

历史上的今天

今天是:2025年12月09日(星期二)

正在发生

2022年12月09日 | 基于51单片机制作的基础四轮蓝牙小车

2022-12-09 来源:zhihu

一、材料准备


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

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来做了。


推荐阅读

史海拾趣

FEI Microwave Inc公司的发展小趣事

为了进一步增强自身的实力,FEI Microwave Inc公司积极寻求并购其他具有竞争力的企业。在经过一系列的考察和谈判后,FEI Microwave Inc公司成功收购了某家在微波滤波器领域具有领先技术的公司。这次并购不仅使FEI Microwave Inc公司在技术上得到了极大的补充,也为其在微波通信领域的发展奠定了更加坚实的基础。

DAICO公司的发展小趣事

DAICO公司成立于XXXX年,最初是一家位于加利福尼亚的小型私营公司。在公司成立的初期,DAICO专注于研发和生产中频/射频和微波控制产品,以及放大器。这些产品主要用于国防电子和航空航天领域,为DAICO在电子行业中打下了坚实的基础。

国盛科技(BOCHEN)公司的发展小趣事

国盛科技在技术创新方面取得了显著成果。截至目前,公司已累计取得8项发明专利、30项新型实用型专利,并成功转化了19项高新技术产品和知识产权成果。这些专利和成果的取得,不仅展示了国盛科技在电子元器件领域的研发实力,也为公司的持续发展提供了有力支撑。

Giga公司的发展小趣事
用于设置提醒或自动执行某项任务。
CETC公司的发展小趣事

CETC自成立以来,一直致力于电子科技领域的研发创新。在某次关键技术的攻关中,CETC的科研团队经过数月的艰苦努力,成功突破了某型雷达的核心技术,使我国在该领域达到了国际先进水平。这一成果的取得不仅提升了CETC的技术实力,也为公司在国内外市场赢得了良好的声誉,为公司的后续发展奠定了坚实基础。

Amphenol Aerospace公司的发展小趣事

CETC深知人才是企业发展的根本。因此,公司一直注重人才培养和团队建设。公司设立了完善的培训体系,为员工提供各种学习和发展的机会。同时,CETC还积极引进国内外优秀人才,打造了一支高素质、专业化的团队。这支团队在公司的各个领域都发挥着重要作用,为公司的持续创新和发展提供了有力保障。

问答坊 | AI 解惑

0-30v_4a數控穩壓電源 完整的源程序及SCH & PCB

0-30v_4a數控穩壓電源 完整的源程序及SCH & PCB [ 本帖最后由 dale 于 2009-9-14 20:16 编辑 ]…

查看全部问答>

大家帮我看看这个芯片为何不工作

我用的主控是51,晶振是12m 我用51控制语音芯片,语音芯片工作在三线串口模式,但是语音芯片根本就不响应,我用仿真器仿真后所有的指令送的都正确,现在不知问题在哪?大家帮满看看…

查看全部问答>

请教wince如何通过注册表得知当前使用的网络接入点。

如题, 小弟找到了HKEY_CURRENT_USER\\Comm\\RasBook这个表项,但是怎样判断哪个是现在当前的网络接入? 这么做的原因是想通过修改注册表更改当前的接入点, 哪位大侠显圣,指教一下小弟。多谢多谢…

查看全部问答>

诚征网友(ASIC/FPGA 验证)

eeworld 快没有分了,准备交5位网友,加50分。 但是,也不能太随便了,本人在这里诚征ASIC/FPGA 验证的网友。 欢迎讨论交流。…

查看全部问答>

想学蓝牙技术,但觉得无从着手,希望大家介绍下经验

想学蓝牙技术,但觉得无从着手。只有些C51的技术。 看了下书,主要是CSR和EBDK。 但书本介绍的太不清楚了,书没买好。也没具体的案例。以及开发的工具。 请问大家我要从哪下手呢?开发工具要在哪买?要多少钱呢?要掌握些什么知识呢?…

查看全部问答>

还有别的同步数据方案吗?

我们一直是用Sqlce与桌面的sql库同步数据,但很多用户不用sql数据库,另外sqlce环境也占用内户,所以我想请教大家,还有别的同步数据方案吗?手持机上不用加载数据库环境的方案。…

查看全部问答>

报道---传感器版块

传感器版块新人报道,大家多指教!…

查看全部问答>

新的仿真器坏了可以自己拆开修理么?

本帖最后由 dontium 于 2015-1-23 13:42 编辑 我的老板大概在3年前买了一套DSP产品,从来没有用过,最近我拿出来试用,才发现是坏的,插到电脑上都没有响应(我想至少那个红灯应该亮吧或在电脑上有显示),在好多电脑上试了都不行。保修期也过了, ...…

查看全部问答>

嵌入式Linux应用_开发_完全_手册(完整版)

韦东山老师的 书 还是不错的 论坛里有一个贴  但是里面缺了很多章 发个完整版的 如果有版权问题 请斑竹删除~~~   觉得此书好,请自觉购买正版书籍!!! (共11个附件)   [ 本帖最后由 常见泽1 于 2 ...…

查看全部问答>

ADC10采集1KHz的正弦信号误差很大

贴出我的程序,单通的,测直流信号还可以,800mv 1KHz的正弦信号误差十分大,只显示0.1XX(XX是两个变化很快的数字),求解是什么原因?怎么解决? #include \"msp430g2553.h\" #include \"12864_1.h\" unsigned int s1 = 0; unsigned char i = ...…

查看全部问答>