先给大家看下整体效果呀~
一·硬件软件准备
51开发板,HC-05,L298N,12V电源,USB TO TLL,小车基本材料,导线若干。
串口助手和手机蓝牙软件:
链接:https://pan.baidu.com/s/1Yh651dcf6wqbwg5UohmR4Q
提取码:2233
二·蓝牙连接准备:
(一)设备连接
我的转接是直接连接在笔记本上的,所以用的是5V,注意将跳线帽连接到5V上(如图1)
图1
之后将蓝牙的四个接口连接到USB TO TLL上,注意RXD(接收端)连接到TXD(发送端),TXD(发送端)连接到RXD(接收端),因为蓝牙是双向传到的,所以要交错链接(如图2)
图2
注意将跳线帽连接到5V,蓝牙RXD(绿色),TXD(橙色),GND(灰色),VCC(紫色)分别连接到USB TO TLL TXD(绿色),RXD(橙色),GND(灰色),5v(紫色)
(二)连接到电脑调试
在插入电脑前将蓝牙上面的按钮按住,然后,插入电脑,等待蓝牙上面的红灯间隔两秒左右闪烁时,表示进入AT(设置模式)
下载本文开头的的串口助手打开,按照图三连接
图3
波特率设置为38400是根据手册来的,不用过多纠结,一定要按照12345步骤完成。
如果输入AT串口助手返回OK表示发送指令正常
接下来设置调节:
AT+ROLE=0 | 0表示主模式 |
AT+NAME="4396" | 配置蓝牙模块名称,也可以不打引号,最好名字和密码一样 |
AT+PSWD=4396 | 设置密码 |
AT+UART=9600,1,0 | 9600波特率是和后面编程要一致的别弄错了 |
AT+RESET | 重启模块,可以看到红灯以0.5s间隔闪烁 |
三·代码:
设置四个IN口对应51上的P10到P13
5个函数分别控制小车前后左右停
定时器1用的是9600波特率要匹配好蓝牙
之后烧入程序
#include <REGX52.H>
sbit IN1 = P1^0; // 左上
sbit IN2 = P1^1; // 左下
sbit IN3 = P1^2; // 右上
sbit IN4 = P1^3; // 右上
void stop() // 停
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
void forward() // 向前
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
void back() // 向后
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
}
void left() // 向左
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
}
void right() // 向右
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
}
void Time_Int () interrupt 4
{
unsigned char date;
if(RI == 1) // RI为1时软件置0
{
RI = 0; // 清除接受标志
date = SBUF; // 接收数据存在date中
switch (date)
{
case ('1'):
{
forward();
break;
}
case ('2'):
{
back();
break;
}
case ('3'):
{
left();
break;
}
case ('4'):
{
right();
break;
}
case ('0'):
{
stop();
break;
}
}
}
}
void UsartConfiguration(void) //9600bps@11.0592MHz
{
PCON = 0x00; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
ES = 1; //开启串口中断
EA = 1; //开启总中断
}
void main ()
{
UsartConfiguration(); // 串口初始化
while(1)
{
}
}
四·硬件连接
基本轮胎连接发个图你们应该看得懂吧~~~
(一)马达连接:注意马达与导线连接部分我是朝外侧的,当然你也可以朝内侧。(我两边都是一样的,都是深蓝色的线连接上面,浅蓝色的线连接下面)(图一)
图一
(二)L298N连接和51单片机连接:四根连接马达的线分别连接在L298N的四个输出口(如图二)。(注意马达线和OUT的连接要一致)
图二
连接出来效果是这样的
图三
接下来我们连接四个IN口(四个IN分别一一对应四个OUT和51上的四个IO),四个IN从左往右依次是IN4,IN3,IN2,IN1(如图二)
连接出来效果是这样的(图四)
图四
接下来将四个IN连接到51上的P10~P13四个口上,注意颜色连接(如图五)
图五
接下来是电源线的连接(接口介绍可看图二),橙色线连接5V(用于给51供电),红色线连接GND(给51接地),浅蓝线(给电池接地),深蓝接12V(L298N供电标准是12V,实际上如果电压太低马达是转不动的),具体连接如图六
图六
在51和电源上的连接分别试是这样的(如图七)
图七
(三)·蓝牙(HC-05)连接 :(如图八)
图八
从上往下依次是RXD(绿色),TXD(橙色),GND(灰色),VCC(紫色) 分别连接到51的P31(TXD),P30(RXD),GND,5V(如图九)。值得一说的是蓝牙是双向传输,所以RXD(接收端)TXD(发送端)要交错相连接,即RXD连接TXD,TXD连接RXD
图九
最后连接电源发现51,蓝牙,L298N都亮了就可以啦(图十)
图十
五·手机连接控制
打开手机蓝牙
打开蓝牙软件(本文开头有下载)
点击连接蓝牙,找到设置好的蓝牙名字,输入密码连接
点开键盘,点击编辑模式按照图(1)设置
图(1)
六·注意事项:
电源不能太小至少要7V左右,不然电压不够带不动电机转动
电源连接线和马达连接可以线粗一点的,细线可能带不动
一般来说喔都有电池连接,但我这里没有就用了格式锂电池,都一样
马达有没有坏最简单的方法就是直接给5V电源看他转不转就完事了
包括其他模块也是一样,本来要亮的模块不亮了,就是烧了
51烧入软件时最好先烧入程序在连接硬件
如果对你有帮助可以点赞收藏下鸭~
如有不对,欢迎评论区指正~
本人大一,大家也一起进步丫!~