- Wed Dec 16, 2009 4:11 am
#87277
Hi
I am using IDG500 breakout board and have applied 10 bit ADC using Arduino Pro Mini 3.3V 8HhZ (Atmega 328).
I am finding the ZRO by averaging the data for first 2 seconds. and then using the following formula :
rate = (RawADCval - ZRO)*3.3/1024/Senstivity;
(I am using the Gyro in 500 deg/sec 2mV/deg/sec mode)
Then I applied simple integrator
Theta(i) = Theta(i-1) + rate(i)*dt;
where dt is the delay in the loop() function in Arduino code.
( i have also used 4th order Runge kutta)
The first issue I face is that the angle turn I finally get is scaled down by three, i.e. when I rotate the gyro by 90 degree I get the theta as 30 deg and when I rotate the gyro by 180 deg I get 90 as my theta.
Second issue I face is the temperature dependence of ZRO and the temperature Drift.
Please help me to correct the temperature problem. This effect is heavily affecting my project.
I am using IDG500 breakout board and have applied 10 bit ADC using Arduino Pro Mini 3.3V 8HhZ (Atmega 328).
I am finding the ZRO by averaging the data for first 2 seconds. and then using the following formula :
rate = (RawADCval - ZRO)*3.3/1024/Senstivity;
(I am using the Gyro in 500 deg/sec 2mV/deg/sec mode)
Then I applied simple integrator
Theta(i) = Theta(i-1) + rate(i)*dt;
where dt is the delay in the loop() function in Arduino code.
( i have also used 4th order Runge kutta)
The first issue I face is that the angle turn I finally get is scaled down by three, i.e. when I rotate the gyro by 90 degree I get the theta as 30 deg and when I rotate the gyro by 180 deg I get 90 as my theta.
Second issue I face is the temperature dependence of ZRO and the temperature Drift.
Please help me to correct the temperature problem. This effect is heavily affecting my project.