Easy Driver:双极步进电机驱动的实用方案

电子说

1.4w人已加入

描述

Easy Driver:双极步进电机驱动的实用方案

引言

在电子工程领域,步进电机的应用十分广泛,而双极步进电机更是因其出色的性能受到众多工程师的青睐。Easy Driver作为一款能够驱动每相电流在150mA至700mA之间的双极步进电机的驱动模块,为工程师们提供了便捷、高效的解决方案。本文将详细介绍Easy Driver的相关信息,包括所需材料、硬件连接、代码实现以及额外资源等内容。

文件下载:ROB-12779.pdf

所需材料

要完成Easy Driver的应用,我们需要准备以下材料:

  1. 步进电机及电缆(ROB - 09238):这是一款简单而强大的步进电机,配备4线电缆。
  2. 母头插针(PRT - 00115):单排40孔母头插针,可根据需要裁剪。
  3. SparkFun RedBoard(DEV - 12757):采用Arduino编程的开发板,可作为微控制器使用。
  4. 6英寸优质公对公跳线(PRT - 11709):共10根,20AWG规格,方便电路连接。

在连接时,我们既可以直接焊接到Easy Driver上,也可以使用插针来连接电源、电机等,具体选择取决于实际应用。

硬件概述

引脚功能

  • SLP:逻辑输入,拉低时输出禁用,功耗最小。
  • MS1:逻辑输入,其高低电平功能可参考真值表。
  • GND:接地引脚。
  • STEP:逻辑输入,该引脚从低电平到高电平的任何转换都会触发电机前进一步,步进的方向和大小由DIR和MSx引脚设置控制,电压范围根据逻辑选择可为0 - 5V或0 - 3.3V。
  • DIR:逻辑输入,该引脚决定电机的旋转方向,状态从高到低或从低到高的变化仅在STEP命令的下一个上升沿生效,电压范围同样根据逻辑选择可为0 - 5V或0 - 3.3V。

微步选择分辨率真值表

MS1 MS2 微步分辨率
L L 全步(2相)
H L 半步
L H 四分之一步
H H 八分之一步

焊接跳线

  • 3/5V:该跳线允许用户将VCC配置为3.3V或5V。跳线断开时,VCC为5V;跳线闭合时,VCC为3.3V。
  • APWR:此跳线允许用户将5V/GND引脚上的Vcc提供给外部硬件。

电位器

板上的电位器用于让用户选择提供给电机的最大电流,范围为150mA至750mA。使用时需要注意电机能够承受的电流范围,可查看电机的数据手册获取相关信息。若无法找到该信息,可先将电位器设置到最低值,在电机以缓慢且稳定的速度运行时,慢慢转动电位器并观察电机的运行情况,找到电机不出现失步或抖动的最佳设置点。

硬件连接

连接电机线圈线

首先需要确定所使用电机每个线圈的线对。最可靠的方法是查看电机的数据手册。如果使用的是4线或6线步进电机,即使没有数据手册也可以确定线圈线对。

  • 4线电机:取一根线,测量其与其余三根线的电阻,电阻最小的那根线即为配对线,剩下的两根线之间的电阻应相似。
  • 6线电机:先确定三个线中哪三个属于一个线圈。选一根线,测试其与其他所有线的连接情况,会有两根线与所选线之间有一定电阻,另外三根线则无连接。确定一个线圈的三根线后,找出其中电阻最大的两根线,即为该线圈的两根线,对另一组三根线重复此操作。 确定线圈线对后,将第一对线圈线插入Coil A + 和Coil A - ,第二对插入Coil B + 和Coil B - ,线圈没有极性,无需担心插反。例如,使用4线电机时,连接方式为:A + 连接绿色线,A - 连接红色线,B + 连接蓝色线,B - 连接黄色线。需要注意的是,在Easy Driver通电时,不要连接或断开电机。

连接电源

电机连接好后,可将电源连接到Easy Driver。可以使用任何类型的电源,如台式电源、墙式适配器、电池电源等,但要确保电源能够提供高达2A的电流,且电压范围在6V至30V之间。将电源连接到M + 和GND,连接或断开电机前务必先断开电源。

连接微控制器

以SparkFun RedBoard为例,任何工作在3.3V或5V逻辑、具有带PWM功能的数字I/O的微控制器都可以使用。引脚连接如下:

  • RedBoard的D2引脚连接Easy Driver的STEP引脚。
  • RedBoard的D3引脚连接Easy Driver的DIR引脚。
  • RedBoard的D4引脚连接Easy Driver的MS1引脚。
  • RedBoard的D5引脚连接Easy Driver的MS2引脚。
  • RedBoard的D6引脚连接Easy Driver的ENABLE引脚。

Arduino代码实现

基本代码示例

下载示例草图后,可将代码上传到开发板。代码的第一部分定义了RedBoard和Easy Driver之间的所有引脚连接,并将这些引脚设置为输出,使其处于正确的逻辑电平以开始驱动电机。同时,代码以9600bps的速率初始化串口连接,方便用户控制电机功能并在需要时调试电路。

主循环

主循环部分比较简单,RedBoard扫描串口以获取用户输入,将其与电机的四种可能功能进行比较,根据用户输入触发相应功能。若未收到有效输入,RedBoard会通过串口打印错误信息。完成请求的功能后,Easy Driver上的引脚将重置为默认状态。

四个功能函数

  1. StepForwardDefault():电机以默认微步模式向前旋转。方向引脚拉低,定义为“向前”方向,通过不断切换STEP引脚的高低电平,使电机前进一步,重复1000次后请求用户输入。
  2. ReverseStepDefault():电机以默认微步模式反向旋转。与向前旋转功能类似,只是将方向引脚拉高,改变电机的旋转方向。可以通过修改delay()函数的值来调整电机的速度,增大延迟会使电机变慢,减小延迟则会使电机变快。
  3. SmallStepMode():电机以八分之一微步模式向前旋转。将MS1和MS2引脚拉高,设置板的逻辑为八分之一微步模式。
  4. ForwardBackwardStep():电机可以在运行过程中改变方向。该函数会使电机向前步进1000步,然后反向步进1000步,实现精确的位置控制。

额外示例与资源

额外示例

除了上述示例,还可以安装AccelStepper库,该库包含一些额外的示例,可能对使用Easy Driver有所帮助。此外,还可以在Brian的Easy Driver页面找到更多示例。

资源与拓展

完成Easy Driver对步进电机的控制后,可以将其应用到自己的项目中,如CNC机器、遥控旋转艺术装置等。如果有任何反馈,可以访问评论区或联系技术支持团队(TechSupport@sparkfun.com)。同时,还可以查看以下额外资源获取更多信息和项目创意:

  • Schmalz Haus Easy Driver主页
  • GitHub仓库
  • A3967数据手册
  • The Great American Tweet Race
  • 自动驾驶车辆竞赛
  • Arduino控制的通灵板

通过以上介绍,相信大家对Easy Driver有了更深入的了解,希望能在实际项目中发挥其优势,实现更多创意。你在使用Easy Driver的过程中遇到过哪些问题呢?欢迎在评论区分享。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分