打印

ENC 03角度换算的问题

[复制链接]
4632|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuzhenh|  楼主 | 2011-11-7 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚刚开始玩两轮自平衡小车,还没有分数,不好意思。
打算先用ENC 03,把角速度用积分转换成角度,静态的时候角度基本是0,但是动态的时候输出角度不对,没有示波器。大家帮我看下吧
板子用的是arduino duemilanove 2009 - ATMega328P
大概思路就是把输出电压转换成角速度,然后计算时间,用积分换算成角度

float ang_speed=0;
float ref=0;
float angle=0;
float t1=0;
float t2=0;
void setup()
{
  
  Serial.begin(9600);
}
void loop()
{
  t1=millis();
  
  ang_speed=analogRead(A0)*5000.00/1024;//测得的电压
  ref=analogRead(A1)*5000.00/1024;//参考电压
  //Serial.print("   d=");
  //Serial.print(ang_speed);
  //Serial.print("    ref=");
  //Serial.print(ref);
  ang_speed=(ang_speed-ref);//测得的电压和参考电压的差值
   Serial.print("   speed=");
  Serial.print(ang_speed);
  t2=millis();

  ang_speed=ang_speed/0.67 //电压差->角速度,ENC 03的输出是0.67mV/度/秒
  ang_speed=ang_speed*(t2-t1)/1000;//角速度->角度,t2-t1是时间差

  Serial.print("   ang_speed:");
  Serial.print(ang_speed);
  
   angle=angle+ang_speed;//角度累加
   Serial.print("   angle=");
   Serial.println(angle);
  
}  
}

相关帖子

沙发
zoomone| | 2011-11-7 13:24 | 只看该作者
你的意思是光用个enc03,不用加速度传感器? 如果是这样的话可不好搞

使用特权

评论回复
板凳
zhuzhenh|  楼主 | 2011-11-7 13:45 | 只看该作者
我的意思是先用一个陀螺仪,毕竟短时间内还是可靠的
当然如果长时间的话还是要配合加速计来互补的
问题是现在我算出来的角度明显不对,好像不灵敏
电路就是datasheet里的

使用特权

评论回复
地板
zoomone| | 2011-11-7 14:12 | 只看该作者
首先要保证enc03输出的角速度是正确的,再来验证累加的角度的正确性

使用特权

评论回复
5
zjp8683463| | 2011-11-9 08:14 | 只看该作者
用定时采集,在做积分。实时性要求高

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