将步进电机与ARM7-LPC2148连接起来的方法

发布者:Xiangsi最新更新时间:2023-02-09 来源: elecfans关键字:步进电机  ARM7  LPC2148 手机看文章 扫描二维码
随时随地手机看文章

在当今的自动化世界中,步进电机和伺服电机是嵌入式系统中最常用的两种电机。两者都用于各种自动化机器,如机械臂、CNC 机器、相机等。在本教程中,我们将了解如何将步进电机与 ARM7-LPC2148 连接以及如何控制它的速度。


步进电机

步进电机是无刷直流电机,可以小角度旋转,这些角度称为步进。我们可以通过向其引脚提供数字脉冲来逐步旋转步进电机。步进电机价格便宜且设计坚固。电机的速度可以通过改变数字脉冲的频率来控制。

pYYBAGMtc3KAOIR1AAA5saEfR0g545.jpg

根据定子绕组的类型,有两种类型的步进电机可用: 单极 和 双极。这里我们使用的是最常用的步进电机UNIPOLAR步进电机。要旋转步进电机,我们需要按顺序为步进电机的线圈通电。根据旋转操作,它们分为两种模式:

全步模式:(4步序列)

单相步进(WAVE STEPPING)

两相步进

半步模式(8 步序列)

要了解有关步进电机及其操作的更多信息,请点击链接。

使用 ARM7-LPC2148 旋转步进电机

pYYBAGMtc3aAHHeEAACKtPpkgRI919.jpg

在这里,我们将使用FULL STEP: ONE PHASE ON 或 WAVE STEPPING模式使用 ARM7-LPC2148 旋转步进电机

在这种方法中,我们一次只能为一个线圈(LPC2148 的一个引脚)通电。也就是说,如果第一个线圈A通电一小段时间,轴将改变其位置,然后线圈B同样通电,轴将再次改变其位置。与此相同,线圈 C 和线圈 D 通电以进一步移动轴。这使得步进电机的轴通过一次激励一个线圈来逐步旋转。


通过这种方法,我们通过依次为线圈通电来逐步旋转轴。这被称为四步序列,因为它需要四个步骤。


您可以根据下面给出的值使用半步法(8 序列法)旋转步进电机。

pYYBAGMtc0CAJLN9AAASNtlO03Y685.png

所需组件

硬件:

ARM7-LPC2148

ULN2003电机驱动IC

LED – 4

步进电机 (28BYJ-48)

面包板

连接线

软件:

凯尔uVision5

Flasic 魔法工具

步进电机 (28BYJ-48)

28BYJ-48步进电机已如上图所示。它是一个 单极步进 电机,需要 5V 电源。该电机采用 4 线圈单极排列,每个线圈的额定电压为 +5V,因此使用任何微控制器(如 Arduino、Raspberry Pi、STM32、ARM 等)都相对容易控制。


但是我们需要一个像 ULN2003 这样的电机驱动 IC 来驱动它,因为步进电机消耗大电流并且可能会损坏微控制器。


28BYJ-48 的规格在以下数据表中提供:

poYBAGMtczqAUrpMAAEmaKWpAaY107.png

ULN2003步进电机驱动器

大多数 步进电机 只能在驱动模块的帮助下运行。这是因为控制器模块(在我们的例子中为 LPC2148)将无法从其 I/O 引脚提供足够的电流以供电机运行。所以我们将使用像 ULN2003 模块这样的外部模块作为 步进电机驱动器。


在这个项目中,我们将使用 ULN2003 电机驱动器 IC。IC的管脚图如下:

poYBAGMtcy6AEUZTAACrAvkk0VA402.png

引脚(IN1 至 IN7)是用于连接微控制器输出的输入引脚,OUT1 至 OUT7 是用于连接步进电机输入的相应输出引脚。COM 提供输出设备和外部电源输入源所需的正电源电压。

电路原理图

下面给出了将步进电机与 ARM-7 LPC2148 连接的电路图

poYBAGMtcyqAfIORAAF6MkRiagg668.pngpYYBAGMtc3mAUlAIAACnXpVq_Mo905.jpg

带有 ULN2003 电机驱动器 IC 的 ARM7-LPC2148

LPC2148 的 GPIO 引脚(P0.7 至 P0.10)被视为与 ULN2003 IC 的输入引脚(IN1-IN4)相连的输出引脚。

poYBAGMtcySAH1SKAAAP0AgK3UU204.png

ULN2003 IC与步进电机的连接(28BYJ-48)

ULN2003 IC 的输出引脚 (OUT1-OUT4) 连接到步进电机引脚(蓝色、粉色、黄色和橙色)。

poYBAGMtcx2ABUqSAAAQY17bj-8315.png

ULN2003 的 IN1 到 IN4 的 LED

