Un accéléromètre est utilisé pour récupérer une accélération sur un axe en G.
Mais il est aussi possible d’en déduire un angle d’inclinaison!
J’utilise un accéléromètre 3 axes ADXL335 et un dsPIC30F3011.
L’accéléromètre me fourni une valeur analogique qui est transformé par le ADC du dsPIC en valeur numérique directement exploitable pour le µC.
L’ADC à une résolution de 10 bits soit 1024 valeur et une sensibilité de Vref/1024 dans mon cas 3.3V/1024 soit ~0.00322V.
Pour retrouver la valeur en G, il faut connaitre la sensibilité du capteur pour 1G. Pour l’ADXL335 c’est 300mV/G (Cf. DataSheet).
Pour rappel 1G =~ 9.806 m.s-2 qui est aussi égal à la pesanteur terrestre.
Donc :
xG = ADC_x*3.3/1024/0.3.
yG = ADC_y*3.3/1024/0.3.
zG = ADC_z*3.3/1024/0.3.
Angles :
Ensuite pour connaitre l’angle de l’axe X et Y (Roulis et Tangage) on utilise la fonction trigonométrique atan2.
Angle_roll = atan2(xG, zG) ou atan2( xG, sqrt( yG² + zG² ) ).
Angle_pitch = atan2(yG,zG) ou atan2( yG, sqrt( xG² + zG² ) ).
Vitesse :
Nous pouvons aussi intégrer la valeur de l’accéléromètre en G pour trouver une vitesse.
vG = (vG + xG * dt). // dt le temps entre chaque calcul
Vitesse (m.s-2) = vG * 9.806