描述
Easy Driver:双极步进电机驱动的实用方案
引言
在电子工程领域,步进电机的应用十分广泛,而双极步进电机更是因其出色的性能受到众多工程师的青睐。Easy Driver作为一款能够驱动每相电流在150mA至700mA之间的双极步进电机的驱动模块,为工程师们提供了便捷、高效的解决方案。本文将详细介绍Easy Driver的相关信息,包括所需材料、硬件连接、代码实现以及额外资源等内容。
文件下载:ROB-12779.pdf
所需材料
要完成Easy Driver的应用,我们需要准备以下材料:
- 步进电机及电缆(ROB - 09238):这是一款简单而强大的步进电机,配备4线电缆。
- 母头插针(PRT - 00115):单排40孔母头插针,可根据需要裁剪。
- SparkFun RedBoard(DEV - 12757):采用Arduino编程的开发板,可作为微控制器使用。
- 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上的引脚将重置为默认状态。
四个功能函数
- StepForwardDefault():电机以默认微步模式向前旋转。方向引脚拉低,定义为“向前”方向,通过不断切换STEP引脚的高低电平,使电机前进一步,重复1000次后请求用户输入。
- ReverseStepDefault():电机以默认微步模式反向旋转。与向前旋转功能类似,只是将方向引脚拉高,改变电机的旋转方向。可以通过修改delay()函数的值来调整电机的速度,增大延迟会使电机变慢,减小延迟则会使电机变快。
- SmallStepMode():电机以八分之一微步模式向前旋转。将MS1和MS2引脚拉高,设置板的逻辑为八分之一微步模式。
- 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阅读更多精彩内容