搜索
bottom↓
回复: 29

步进电机加速度程序分析

[复制链接]

出0入0汤圆

发表于 2010-6-10 13:52:23 | 显示全部楼层 |阅读模式
程序功能是用定时器0定时,通过修改定时器初值,达到加速的功能。程序试验过程中已经有加速过程,但是最大只能到500HZ ,步知道什么原因。本来想让信号从100HZ一直慢慢加速到16KHZ   .程序如下,请各位大侠帮分析一下,程序问题出在哪里  ?
#include<W78E58B.H>
#define uchar unsigned char  
#define uint unsigned int
sbit dir=P1^0;
sbit en=P1^1;
sbit clk=P1^2;
sbit start=P1^3;   
sbit stop=P1^4;
uint rate;
uchar flag1,flag2;
uint i=50000;

void main()
{  
  
EA=1;
ET0=1;
TR0=1;
TMOD=0X01;
TH0=(65536-i)/256;
TL0=(65536-i)%256;   
  while(1)
       {
    ;
   }
}

void t0(void) interrupt 1 using 0
{
  
  TH0=(65536-i)/256;
  TL0=(65536-i)%256;
  if(i>40)   
  {
    i=i-20;
  }

     
  else  
     {
   i=20;                  
}   

    clk=~clk;
}


 

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-6-10 14:53:57 | 显示全部楼层
自己UP下

出0入0汤圆

发表于 2010-6-10 14:59:18 | 显示全部楼层
步进电机本身有频率上限的,如果接近这个限制往往会丢步。如果超过就转不起来。

出0入0汤圆

发表于 2010-6-10 15:39:52 | 显示全部楼层
顶!

出0入147汤圆

发表于 2010-6-10 15:45:51 | 显示全部楼层
搬个板凳看美女楼主

出0入0汤圆

发表于 2010-6-10 18:52:32 | 显示全部楼层
电机频率10K都可以的 。

出0入0汤圆

发表于 2010-6-11 13:34:22 | 显示全部楼层
78E58速度有限,在脉冲频率比较高时定时器会消耗很多时间,查表最省时,而且还可以得到比较复杂加速度方式

出0入0汤圆

发表于 2010-6-13 13:22:06 | 显示全部楼层
6楼说的有道理  问题解决了 把赋初值那段程序放到中断服务程序外面去做,就可以了

出0入0汤圆

发表于 2010-6-17 16:52:30 | 显示全部楼层
楼主换马甲了?

出0入0汤圆

发表于 2010-7-7 21:55:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-13 10:48:25 | 显示全部楼层
在中断里修改变量的方法是不行的,你可以用指针操作。

出0入0汤圆

发表于 2010-8-7 22:41:38 | 显示全部楼层
TMC428和TMC223 芯片自带加减速控制功能
www.trinamic.com

出0入0汤圆

发表于 2010-8-13 08:44:56 | 显示全部楼层
同样困惑中,16KHz是不是有点高了啊

出0入0汤圆

发表于 2010-8-13 10:58:02 | 显示全部楼层
加高点驱动电压可以提高频率上限

出0入0汤圆

发表于 2010-11-20 16:52:03 | 显示全部楼层
学习

出0入0汤圆

发表于 2010-11-20 17:21:24 | 显示全部楼层
谁又把luck_girl顶起来了?

出0入0汤圆

发表于 2011-12-29 09:28:58 | 显示全部楼层
这个是这样滴,我想,步进电机有个起步转速,一般是10--100RPM,对于步距是0.9度的电机,脉冲周期是1.5--15ms,那也就有个频率范围。QQ243237113,希望大家多交流。

出0入0汤圆

发表于 2011-12-29 09:47:37 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-12-29 12:43:21 | 显示全部楼层
你可以用示波器测一下,看出来的信号的频率是多少啊?

出0入0汤圆

发表于 2012-1-15 11:54:03 | 显示全部楼层
学习

出0入0汤圆

发表于 2012-2-26 17:17:34 | 显示全部楼层
首先,得看你选用的步进电机最大能跑多快,有个矩频特性曲线的,快了以后,转矩下降,带不动负载就没意义了;

然后是变速,从低速开始,每一次变完速度之后,需要有个稳定步数。比如你从50Hz起步,走x步,变到60Hz,再走y步之后才能变到70Hz,否则电机跟不上的。越往后,稳定步数越得多,比如50到60,中间走个10个脉冲就行,500到550,中间可能就得走1000个脉冲了;

最后是速度上限,你在中断里临时计算初值,是很费时间的,即使在外面计算初值也一样费时间,这样就导致你不可能产生很高频率的脉冲,1K基本就是极限值了。  将定时器设定在自动重装模式,然后将所有初值全部算好了(比如50Hz对应的初值,55Hz对应的初值,每隔5Hz或多少初值都算好),做成一张表,通过算法去表中取合适的值,即能方便变速,又能达到比较高的频率。

出0入42汤圆

发表于 2012-8-23 15:40:53 | 显示全部楼层
现在你的电机最高能跑多少rpm?

出0入0汤圆

发表于 2012-8-23 16:01:30 | 显示全部楼层
我C语言不太行,不过从你这个程序看,问题出在你的那个运算上,定时器的值要做成表的形式,用的时候直接读取,这样输出的频率会高很多

出0入0汤圆

发表于 2013-3-19 13:45:07 | 显示全部楼层
程序问题出在定时器赋值那一块!运用变量改变定时器值,非常耗时间,所以导致频率上不去

出50入0汤圆

发表于 2013-3-20 10:16:48 | 显示全部楼层
kiracl 发表于 2012-2-26 17:17
首先,得看你选用的步进电机最大能跑多快,有个矩频特性曲线的,快了以后,转矩下降,带不动负载就没意义了 ...

高手正解!

出0入0汤圆

发表于 2013-7-10 08:35:08 | 显示全部楼层
学习中……

出0入0汤圆

发表于 2013-10-9 23:50:59 | 显示全部楼层
学习中!

出0入0汤圆

发表于 2013-10-10 23:03:42 | 显示全部楼层
嗯,学习了

出0入0汤圆

发表于 2013-10-11 09:10:34 | 显示全部楼层
谢谢了 学习了

出0入0汤圆

发表于 2013-10-11 10:01:46 | 显示全部楼层
中断里的任务越少越好,一般都是设置标志位,在主程序外面实现
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 17:14

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表