L293D电机驱动版在Arduino上使用笔记

L293D电机驱动版在Arduino上使用笔记

硬件连接

这里写图片描述

电源

驱动板是可以接受Arduino板的电力的,但是,arduino也就那么点电压,带一两个小直流电机还好说,东西搞多了,也是供不应求的.不过幸好L293D支持外部供电,通过上图中的外接电源接口,就可以进行外部供电.

进行外部供电的时候,需要将外接电源接口旁边的黄色跳线帽拔掉.

可以给每个电机最多600ma电流,1.2A的峰值电流。

电流超过1A的话,需要放散热块.

建议使用18650电池.

引脚使用

所有的六个模拟输入引脚都是可用的。它们也可以当做数字芯片来使用。(引脚14到19)

 数字引脚2和13可用。

 下面的引脚只有在下面提到的直流或者步进电机工作时才会被用到

    数字引脚11: 1号直流电机或者1号步进电机

    数字引脚3: 2号直流电机或者1号步进电机

    数字引脚5: 3号直流电机或者2号步进电机

    数字引脚6:4号直流电机或者2号步进电机

 下面的引脚只有在下面的直流或者步进电机工作时才会被用到

    数字信号4,7,8,和12通过74hc595(serial-to-parallel)来驱动直流或者步进电机

 下面的引脚只有在舵机工作时才会被用到

    数字信号9:1号舵机

    数字信号10: 2号舵机

所以只要相应的引脚没被L293D驱动板使用到,就可以可以拿来用的但前提是得自己焊出引脚来。焊引脚的地方就是上图中的预留孔位.

电机连接

L293D可以驱动4个直流电机(M1~M4),两个中间白色圈中的接口一般不用.

L293D还可以接两个舵机,分别用数字引脚9和10控制.

软件

使用L293D需要安装AFMotor库文件.

与直流电机有关的函数

确保导入AFMotor库文件并#include < AFMotor.h>后,有这么几个函数需要用到

  1. AF_DCMotor motorname(motornum,frequency);

    • motorname

      给电机起个名字,然后这个名字就是此电机在程序中的代号了

    • motornum

      用来选择你要给哪个电机取名字,参数范围为1~4

    • frequency

      用来设定此电机信号控制的频率.

      M1和M2可以使用MOTOR12_64KHZ,MOTOR12_8KHZ,MOTOR12_2KHZ,或者MOTOR12_1KHZ等常量

      M3和M4使用MOTOR34_64KHZ,MOTOR34_8KHZ,MOTOR34_1KHZ

  2. setSpeed(speed)

    • setSpeed用来设置电机的速度
    • 参数speed的取值范围从0(停止)到255(全速)
    • motorname.setSpeed(speed)
  3. run(direction)

    • 开跑

    • direction可以使用FORWARD,BACKWARD,RELEASE三个常量

示范:

#include <AFMotor.h>
AF_DCMotor motor(2,MOTOR12_64KHZ);
void setup(){
motor.setSpeed(200);
}
void loop(){
motor.run(FORWARD);
delay(1000);
motor.run(BACKWARD);
delay(1000);
motor.run(RELEASE);
delay(1000);
}

与步进电机有关的函数

确保导入AFMotor库文件并#include < AFMotor.h>后,有这么几个函数需要用到

  1. AF_Stepper steppername(steps,portnumber)

    • steppername

      给电机起个名字,然后这个名字就是此电机在程序中的代号了

    • steps

      设置电机每转的步数,比如设置36,则每步走1/36转

    • portnumber

      选择电机的通道,范围为1(通道1,2)和2(通道3和4)

  2. Step(steps,direction,style)

    • step

      转动的步数

    • direction

      转动的方向FORWARD 或者 BACKWARD

    • style

      步进的模式,可以选择的参数:

      • SINGLE - 一次只给一相线圈供电
      • DOUBLE - 一次给两项项圈都供电,得到更大的扭矩
      • INTERLEAVE - 电机会运转得更柔滑,因为步数增加了一倍,同时速度也减小一半
      • MICROSTEP - 电机会运转的更柔滑,精度更高,但扭矩也会减小

如果想更精细地控制步进电机,可以使用AccelStepper library,这个库带有电机加减速度功能。

示范:

#include <AFMotor.h>
AF_Stepper motor(200,2);
void step(){
motor.step(200,FORWARD,SINGLE);
motor.release();
delay(1000);
}
Void loop(){
motor.step(100,FORWARD,SINGLE);
motor.step(100,BACKWARD,SINGLE);
motor.step(100,FORWARD,DOUBLE);
motor.step(100,BACKWARD,DOUBLE);
motor.step(100,FORWARD,INTERLEAVE);
motor.step(100,BACKWARD,INTERLEAVE);
motor.step(100,FORWARD,MICROSTEP);
motor.step(100,BACKWARD,MICROSTEP);
}
  • 17
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
前言: Arduino是一款很好的电子制作入门,有了电机扩展板可以很好的成为机器人开发平台。这里介绍一款能驱动各种简单到稍复杂项目的全功能的电机扩展板。这是一款常用的直流电机驱动模块,采用L293D芯片小电流直流电机驱动芯片。管脚被做成了Arduino兼容的,也方便了爱好者快速的基于Arduino的开发。 L293D电机驱动板概述: 该电机驱动板功能多,操作方便,有强大的驱动库支持及功能更新。适用于Arduino初学者,Arduino实验器材平台,Arduino互动电子,Arduino机器人等。可驱动4路直流电机或者2路步进电机的同时还能驱动2路舵机,支持最新Arduino UNO, Arduino Mega 2560 具体特性如下: 2个5V伺服电机(舵机)端口 联接到Arduino的高解析高精度的定时器-无抖动! 多达4个双向直流电机及4路PWM调速(大约0.5%的解析度) 多达2个步进电机正反转控制,单/双步控制,交错或微步及旋转角度控制。 4路H-桥:L293D 芯片每路桥提供.0.6A(峰值1.2A)电流并且带有热断电保护,4.5V to 36V。 下拉电阻保证在上电时电机保持停止状态。 大终端接线端子使接线更容易(10 - 22AWG)和电源。 带有Arduino复位按钮。 2个大终端外部电源接线端子 保证逻辑和电机驱动电源分离。 兼容Mega, Diecimila, & Duemilanove。 实物连接图如截图: L293D电机驱动板/马达板电路截图: L293D电机驱动板源码截图: 类似实物购买链接:https://s.taobao.com/search?q=motor+shield&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index&spm=a21bo.7724922.8452-taobao-item.1&ie=utf8&initiative_id=tbindexz_20151127

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值