四个 LED(LED1、LED2、LED4、LED 4)阳极引脚分别与 ULN2003 的引脚 IN1、IN2、IN3 和 IN4 连接,LED 的阴极连接到 GND,用于指示来自 LPC2148 的脉冲。我们可以注意到所提供的脉冲模式。模式显示在最后附上的演示视频中。

为步进电机编程 ARM7-LPC2148

要对 ARM7-LPC2148 进行编程,我们需要 keil uVision 和 Flash Magic 工具。我们正在使用 USB 电缆通过微型 USB 端口对 ARM7 Stick 进行编程。我们使用 Keil 编写代码并创建一个 hex 文件,然后使用 Flash Magic 将 HEX 文件闪存到 ARM7 棒。

使用 ARM 7 控制步进电机的完整代码 在本教程的末尾给出,这里我们解释它的几个部分。

1.为了使用完整的 STEP-ONE PHASE ON方法,我们需要包含以下命令。所以我们在程序中使用下面这行

无符号字符顺时针[4] = {0x1,0x2,0x4,0x8};//顺时针旋转命令
unsigned char antilateral[4] = {0x8,0x4,0x2,0x1}; //逆时针旋转命令
2.以下行用于将 PORT0 引脚初始化为输出并将它们设置为 LOW

PINSEL0 = 0x00000000;//设置PORT0引脚
IO0DIR |= 0x00000780; //设置引脚P0.7、P0.8、P0.9、P0.10为OUTPUT
IO0CLR = 0x00000780; //设置P0.7、P0.8、P0.9、P0.10引脚输出为低
3.通过使用此for循环延迟,根据顺时针命令将 PORT 引脚(P0.7 至 P0.10)设置为高电平

