在本篇文章中,我们将介绍如何使用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看作四个线圈。
在本篇文章中中,我们将编写MSP430步进电机代码。完整的程序可以在本文末尾处给出,下面将解释几段重要的代码。
步进电机每转的步数为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 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); } 本篇文章使用的完整代码如下:
上一篇:使用MSP430连接RTC模块(DS2321)制作数字时钟
下一篇:MSP430系列嵌入式实验教程---基础
推荐阅读
史海拾趣
Aerotronics Marketing Inc公司注重与高校和研究机构的合作,通过产学研合作的方式推动技术创新。公司与多所知名高校建立了紧密的合作关系,共同开展无人机技术的研发和应用研究。这种合作模式不仅为公司提供了源源不断的技术支持和人才储备,还推动了整个电子行业的技术进步。
Elite公司成立于20世纪90年代末,由一群热衷于电子技术的年轻人创立。在初创阶段,Elite面临着资金短缺、市场竞争激烈的挑战。然而,公司凭借其独特的创新理念和过硬的技术实力,成功研发出一款具有高性价比的智能手机,迅速在市场上获得认可。这款产品不仅帮助Elite实现了初步盈利,更为公司后续发展奠定了坚实基础。
圜达实业于1985年在台湾新北市创立,创始人凭借对电子开关行业的深刻理解和前瞻视野,决定专注于研发制造各类程序开关、触动开关等产品。公司初创时期面临资金短缺、市场竞争激烈等挑战,但创始人凭借坚定的信念和不懈的努力,逐步在市场上站稳脚跟。
在2003年,全鹏公司成为巴西Coletek集团的一员,开始了其在南美洲市场的征程。起初,全鹏在巴西设立了提供系统组装所需机壳、键盘、鼠标、喇叭等配件的组装工厂,以满足当地市场的初步需求。随着业务的不断扩大,全鹏在2004年与当地市政府合作,规划并建设了一座总厂房面积达8000平方公尺的新工厂,配置了六条组装生产线和两条印刷生产线,以及一个发货仓库。这座新工厂迅速成为全鹏在巴西市场的发货中心,推动了全鹏在当地的业务增长。
长园维安一直注重产品质量管理。公司建立了完善的质量管理体系,通过ISO9001、TS16949等认证,确保产品质量的稳定性和可靠性。此外,长园维安还积极推行6Sigma等质量管理方法,不断提高产品质量和客户满意度。这些措施使长园维安赢得了客户的信赖和好评。
随着全球环保意识的不断提高,Ferroperm公司也积极响应环保号召,致力于可持续发展。他们采用环保材料和生产工艺,减少生产过程中的污染和废弃物排放。同时,Ferroperm还积极参与环保公益活动,推动环保理念的普及和传播。这种对环保的关注和投入不仅体现了公司的社会责任感,也为公司的长远发展奠定了坚实的基础。
目前,安全和保密在多个市场领域中都成为差异化应用解决方案的重要部分。汽车行业也不例外。消费者的快速接受进一步促进了汽车行业中许多新兴热点应用的发展。安全和保密解决方案在消费市场和汽车市场之间提供了一个协作的桥梁。许多分析师都预测到 ...… 查看全部问答∨ |
|
在这我只想发发牢骚……因为我现在就是在闲着,时时刻刻都开着EEWORLD 快毕业了,本来找工作都几乎没什么搭理的,发过好多简历都石沉大海。毕竟我只是专科学历,虽然参加过几次比赛,但感觉这些经历并没给我找工作带来什么的。 ...… 查看全部问答∨ |
C:\\icc\\bin\\imakew -f xiaoche.mak iccavr -c -IC:\\icc\\include\\ -e -l -g -Wa-W C:\\DOCUME~1\\Administrator\\MYDOCU~1\\小车\\xiaoche.c !W C:\\DOCUME~1\\Administrator\\MYDOCU~1\\小车/drv.h(14 ...… 查看全部问答∨ |
在TI-2812开发板上调试485通讯,用串口调试器向下发数据时,RX状态寄存器显示有帧错误,从下望上发数据时,串口调试器接受的数据是错误的,但发送0是接受到的也是0.请高手帮帮忙! … 查看全部问答∨ |
Wince 下用C#实现媒体播放,最好是Media Player的调用。希望有经验的各位前辈随便露两手绝艺,让俺开开眼届。最好有源码!! Wince 下用C#实现媒体播放,最好是Media Player的调用。希望有经验的各位前辈随便露两手绝艺,让俺开开眼届。最好有源码!! … 查看全部问答∨ |
我在VS2005中建了一个c++的移动设备的MFC,是一个264 的解码器,现在要加一个显示的程序,最好能解一点播一点,本来VC上有源程序,移植后无法使用,现在毕设中,急啊,哪位仁兄能帮我看看用什么方法显示,谢谢,本人菜鸟,不好意思!! ...… 查看全部问答∨ |
|