在本教程中,我们将使用MSP430连接步进电机。该 MSP-EXP430G2是一个开发工具 也称为LaunchPad的提供由 德州仪器 学习和如何使用自己的微控制器的做法。该评估板属于MSP430价值线类别,在这里我们可以对所有MSP430系列微控制器进行编程。如果您不熟悉MSP,请查看我们的MSP430入门教程。
步进电机:
步进电动机是一种无刷直流电动机,可将电脉冲转换为独特的机械运动。步进电机的轴以不连续的步骤旋转。我们可以根据需要获得精确的步骤和速度。
我们将使用市场上价格便宜的35BYJ46双极步进电机。它有6根线,但也有5根线。我们的步进电机中有2个线圈。每根都有3根电线。在3根导线中,有1根居中,因此其余2根导线直接与线圈连接。总共,我们有4条信号线和2条居中的抽头线,它们与5-12V电源连接。
在这种情况下,如果总共有5根电线从电动机引出,则4根电线是信号线,其中1根在两个线圈的中心抽头。像这样。
要检查哪根电线位于中心抽头或哪根信号线,您必须检查从电动机出来的电线的电阻。因此,与同一个线圈连接的那些导线与中心抽头的电阻相比具有较高的电阻值。
在上图中,如果我们检查了蓝色和黄色电线的电阻值,并且它们之间的电阻大于黄色和红色或蓝色和红色之间的电阻值。因此,红色为中心抽头电线。
我们之前已经将 步进电机与其他微控制器连接:
- 步进电机与Arduino Uno的接口
- Raspberry Pi的步进电机控制
- 步进电机与8051单片机的接口
- 步进电机与PIC单片机的接口
步进电机也可以在没有任何微控制器的情况下进行控制,请参阅此步进电机驱动器电路。
ULN2003步进电机驱动器:
大多数 步进电机 只能在驱动器模块的帮助下运行。这是因为控制器模块(在我们的情况下为MSP)将无法从其I / O引脚提供足够的电流来使电动机运行。因此,我们将使用外部模块(如 ULN2003 模块)作为 步进电机驱动器。驱动器模块的类型很多,一个的额定值将根据所用电机的类型而变化。所有驱动器模块的主要原理是提供/吸收足够的电流以使电动机运行。
在本项目中,我们将使用ULN2003电机驱动器IC。IC的引脚图如下:
如果使用IC,我们将使用4输入和4输出端口。
所需材料:
- MSP430
- 35BYJ46或28-BYJ48步进电机
- ULN2003 IC
- 电线
- 面包板
电路原理图:
在上图中,步进器的RED线未与IC的PIN5连接,必须与5V连接。步进电机的颜色代码可能与电路图中给出的颜色不同。因此,在检查正确的信号线之后再连接电线。
我们将使用Energia IDE编写代码。它与Arduino IDE相同,易于使用。驱动步进器的示例代码也可以在Arduino IDE的示例菜单中找到。
代码和工作说明:
在开始使用MSP430进行编程之前,请让我们了解程序内部实际发生的情况。我们将使用4步顺序方法,因此我们将执行四个步骤来完成一个完整的旋转。将A,B,C和D视为四个线圈。
步 |
销钉通电 |
通电线圈 |
第1步 |
6和7 |
A和B |
第2步 |
7和8 |
B和C |
第三步 |
8和9 |
C和D |
步骤4 |
9和6 |
D和A |
在本教程中,我们将编写 MSP430步进电机代码 。完整的程序可以在本教程的末尾找到,下面解释一些重要的行。
我们的步进电机每转的步数为32;因此我们输入如下行所示
const int STEPS = 32;
接下来,您必须创建实例,在其中指定与步进电机连接的引脚。
Stepper myStepper (STEPS,6,7,8,9 );
由于我们使用的是步进器库,因此可以使用下面的代码行设置电动机的速度。对于35BYJ46步进电机,速度范围为0到200。
Mystepper.setSpeed(200);
现在,要使电动机移动一步,我们可以使用以下行。
myStepper.step(STEPS);
因为我们有32步和64的齿轮比,所以我们需要移动2048(32 * 64 = 2048),以完成一个完整的旋转。现在,上传以下代码并更改编号。步骤根据您的需要。
这是将步进电机与PIC单片机接口的方式,现在您可以发挥自己的创造力并找到相应的应用程序。有很多使用步进电机的项目。