zhuzhenh 发表于 2011-11-7 10:38

ENC 03角度换算的问题

刚刚开始玩两轮自平衡小车,还没有分数,不好意思。
打算先用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输出的角速度是正确的,再来验证累加的角度的正确性

zjp8683463 发表于 2011-11-9 08:14

用定时采集,在做积分。实时性要求高
页: [1]
查看完整版本: ENC 03角度换算的问题