步进电机S曲线运动的代码实现

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

一、目标功能

实现步进电机转动总角度720°,其中加减速各90°

加速段:加速类型:S曲线

加速角度:角度为90°

起步速度:30RPM,

终止速度:500RPM

匀速段:匀速角度:角度为540°

匀速速度:500RPM

减速段:减速类型:S曲线

减速角度:角度为90°

起步速度:500RPM

终止速度:60RPM

图片

二、生成器计算

加速参数计算

图片

匀速参数计算,主要计算电机步数

图片

减速参数计算

图片

三、程序代码

//加速、匀速、减速步数#define step0 100#define step1 600#define step2 100unsigned int n=0;//步数计数变量unsigned int flag=0;//标志位,0:加速段  1:匀速段   2:减速段//加速段90°,30RPM-500RPMconst unsigned char codeTimeH0[100]={0XEC,0XEC,0XEC,0XED,0XED,0XED,0XEE,0XEE,0XEE,0XEF,0XEF,0XF0,0XF0,0XF1,0XF1,0XF2,0XF2,0XF3,0XF3,0XF4,0XF4,0XF5,0XF5,0XF6,0XF6,0XF7,0XF7,0XF8,0XF8,0XF8,0XF9,0XF9,0XFA,0XFA,0XFA,0XFB,0XFB,0XFB,0XFB,0XFC,0XFC,0XFC,0XFC,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE};const unsigned char codeTimeL0[100]={0X78,0XB4,0XF5,0X3B,0X86,0XD6,0X2A,0X84,0XE4,0X48,0XB1,0X1F,0X92,0X9,0X83,0X1,0X82,0X5,0X8A,0X10,0X96,0X1C,0XA0,0X24,0XA5,0X23,0X9E,0X15,0X88,0XF7,0X61,0XC5,0X25,0X80,0XD5,0X26,0X71,0XB7,0XF9,0X36,0X6E,0XA3,0XD3,0X0,0X29,0X4F,0X71,0X91,0XAE,0XC9,0XE1,0XF8,0XC,0X1F,0X2F,0X3F,0X4D,0X59,0X65,0X6F,0X79,0X82,0X8A,0X91,0X97,0X9D,0XA2,0XA7,0XAB,0XAF,0XB3,0XB6,0XB9,0XBC,0XBE,0XC1,0XC2,0XC4,0XC6,0XC7,0XC9,0XCA,0XCB,0XCC,0XCD,0XCE,0XCE,0XCF,0XD0,0XD0,0XD1,0XD1,0XD2,0XD2,0XD2,0XD3,0XD3,0XD3,0XD3,0XD4};//减速段90°,500RPM-60RPMconst unsigned char code TimeH2[100]={0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFD,0XFC,0XFC,0XFC,0XFC,0XFC,0XFB,0XFB,0XFB,0XFB,0XFB,0XFA,0XFA,0XFA,0XFA,0XFA,0XF9,0XF9,0XF9,0XF9,0XF8,0XF8,0XF8,0XF8,0XF8,0XF7,0XF7,0XF7,0XF7,0XF7,0XF7,0XF7,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6,0XF6};const unsigned char codeTimeL2[100]={0XD4,0XD3,0XD3,0XD3,0XD3,0XD2,0XD2,0XD2,0XD1,0XD1,0XD0,0XD0,0XCF,0XCE,0XCE,0XCD,0XCC,0XCB,0XCA,0XC8,0XC7,0XC6,0XC4,0XC2,0XC0,0XBE,0XBB,0XB9,0XB6,0XB2,0XAF,0XAB,0XA6,0XA1,0X9C,0X96,0X90,0X88,0X81,0X78,0X6F,0X64,0X59,0X4D,0X3F,0X31,0X21,0XF,0XFD,0XE8,0XD2,0XBA,0XA0,0X84,0X66,0X46,0X24,0X0,0XD9,0XB0,0X85,0X58,0X28,0XF7,0XC4,0X8F,0X59,0X21,0XE8,0XAE,0X74,0X3A,0X0,0XC6,0X8D,0X54,0X1D,0XE7,0XB3,0X81,0X50,0X22,0XF6,0XCB,0XA4,0X7E,0X5A,0X39,0X1A,0XFD,0XE2,0XC9,0XB2,0X9D,0X89,0X77,0X66,0X57,0X48,0X3C}; void main(){  while(1) {  }}//定时器0中断程序void time0_int() interrupt 1{ //产生一个脉冲 PUL=1; _nop_();_nop_();nop_();nop_(); PUL=0;  n++;//步数加1  switch (flag)//判断运动状态 {    case0://加速段 { if(n==step0)//加速段完成 { n=0; flag=1; TH0=TimeH2[0];//装载定时寄存器匀速段初值 TL0=TimeL2[0]; } else { TH0=TimeH0[n];//装载定时寄存器加速段初值 TL0=TimeL0[n]; } }break;    case1://匀速段 { TH0=TimeH2[0];//装载定时寄存器匀速段初值 TL0=TimeL2[0]; if(n==step1)//匀速段完成 { n=0; flag=2; TH0=TimeH2[n];//装载定时寄存器减速段初值 TL0=TimeL2[n]; } }break; case 2://减速段 { if(n==step2)//减速段完成 { n=0; flag=0; TR0=0;   //电机停止 } else { TH0=TimeH2[n];//装载定时寄存器减速段初值 TL0=TimeL2[n]; } }break;    default:         break; }}

