求助编码器的问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4539|回复: 2

[已解决] 求助编码器的问题

[复制链接]
发表于 2014-1-27 19:16 | 显示全部楼层 |阅读模式
本帖最后由 kingsouth 于 2014-1-27 19:16 编辑

本人是新手 第一次发帖 望各位大侠指点 自己的写的编码器程序如下:
#define PinA 2  //中断0
unsigned long time;
unsigned long time1;
long count = 0; //计数值
long num = 0;//个数
double Speed;
//初始化
void setup()
{
  Serial.begin(9600); //窗口初始化
  pinMode(PinA,INPUT); //D2脚为输入
  attachInterrupt(0, blinkA, FALLING);  //注册中断0调用函数blinkA
  time = millis(); //时间初值
  time1 = millis(); //时间初值
}

//主体程序
void loop()
{
  if(time!=time1)
  {
  double Speed=3.14*6.5/100/(time-time1)*1000 ;//用的是tt马达 码盘是100格的 轮子直径6.5厘米
//Serial.println(time1);
  // Serial.println(time);
  Serial.println(Speed);
  Serial.println();
  Serial.println();
  delay(100);
  }
}


//中断0调用函数
void blinkA()
{
     count ++;
     if(count%2==1)
     time= millis();
         if(count%2==0)
     time1= millis();
}

输出结果如图  不知道为什么会这样  请高人指点  谢谢


QQ图片20140127191259.jpg
发表于 2014-1-27 21:12 | 显示全部楼层
解释下你的程序,是要做啥
 楼主| 发表于 2014-1-29 07:59 | 显示全部楼层
奈何老师您好 我想做个测速程序 一个轮子只用了一个中断 不判断方向 只测速度 我的想法是 当中断0接到falling时就中断一次记录个数加一并读取时间 下次再failling再加一再读取时间 用转过的角度乘以对应的周长再除以时间差就是速度 程序就是这样 第一次发帖 望您指点 谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-4 17:44 , Processed in 0.073847 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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