使用MSP430G2 LaunchPad开发板连接步进电机
[复制链接]
如何使用MSP430 LaunchPad开发板连接一个步进电机。 MSP-EXP430G2是德州仪器(TI)提供的开发工具,又名LaunchPad,用于学习和练习如何使用他们提供的微控制器。该开发板属于MSP430产品线,我们可以使用它对所有MSP430系列微控制器进行编程。如果您是MSP430的新手,请查看MSP430 LaunchPad的入门教程。
所需的材料
● MSP430 LaunchPad开发板
● 35BYJ46或28-BYJ48步进电机
● ULN2003驱动芯片
● 连接导线
● 面包板
步进电机
步进电机是一种无刷直流电机,可将电脉冲转换为不同的机械运动。步进电机的轴以不连续的步骤旋转。我们可以根据需要获得精确的步数和速度。
我们将使用市场上价格便宜的35BYJ46双极步进电机。它有6根电线,但也有5根电线的。步进电机有2个线圈。每个都有3根电线从中出来。在3根导线中,1根中心抽头,剩下2根导线直接与线圈连接。总共有4根信号线和2根中心抽头,用5-12V电源连接。
如果总共有5根电线从电机出来,则4根电线是信号线,1根电线中心抽到两个线圈。和下图一样。
要检查哪根导线是中心抽头或者哪根是信号线,您必须检查从电机出来的导线的电阻。因此,与中心抽头的电阻相比,连接同一根线圈的那些导线具有高电阻值。
在上图中,如果我们检查了蓝线和黄线的电阻值,它们之间的电阻大于黄线和红线或蓝线和红线之间的值。所以,红色线是中心抽头。
ULN2003步进电机驱动芯片
大多数步进电机只能在驱动模块的帮助下运行。这是因为控制器模块(在我们的情况下是MSP430)无法从其I / O引脚提供足够的电流以使电机运行。因此我们将使用像ULN2003模块这样的外部模块作为步进电机驱动。有许多类型的驱动模块,其中驱动模块的选择根据所用电机的类型而改变。所有驱动器模块的主要原理是为电动机提供足够的电流以使其运行。
在这个项目中,我们将使用ULN2003电机驱动器IC。 IC的引脚图如下:
我们使用4个输入端口和4个输出端口。
电路原理图
在上图中,步进电机的红线没有与IC的PIN5连接,该线必须连接到5V。步进电机的颜色代码可能与电路图中给出的颜色不同。因此,在检查正确的信号线后再连接导线。
我们将使用Energia IDE开发环境编写代码。它与Arduino IDE相同,易于使用。用于驱动步进器的示例代码也可以在Arduino IDE的示例菜单中找到。
代码和说明
在我们开始对MSP430进行编程之前,让我们了解一下程序内部的工作流程。我们将使用4步序列方法,因此将有四个步骤来执行一次完整的旋转。将A、B、C和D看作四个线圈。
步进电机每转的步数为32;因此我们在代码行中写入以下内容:
const int STEPS = 32;
复制代码
接下来,您必须创建一个实例,在该实例中我们指定了连接步进电机的引脚。
Stepper myStepper (STEPS, 6, 7, 8, 9);
复制代码
由于我们使用的是Stepper库,我们可以使用以下代码行设置电机的速度。对于35BYJ46步进电机,速度范围在0到200之间。
Mystepper.setSpeed(200);
复制代码
现在,为了使电机向前移动一步,我们可以使用以下行。
myStepper.step(STEPS);
复制代码
由于我们有32步和64作为齿轮比,我们需要移动2048(32 * 64 = 2048),以完成一次完整的旋转。现在,上传以下代码,然后根据您的需要更改前进的步数。
代码
本篇文章使用的完整代码如下:
#include <Stepper.h>
const int STEPS = 32; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 6 through 9 or you can use any pins on MSP430:
Stepper myStepper(STEPS, 6,7,8,9);
void setup() {
// set the speed at 200rpm or as you want:
myStepper.setSpeed(200);
}
void loop() {
myStepper.step(STEPS);
}
|