码盘测速

2019-03-23 18:51发布

我用namiki空心杯直流减速电机的编码器测电机转速下面是测得的数据:
count1:1;0r/min(L);
count1:1;0r/min(L);
count1:1;0r/min(L);
count1:10;0r/min(L);
count1:68;0r/min(L);
count1:126;0r/min(L);
count1:186;0r/min(L);
count1:247;0r/min(L);
count1:307;0r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:81;120r/min(L);
count1:144;120r/min(L);
count1:210;120r/min(L);
count1:276;120r/min(L);
count1:18;120r/min(L);
count1:81;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:146;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:146;120r/min(L);
count1:212;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:81;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:18;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);
count1:19;120r/min(L);
count1:82;120r/min(L);
count1:146;120r/min(L);
count1:212;120r/min(L);
count1:278;120r/min(L);
请问怎么会是这样的?
以下是程序:
    //把每一秒钟编码器码盘计得的脉冲数,换算为当前转速值
    //此编码器码盘一圈两个信号,减速比为80。
    Freq1=double (count1/2/80);
    //Freq2=double (count1/2/80);
    rpm1 =double (Freq1*60);
    //rpm2 =double (Freq2*60);
    count1 = 0; //把脉冲计数值清零,以便计算下一秒的脉冲计数 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Li_Lei
1楼-- · 2019-03-24 02:08
/ count1本来就不大给除没了,先double再除,(double)count1/2/80;
落日归侠
2楼-- · 2019-03-24 04:43
huo_hu 发表于 2014-8-30 23:58
count1本来就不大给除没了,先double再除,(double)count1/2/80;

不是没有啊   一开始是我没开电源  关键是数据总是呈规律性变化:count1:19;120r/min(L);
count1:82;120r/min(L);
count1:145;120r/min(L);
count1:211;120r/min(L);
count1:277;120r/min(L);

计数总是19,82,145,211,177(),最不明白的是转速却始终是120(虽然这个转速是对的)


还有想问一下下面这个外部中断计数函数对吗?编码器外部中断不是不是来了就触发计数吗?为什么还要还要大于5ms才计数,如果信号周期小于5ms不就计数不对了吗?我是网上看到的程序
// 编码器码盘计数中断子程序
void Code1()
{
  //当2次中断之间的时间大于5ms时,计一次有效计数
  if((millis()-time1) > 5)
    //当编码器正交编码板OUTA脉冲信号下跳沿每中断一次,
    count1 += 1; // 编码器码盘计数加一
    time1=millis();
}

Li_Lei
3楼-- · 2019-03-24 09:03
 精彩回答 2  元偷偷看……

一周热门 更多>