0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现简单的步进电机多段控制呢?

冬至子 来源:皮皮黄步进电机 作者:皮皮黄步进电机 2023-10-26 16:38 次阅读

一、目标功能

输入多个目标角度,以及每个角度对应的速度,实现步进电机的多段多速度转动

二、计算过程

**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[5]={90,360,720,180,0}; //电机目标转角
unsigned int v[5]={20,60,120,60,20}; //电机速度
void main()
{ 
//计算step_num与c
 step_num=10*angle[0]/9;
 c=65536-150000/v[0];//计算V[0]对应的定时器初值

 while(1)
 {

 }
}
//定时器0中断程序
void time0_int() interrupt 1
{
 TH0=c/256;//重装定时寄存器初值
 TL0=c%256;

 //低电平切换到高电平,产生一个脉冲
 PUL=1;
 _nop_();_nop_();nop_();nop_();
 PUL=0;

 DIR==1?n++:n--;//根据方向,判断步数加或减

 if(n==step_num)//当前阶段完成判断
 {
 i++;
 if(i==para)//整个运动阶段走完
 {
 TR0=0;//电机停止
 }
 else   //计算下一阶段参数
 {
 //刷新步数与速度值
 step_num=10*angle[i]/9;
 c=65536-150000/v[i];

 //判断方向
 if(angle[i] >angle[i-1])
 DIR=1;
 else
 DIR=0;
 }
 }
}

四、总结

此种方式利用定时器精确定时能力,从而控制电机转速,同时实现步进电机的多段运动,至此实现了步进电机三个主要参数角度、速度、方向的简单协同操作。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120317
  • 步进电机
    +关注

    关注

    150

    文章

    3110

    浏览量

    147467
  • 定时器
    +关注

    关注

    23

    文章

    3248

    浏览量

    114770
  • 定时器中断
    +关注

    关注

    0

    文章

    49

    浏览量

    11174
  • 控制电机
    +关注

    关注

    0

    文章

    240

    浏览量

    18131
收藏 人收藏

    评论

    相关推荐

    基于FPGA的步进电机控制器该怎么设计?

    步进电机是一种完全数字化的电动执行机构,从原理上说,其角位移与驱动脉冲的个数成正比,在正常情况下,步进电机具有使用简单、运动精确、连续运行无
    发表于 09-19 06:55

    如何实现步进电机的正反转动控制

    前言 上一讲我们已成功实现步进电机的正反转动控制,并简单的通过调节节拍间的延时时间实现
    发表于 07-08 08:30

    怎样去实现STM32控制步进电机的源程序

    怎样去实现STM32控制步进电机的源程序?求解
    发表于 12-20 06:32

    如何去实现TMC5160步进电机简单转动

    TMC5160步进电机有哪几种模式?如何去实现TMC5160步进电机
    发表于 12-20 07:48

    怎样使用GPIO去实现步进电机控制

    ULN2003是什么?有哪些特点及其功能?怎样使用GPIO去实现步进电机控制
    发表于 02-11 07:49

    步进电机控制系统的设计与实现

    论文介绍了步进电机控制原理,利用脉冲叠加原理,以Verilog HDL 为实体设计输入,设计并实现了一套集成于FPGA 内部的步进
    发表于 01-18 14:52 314次下载

    步进电机控制系统的设计与实现

    论文介绍了步进电机控制原理,利用脉冲叠加原理,以Verilog HDL为实体设计输入,设计并实现了一套集成于FPGA内部的步进
    发表于 07-13 16:14 45次下载

    基于FPGA的步进电机控制器的设计

    提出一种应用现场可编程门阵列(FPGA)实现步进电机控制器的方法。采用IP设计思想,步进
    发表于 12-06 10:41 24次下载
    基于FPGA的<b class='flag-5'>多</b>轴<b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器的设计

    步进电机插补控制器及步进电机运动控制控制方法pdf资料分享

    步进电机插补控制器及步进电机运动
    发表于 04-11 10:24 29次下载

    分析:plc是否能够控制步进电机

    良好的控制能力,利用其高速脉冲输出功能或运动控制功能,即可实现步进电机控制。 众所周知,
    发表于 01-12 16:14 4117次阅读

    如何使用FPGA实现步进电机控制

    ,极大地减少了外围元件的使用。同时,采用V HDL 语言控制可以根据步进电机的不同,改变模块程序的参数就可以实现不同型号步进
    发表于 02-05 11:37 27次下载
    如何使用FPGA<b class='flag-5'>实现</b><b class='flag-5'>步进</b><b class='flag-5'>电机</b><b class='flag-5'>控制</b>器

    步进电机控制方式

    步进电机驱动系统。此种控制电路设计简单,功能大,可实现一般 步进
    的头像 发表于 08-09 23:27 1.7w次阅读

    简单实现51单片机步进电机的驱动

    简单实现51单片机步进电机的驱动说明:
    发表于 11-11 13:06 38次下载
    <b class='flag-5'>简单</b><b class='flag-5'>实现</b>51单片机<b class='flag-5'>步进</b><b class='flag-5'>电机</b>的驱动

    使用STM32简单控制TMC5160驱动步进电机

    使用STM32控制TMC5160驱动步进电机进行简单运动
    的头像 发表于 09-03 18:54 9185次阅读
    使用STM32<b class='flag-5'>简单</b><b class='flag-5'>控制</b>TMC5160驱动<b class='flag-5'>步进</b><b class='flag-5'>电机</b>

    步进电机简单的驱动方法_步进电机控制方法

    简单步进电机驱动方法是单相双极驱动方式,也称为双相步进驱动方式。该方式只需要使用一个 H桥驱动器和一个脉冲发生器,即可实现
    发表于 03-08 14:21 1.5w次阅读