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

一、目标功能
输入多个目标角度,以及每个角度对应的速度,实现步进电机的多段多速度转动
二、计算过程
**2.1 **简化c与n函数关系
根据上一节内容,定时器初值与速度函数关系为
硬件系统确定后,angle、xtal、x均为定值,为降低计算量,将公式中可以提前计算好的地方直接计算出来
根据硬件设置情况,step=1.8,xtal=12000000,x=2,计算k值
2.2计算步数(step_num)与角度(angle)函数关系
三、程序代码
//定义步进电机转动段数及运动参数#define para 5unsigned 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; } }}四、总结
此种方式利用定时器精确定时能力,从而控制电机转速,同时实现步进电机的多段运动,至此实现了步进电机三个主要参数角度、速度、方向的简单协同操作。

自由空间和周期排布空间的电子两者之间的区别
云存储时代阿里云存储将率先提速
如何判断电池能否修复,如何回收旧电池备用?
第六代柔性AMOLED生产线项目落户合肥
全球智能手机的总出货量为3.536亿部,同比下降1.3%
如何实现简单的步进电机多段控制呢?
SOLIDWORKS机械设计如何控制尺寸?
苹果iPhone12出现降频和打字卡顿严重问题?
**分布式数据库|数据库数据类型**
数字下变频(DDC)中坐标变换模块的ASIC实现
什么是音频会议系统?
算力由性能、规模和利用率三部分组成
降压DC-DC: ETA1495
中国联通实现跨国5G MEC边缘云应用,构建统一的边缘应用接口标准
ar的工作原理简介
GPU算力云服务提供商,蓝耘科技获数千万元战略轮融资
数字孪生技术在园区建设中的应用与实践
谷歌宣布Alphabet正关闭互联网气球项目Loon
CF7631双电源构成的高输入阻抗三运放电路图
苹果iOS10.3正式版怎么样?这11大功能更新让果粉炸锅了!