四.总结

通过上述计算,完成S曲线加减速运动。通过调整匀速运动的角度,加减速过程不变,可以实现总转动角度的变化,适用于总转角需要变化且需要较高速度的情况,并且满足总转角应大于加减速转角之和。

对于大多数情况,加减速的过程可以合并,即用S加速的逆过程去实现减速,可以实现代码的简化。


关键字:步进电机 引用地址:步进电机S曲线运动的代码实现

上一篇:步进电机S曲线生成器的计算以及使用
下一篇:如何搭建一个基本的步进电机控制电路?

推荐阅读最新更新时间:2024-11-21 07:36

基于A3992和单片机的两相步进电机驱动系统
1 引言 步进电机定位准确且与数字电路接口连接方便.无需反馈就能实现准确的角位移,在数控机床等许多领域中均得到了广泛应用。但是,传统的步进电机定位系统是由控制器件产生脉冲,然后加在环形分配器和功率驱动部分,最后连接至电机的控制方式,其软硬件的实现都较为复杂,成本偏高,难以满足现代工业发展所需的精度和集成度等要求。采用美国Allegro公司推出的一款易操作,内置功率驱动的A3992型两相步进电机微步距驱动器,以C805117300单片机为控制核心设计了一个驱动控制电路。该驱动控制电路能简单方便实现电机的微步距控制,不仅解决了步进电机步距角大的问题。提高了步进电机的分辨率,减弱或消除了步进电机的低频振动.也改善了电机的其他性能
[单片机]
步进电机工作原理_步进电机三种控制方式
  步进电机工作原理   步进电机是一种特殊的电机,通过逐步变化电磁场的方向和大小来实现旋转运动,可以控制角度和转速。其工作原理如下:   步进电机通常由定子和转子两部分组成。定子上有多个电磁线圈,电磁线圈中的电流会产生磁场。转子上则有多个磁极,磁极的极性和方向与定子的电磁场相对应。定子和转子之间通过空气隙隔开,空气隙非常小,通常只有几微米到数十微米。   当给定子中的一个电磁线圈通电时,该线圈会产生一个磁场。转子上的磁极会被吸引到这个磁场,使得转子旋转一个固定的角度。当定子中的电磁线圈电流改变方向时,转子也会随之改变方向。通过逐步改变电磁场的方向和大小,就可以实现精确的转动控制。   步进电机的步进角度与电磁线圈的数