for (int j=0; j {
for(int i=0; i<4;i++)
{
IOPIN0 = 顺时针[i]<<7; // 左移后将引脚值逐一设置为 HIGH
delay(0x10000); //改变这个值来改变旋转速度
}
}
Anti-clock Wise 也一样

for (int z=0;z {
for(int i=0; i<4;i++)
{
IOPIN0 =逆时针[i]<<7;
延迟(0x10000);//改变这个值来改变旋转速度
}
}
4.改变延迟时间改变步进电机的转速

延迟(0x10000);//更改此值以更改旋转速度
(0x10000)-全速
(0x50000)-变慢
(0x90000)-比以前变慢。因此,通过增加延迟,我们降低了旋转速度。
5.一整圈的步数可以用下面的代码改变

int no_of_steps = 550; //将此值更改为所需的旋转步数(550 为一个完整的旋转)
对于我的步进电机,完全旋转有 550 步,半旋转有 225 步。所以根据你的要求改变它。

6.此功能用于创建延迟时间。

void delay(unsigned int value) //产生延迟的函数
{
unsigned int z;
for(z=0;z<值;z++);
}


关键字:步进电机  ARM7  LPC2148 引用地址:将步进电机与ARM7-LPC2148连接起来的方法

上一篇:如何在ARM7-LPC2148中使用ADC
下一篇:使用ARM7-LPC2148控制伺服电机的教程

推荐阅读最新更新时间:2024-10-30 15:15

如何实现简单的步进电机多段控制呢?
一、目标功能 输入多个目标角度,以及每个角度对应的速度,实现 步进电机 的多段多速度转动 二、计算过程 **2.1 **简化C与n函数关系 根据上一节内容, 定时器 初值与速度函数关系为 硬件 系统确定后,angle、Xtal、X均为定值,为降低计算量,将公式中可以提前计算好的地方直接计算出来 根据硬件设置情况,step=1.8,Xtal=12000000,X=2,计算K值 2.2计算步数(step_num)与角度(angle)函数关系 三、程序代码 //定义步进电机转动段数及运动参数 #define para 5 unsigned int angle ={90,360,720,180,0}; //电机目标
[嵌入式]
如何实现简单的<font color='red'>步进电机</font>多段控制呢?
控制步进电机正反转的实际应用程序
/*这是一个控制步进电机正反转的实际应用程序*/ /*选用的是三相步进电机驱动器,p14口线用做步进电机的脉冲控制*/ /*p13口线用做步进电机的方向控制。p15,p16,p17是光耦开关量输入*/ /*信号端,p20,p21,p22,p23与x25045看门狗存储器相连*/ /*k7,k8键是设定步进电机转动速度参数的加减键*/ /*k9是启动运行键,按一下k9,步进电机开始运行,直到p17口线有信号输入才停止*/ /*k10是停止键,任何时候按下k10都将停止步进电机当前的运行*/ /*k11是步进运行键,按一下,步进电机动一下*/ /*k12键是反向运行键,按一下,步进电机开始反向运行,知道p15口线有信号才停止*/ /*
[单片机]
基于MC9S12HZ256的总线式汽车数字仪表设计
汽车仪表经历机械式、电气式、模拟电路电子式和全数字式的发展过程,日前正处在从模拟电路电子式转向全数字式的时期。带CAN总线接口的汽车仪表采集并处理传感器的车速、油量、油压等信号,并根据SAE J1939协议读取发动机转速、水温等信息。陔型汽车仪表具有指示精度高、反应灵敏、结构简单、可靠性高等优点,代表汽车仪表的发展方向。 1 CAN总线与SAE J1939协议 1.1 CAN总线与SAE J1939协议简介 控制器局域网CAN(Controller Area Network)是用于众多控制单元、测试仪器之间实时数据交换而开发的一种串行通信协议,CAN2.0包括2.OA和2.0B两部分。CAN拓扑结构为总线式,所以也称CA
[单片机]
基于MC9S12HZ256的总线式汽车数字仪表设计
MP28GA步进电机C语言测试程序
/************ 步进电机测试程序 步进电机型号:MP28GA步进电机 驱动芯片:ULN2003 连接方式:P10~P13分别接ABCD Author:Kevin Chin Date:2010/07/17 Email:kevinchin@qq.com ************/ #include reg52.h #define MotorPort P1 //unsigned char FMove = {0xf1, 0xf2, 0xf4, 0xf8}; //单四拍节 A、B、C、D驱动 //unsigned char FMove = {0xf3, 0xf6, 0xfc, 0xf9}; //双四拍节 AB
[单片机]
英伟达公布新版汽车用多功能处理器Tegra技术细节
  不久前,美国英伟达(NVIDIA)公开了新版低功耗多功能处理器“Tegra”的概要。这是一款配备8个处理器但平均耗电量只有1W左右的嵌入用SoC(系统芯片),计划用于汽车领域。   此前英伟达的具备高分辨率影像播放功能的GPU(Graphic Processing Unit)曾经在汽车上实际采用过。该款GPU可显示1280×720像素的高精细画质影像,需要与CPU(中央处理器)配合使用,已用于法国标致(Peugeot)等7家公司的21种车型上。而Tegra除GPU外,还整合了CPU和语音影像处理器,因此现行版本主要面向 智能手机 和移动信息设备。不过新版支持1920×1080像素的高精细画质影像,还可应用于汽车领域。  
[汽车电子]
英伟达公布新版汽车用多功能处理器Tegra技术细节
基于ARM7的无线传感器网络节点能量管理初探
1 引言 微小的、资源非常有限的无线传感器网络节点是无传感器网络的基本功能单元,担负着信息采集、数据处理、信息传输等重任。 随着MEMS技术、微电子技术、网络技术和计算机技术的进步,逐渐使得无线传感器网络成为现实。研究人员利用嵌入式技术开发出了小型化板级无线 传感器网络节点,而这在30年前还仅是一种构想;单片无线传感器网络节点也已经问世,但距离实用仍有相当一段路要走。为了研究无线传感器网络的组网技术和 能量管理技术我们采用基于ARM7核的SOC单片机LPC2138开发了一种传感器网络节点(如图1)。    2 节点设计概述 相对于处理器运算速度和功耗提高的幅度而言,电池性能的提高则
[单片机]
基于<font color='red'>ARM7</font>的无线传感器网络节点能量管理初探
基于ARM7内核的IP电话设计
  传统的电话网是以电路交换的方式传输语音信号的,它需要的基本带宽为64Kb/s。据统计,在正常的通话情况下,大约只有40%的时间为有声期,其余时间电路均为空占,网络带宽利用率不高。随着计算机技术的不断发展,尤其是互联网络的不断完善,基于分组交换的数据通信成为最重要的通信方式。而要在基于IP的分组网络上传输语音,就必须对模拟的语音信号进行特殊的处理,使处理后的信号可以适合在面向无连接的分组网络上传输,这就是分组语音技术。本文介绍的就是一种基于ARM7内核的IP电话设计。   G.728编码标准   语音编码技术是IP电话的核心技术之一,编码质量的好坏直接关系到IP电话的通信质量。     G.728标准的语音编码算法是1
[单片机]
基于<font color='red'>ARM7</font>内核的IP电话设计
通过PC的USB端口控制多个步进电机
USB的众多便利使设计师能将该总线用于许多应用。例如,图中显示的是一个利用现成的便宜器件搭建的基于USB的4步进电机控制器。该电路没用MCU和DSP。它利用简单逻辑电路和应用软件控制步进电机的选择、其顺/逆时针的运行方向以及三种步进幅度:全步、半步和微步。 该设计基于一个USB转FIFO的并行接口模块(IC1)。这款名为DLP-USB245M的模块提供8位双向数据总线和诸如WR、RD、RXF和TXE等控制信号,利用这些信号控制PC和任何采用USB协议的外接电路的数据流。 利用该模块免去了需应付繁琐的USB接口的工作。另外,该模块带可通过高级语言容易快速地控制模块功能的驱动器软件,从而无需太多牵挂USB协议。 该控制器电路
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved