使用L293D驱动板(for Arduino)对电动机进行驱动

本文主要介绍如何使用L293D(准确地说是用L293D Motor Control Shield For Arduino)对电动机进行驱动。本文基于Arduino Mega 2560进行介绍,如果你使用的是其他版本的arduino,请视情况做相应的修改。

L293D简介

该驱动板功能强大,具有以下几种功能:

  • 可以支持2个5V舵机,可以连接到arduino的高分辨率专用计时器;最多支持4个直流电机,使用独立的8位速度选择(大约0.5%的解析度)

  • 最多支持2个步进电机(无极或者双极),步进电机可以是单线圈的,双线圈的,interleaved或者micro-stepping

  • 路H桥:L293D芯片给每路桥提供0.6A电流(峰值1.2A),并带有热保护,4.5V到25V

  • 当电压过高时,下拉电阻保证电机保持停止状态

  • 大终端接线端子(10-22AWG),方便连接电线

  • 带有Arduino复位按钮

  • 提供2个外接电源接线端子,保证数字和逻辑电源分离

  • 适配Mega,Uno

引脚连接

将电机驱动板L293D和Arduino板的相应接口(数字一一对应)通过杜邦线连接起来,具体针脚连接方式如下:

如果只想使用直流/步进电机应该连接以下引脚:

  • 数字端口11:直流电机#1/步进#1(PWM)
  • 数字端口 3:直流电机#2/步进#1(PWM)
  • 数字端口 5:直流电机#3/步进#2(PWM)
  • 数字端口 6:直流电机#4/步进#2(PWM)

如果要控制直流/步进电机应该增加以下引脚:

  • 数字引脚4:DIR CLK触发
  • 数字引脚7:DIR EN指令的允许端EN
  • 数字引脚8:DIR SER
  • 数字引脚12:DIR ATCH中断连接

另外,GND、5V引脚必须也要连接,否则的话就无法稳定地控制直流电动机。

具体接线图如下所示:

circuit

注意事项

  • 要给L293D单独供电,不要将电源接在Arduino上;
  • 给L293D通电时,电源正负极千万不要接反,否则很容易烧毁板子;

安装函数库

在使用该驱动之前,你需要安装相应的函数库。该驱动使用的是Adafruit-Motor-Shield-library函数库,在仓库的lib文件夹中有相应的压缩包,直接解压到你的arduino安装路径下的library中即可。

函数库中包括驱动直流电动机、步进电机等的函数接口,使用起来十分方便。详细使用方法可以参考这里

使用测试程序

本文使用的驱动程序可以在这里下载或者这里。在使用本程序之前,请在你的arduino IDE中安装相应的函数库,可以在这里下载

速度控制

对单个电动机控制:

r 100

其中命令r代表设置右前轮速度,参数100为速度大小。

下表是了列举了各命令代表的含义:

编号命令含义
0l设置左前轮
1r设置右前轮
2L设置左后轮
3R设置右后轮
4A设置所有车轮

NOTE: 我想你大概也会猜到,与其他命令不同的是命令A的参数为4个,分别为左前轮速度、右前轮速度、左后轮速度、右后轮速度。

方向

只要将参数设置为负值,即可改变电动机旋转方向。

停止

如果你想终止电动机转动,可以使用命令s或者S

s 0     # 终止左前轮
S       # 终止所有车轮

命令非常好理解,通过车轮对应的编号即可终止相应的车轮。

NOTE:当然,将速度设置为0也可以达到相同的效果。

具体可以查看程序中的command.h文件:

#define FRONTLEFT       'l'
#define FRONTRIGHT      'r'
#define BACKLEFT        'L'
#define BACKRIGHT       'R'
#define ALLWHEELS               'A'
#define STOPWHEEL       's'
#define STOPWHEELS      'S'

参考资料

  1. ROS Wiki: rosserial_arduino Tutorials
  2. Arduino中文社区:L293D电机驱动板(资料翻译)

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

  • 9
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值