----------公司的 扫地机器人 第四章:51单片机 连接 有刷 直流 电机 驱动模块
---1. 抱怨 网上的资料
首先,在淘宝买了一个L298N的驱动模块,然后 从淘宝店找资料,几乎所有的淘宝店都是一个 说明书,没有卵用。后来自己在网上找了好多东西,都没有什么用,整个下午就一直在看东西。尝试了各种方法,最终明白了 它的连线 和工作原理。
---2. 讲述自己的实验过程
测试了很多,还以为是电压不够,去买了 4节南孚电池,。顺便测试了下 南孚的电压,如图:(之前同学买了普通电池,驱动两个车轮,车轮不会动,后来换了南孚就能行了,也许是电压不够,在网上看到说南孚的电压 在 1.6V--1.8V之间,觉得很惊讶,所以来测试下, 结果 也没那么夸张,就是1.5V而已)。
这说明一个问题,就是普通电池 可能连 1.5V都达不到,或者说 电压不稳定。
---3. 成功的方法::最终测试成功了,但在网上都是讲 驱动模块的工作模式,使用的电压 范围,并没有连接图,只是有引脚的说明。对于我们 小白来说,真的是非常的难受啊。 所以,我把自己测试成功的 连线图 分享出来,另外分享自己在用的 测试程序, 毕竟万事开头难,哥哥 就帮你们开个好头。
-----3.1 直接用USB 供电的硬件连接图:
------USB转TTL 的下载器 给 最小系统 供电,(通电的工作最后再做)
-------最小系统的EA(中断总开关)连接 VCC引脚,
-------最小系统给 L298N 模块供电,5V输出 和 GND 分别连接模块的 12V 输入 和GND,
------- 最小系统的P0.0引脚(经过上拉电阻置位高电平)连接模块的 ENA 引脚,(如果是有跳线的,去掉跳线帽)
------- 最小系统的 P1.0和 P1.1引脚分别 连接 模块的 IN1 和 IN2(此处使用P1.0 和 P1.1 是因为 程序中有用到,程序在文末)
------- 驱动模块的 OUT 1 和 OUT 2 连接led或者步进电机,(其中 OUT 2 是正极)
完成下载程序 和 连接后,按下 最小系统的开关按钮,首先,最小系统的指示灯会亮,然后 模块的 指示灯会亮 ,然后 模块连接的电机或者led 会有电流,有效果。
----3.1.1 详细的 模块与 最小系统的连接 如下图:
-----3.2 使用电池供电的 硬件 连接图:
------ 电池组 通过并联达到 了一定的电压,分别连接 模块的12V供电引脚和GND引脚(此时的供电电压为6V,远远不够12V,但是就这么接既可以,当然 5V也是可以的) (通电的工作最后再做)
-------模块的 5V输出 和 GND 连接 最小系统的 VCC 和 GND,为 最小系统 供电(此处注意 共用GND 是 非常重要的一点)
------- 最小系统的P0.0引脚(经过上拉电阻置位高电平)连接模块的 ENA 引脚,(如果是有跳线的,去掉跳线帽)
------- 最小系统的 P1.0和 P1.1引脚分别 连接 模块的 IN1 和 IN2(此处使用P1.0 和 P1.1 是因为 程序中有用到,程序在文末)
------- 驱动模块的 OUT 1 和 OUT 2 连接led或者步进电机,(其中 OUT 2 是正极)
程序的烧录还是需要 USB转 TTL的下载线 和 串口连接的,烧录完成之后,断开 最小系统 和 PC的连接,然后 使用电池供电。
最小系统的指示灯 和 模块的 指示灯会亮 ,然后 模块连接的电机或者led 会有电流,有效果。
----3.1.1 详细的 模块与 最小系统的连接 如下图:
呢个,就是这样了。
部分代码展示:
/***************************************************************************
标题:左轮前进
平台:LY5A-L2B开发板
作者: 林洋电子工作室-单片机
客服QQ:52927029
邮箱: [email protected]
说明: 本程序主要是用来做接线调试使用,左轮前进,即前进方向的左边轮子,
如果实际写入程序测试电机向后转(后退),将电机两线调换一下即可。
******************************************************************************/
//头文件:
#include
//IO引脚定义:
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
//以上为电机驱动板输入引脚定义,
//IN1和IN2控制左轮电机,输出对应的OU1和OUT2接左轮电机,
//IN3和IN4控制右轮电机,输出对应的OU3和OUT4接右轮电机
//宏定义
#define L_go IN1=0;IN2=1 //左轮前进
#define L_back IN1=1;IN2=0 //左轮后退
#define L_stop IN1=0;IN2=0 //左轮停止,两个输出1也可以
#define R_go IN3=0;IN4=1 //右轮前进
#define R_back IN3=1;IN4=0 //右轮后退
#define R_stop IN3=0;IN4=0 //右轮停止,两个输出1也可以
//入口函数
void main(void)
{
L_go; //左轮前进
while(1);
}
---4. 从中的启示
特别注意: 轻易别搞 硬件,特别是没有设备的情况下,,得买很多东西,而且 买的时候,。你并不知道有没有用。
遇到问题,不要急,慢慢来。
测试程序使用 keil 写的,全部资料在:https://download.csdn.net/download/ca1m0921/10458488
下载资源包括:(使用的是STC89C52,一遍通过)
评论区问: 杜邦线用 哪种?
答: 你能接触上就行,实在不可以,那把 杜邦头拆了,直接把线接上也行的。‘
认真答: 我猜你是 塞不进去,蓝色的接口。那个 东西 是有个螺丝的,可以拧下来的。然后把 插针放进去,再 拧紧。
为什么一定要在这里回答呢,因为我看这篇文章的阅读量直线攀升,要给小白给个福利。