[嵌入式]
步进电机与伺服电机对比分析
在越来越多的高标准工业自动化应用领域,技术的进步正在改变步进电机和伺服电机之间的性能-成本比。 在采用了闭环技术后,闭环步进电机为用户提供出色的精度和效率,既能达到伺服电机的性能,又具有步进电机的低价优势。成本更低的步进电机正在逐渐渗透到原本被高成本伺服电机所支配的应用领域。 步进电机与伺服电机之对比 根据传统的观念,在需要速度超过800 RPM以及需要高动态响应的应用中,伺服控制系统性能更为出色。步进电机则更适合用于速度较低、低到中等加速度、需要较高保持转矩的应用。 那么这种关于步进电机和伺服电机的传统观念的依据是什么呢?下面让我们来详细分析下。 1 结 构 步进电机采用步进方式转动,利用磁线圈逐步拉动一个磁体,使其
[嵌入式]
<font color='red'>步进电机</font>与伺服电机对比分析
步进电机选型要求 步进电机型号大全
步进电动机的结构形式和分类方法较多,一般按励磁方式分为磁阻式、永磁式和混磁式三种;按相数可分为单相、两相、三相和多相等形式。 在我国所采用的步进电机中以反应式步进电机为主。步进电机的运行性能与控制方式有密切的关系,步进电机控制系统从其控制方式来看,可以分为以下三类:开环控制系统、闭环控制系统、半闭环控制系统。半闭环控制系统在实际应用中一般归类于开环或闭环系统中。 步进电机的基本参数 1、电机固有步距角 它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,这个步距角可以称之为“电机固有步距角 ,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。 2、步进电机的相数 步进电机的相
[嵌入式]
单片机控制步进电机系统
学习了单片机在的基本输入输出和在数据采集领域的应用,接着学习了单片机在控制领域的应用。在控制系统中,通常要控制机械部件的平移和转动,这些机械部件的驱动大都采用交流电机、直流电机和步进电机等,其中步进电机最适合与数字控制。因此在了解单片机在控制系统中的应用时,首先了解了单片机控制步进电机的设计。 主要器件: 1、 AT89C52单片机芯片,用与接受键盘输入和控制步进电机。 2、 4相步进电机驱动芯片STK672-040,内含有硬件脉冲分配电路和功率驱动动能。 3、 4 4行列式键盘。 试验流程图: 试验电路图: 试验程序代码: //Stepper.h程序 #ifndef _STE
[单片机]
单片机控制<font color='red'>步进电机</font>系统
基于AT89C2051的步进电机驱动器系统电路原理
步进电机驱动器系统电路原理图   AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。   图中的RL1~RL4为绕组内阻,50 电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1~D4为续流二极管,使电机绕组产生的
[单片机]
基于AT89C2051的<font color='red'>步进电机</font>驱动器系统电路原理
CAN总线步进电机驱动器
目前,CAN总线步进电机驱动器在当代的应用可谓是越来越广泛,CAN总线步进电机驱动器是值得我们好好学习的,现在我们就深入了解CAN总线步进电机驱动器。  基本内容 现场总线是当今自动化领域技术发展热点之一,被誉为自动化领域计算机局域网。它出现为分布式控制系统实现各节点之间实时、可靠数据通信提供了强有力技术支持。CAN(Controller Area Network)属于现场总线范畴,它是一种有效支持分布式控制或实时控制串行通信网络。较之目前许多RS-485基于R线构建分布式控制系统而言,基于CAN总线分布式控制系统在以下方面具有明显优越性: 首先,CAN控制器工作于多主方式,网络中各节点都可根据总线访问优先权(取决于报文标识
[嵌入式]
步进电机位移的模糊PID控制设计方案
1前言 步进电机本质上是数字离散电机,直接接受数字量,将电脉冲信号转变成位移信号,即给一个脉冲信号,步进电机就转动一个角度。步进电机内部各控制变量高度非线性且相互耦合,而传统PID控制是以精确数学模型为基础的,无法有效应对系统的不确定信息,用不变的PID参数不可能达到较好的控制结果。模糊控制不需要对象的精确数学模型,对系统变化不敏感,鲁棒性好,抗干扰性强。但是由于它的模糊性,稳态精度不好。对于这种情况,可以把模糊控制和PID控制结合起来。 2混合式步进电机数学模型 本文采用两相步进电机,在忽略互感、漏磁、磁滞、涡流、饱和等影响的情况下,我们采用可以对于一相用一等值有效RL电路绕组进行分析。 选用
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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