胎教级51单片机智能小车设计
从现在开始开一个新坑
称为创意工坊
主要更新一些有意思的设计
第一次手把手更新51单片机智能小车
胎教级教学人人都会
单片机实现的功能是通过蓝牙APP 控制小车前后左右移动
先讲明白这个小车
后续再在这个小车上更新其他的设计
成品图
第一步:先介绍一下我所用的各种购买材料
我在拼多多购买了
1. 51单片机最小系统
(如果你有STC89C52的单片机就不买了,因为我想多买一个做别的设计所以我买了这个套餐,成品+单片机)
最小系统请务必买这种拉杆的
就是有一个扳手方便你下拉
我之前在淘宝买了
这样的非常不好用,这种没有个拉杆 全靠自己的手插 插不进你还要掰管脚 很不方便
买最小系统 请认准 拉杆的
2. 杜邦线
杜邦线建议买 30cm + 10cm 的因为我身边有10cm 的所以我没买 如果你没有 建议买一下很好 帮助很大
接下来是我在淘宝上购买的
3. 电烙铁(非必须)
这个是非必须的 我在制作这个小车的时候并未使用到电烙铁 第一点因为 我怕焊接错了 没有悔改的地方 第二点 焊接还算是小危险吧 但是我买了 毕竟咱们以后想要做一些成品的不去修改的器件 还是需要用到电烙铁
第三点 这个小车 不用电烙铁也可以完成
4.L298n 驱动电机
5.智能小车底盘
我买的是二驱 四驱是一样的
买小车送电池盒挺好
送的是四个电池的电池盒
6.HC-06蓝牙模块
要带底盘焊针
这就是上述材料 除了电烙铁非必须 其他都是必须的
第二步 拿到东西之后开始组装
小车的组装观看这个视频
再放一下链接
小车组装视频
这个是我们差不多同款的网上关于小车的视频都大同小异 这个安装最好
第三步 : 开始接线
接线在我的浏览寻找中没有一个人讲的很清楚都是模棱两可 听不懂 令人生气 我给大家讲清楚 !!!!!!!!
这里说明一下 导线是哪里来的
并且为什么不用电烙铁
我们把杜邦线剪掉头 就是导线 然后用打火机烧掉外衣 就会露出里面的铜丝
我们在很多时候拿铜丝绕几圈
拿铜丝塞进L298n 里面不是更方便吗
我们从电机出发
电机的每个地方都要接
我们把它分成3个板块
第一个板块 电机上面写着12V GND 5V
怎么接看清楚操作
我们电池仓会多出两根线 一跟是正极 另一根是负极
只关注这个部分 电池仓的正极线一根 记住仅正极接到开关的一脚 从开关的另一脚引出线接到电机的12V上
而电池仓的这个负极线直接接到电机的GND上
然后 电机的GND连接单片机的GND
电机的5V连接单片机的Vcc
(给单片机供电)
再把12V 和 5V 拿一根线串起来
为什么 我i直接在这里说明好了 因为电机驱动需要12V 但是我们普通的干电池 像南孚电池碱性电池仅1.5V 电池仓4个也就6V 完全支撑不起 把这端相连就能启动电机 了
最后电机1区的连线
12V
1.接从开关引出的电池仓正极线
2.和5V相连线
GND
1.电池仓的负极线
2.51单片机最小系统的GND
5V
1.51单片机最小系统的5V
2.和12V相连线
这是电机1区的线
我们接下来看电机的2区
电机的2区的是接发动机的两个引脚
连过来 两边的电机都插入
有人问有没有先后之分 其实我并没有考虑先后左右 当我失败的时候我考虑了把接口换了一下哈哈哈
接下来考虑3区的接线
3区按照顺序接在单片机最小系统的
P00 P01 P02 P03 上
四根线对四根线
到这里基本接线快结束了
直接拿起我们的蓝牙模块
蓝牙模块VCC 接 单片机最小系统的Vcc
GND 接单片机最小系统的GND
RXD 接单片机最小系统的TXD
TXD接单片机最小系统的RXD
如果你像我这么连接那么恭喜你已经完工了
下面烧录进代码
我默认你有烧录设备了那之前的普中的整个大开发板 如果没有那就需要买一个51单片机下载器了
代码如下
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LB=P0^0; //左边马达下接口 out2
sbit LF=P0^1; //左上 out1
sbit RB=P0^2; //右下 out4
sbit RF=P0^3; //右上 out3
void stop()
{
LF=0;
LB=0;
RF=0;
RB=0;
}
void forward()
{
LF=1;
LB=0;
RF=1;
RB=0;
}
void back()
{
LF=0;
LB=1;
RF=0;
RB=1;
}
void left()
{
LF=0;
LB=1;
RF=1;
RB=0;
}
void right()
{
LF=1;
LB=0;
RF=0;
RB=1;
}
void Com_Int(void) interrupt 4
{
uchar receive_data;
EA = 0;
if(RI == 1)
{
RI=0;
LF=0;
RF=0;
LB=0;
RB=0;
receive_data = SBUF;
switch(receive_data)
{
case ('1'):
forward();break;
case ('2'):
back();break;
case ('3'):
left();break;
case ('4'):
right();break;
case ('0'):
stop();break;
}
}
EA = 1;
}
void UsartConfiguration()
{
SCON=0X50; //SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志
TMOD=0X20;
PCON=0X00;
TH1=0Xfd;
TL1=0Xfd; //波特率为9600算出来的fd
TR1= 1;
ES = 1;
EA = 1;
}
void main()
{
UsartConfiguration();
while(1);
}
也可以直接使用我的.hex文件
对于蓝牙软件
下载完成后先点击键盘设置一下键位
因为我连接电机的时候并未在意 正反方向
如果这里出现在地上旋转 那把电机的2区域选择一边线交换一下
如果出现 和指令相违背 选择把 这里面消息的地方 1 2 3 4 改成正确的
第一次蓝牙连接需要输入密码1234
ok 结束了谢谢大家 希望大家喜欢