Arduinoで遊ぶページ
Arduinoで遊んだ結果を残すページです
加速度センサ
UNO

概要

加速度センサの特性を測る実験です。

KXM52-1050を利用した加速度センサモジュールを使いました。

目的

衝動買いをしてしまったので、今のところ特に目的はありません。単に特性を調べるだけです。

データシート

KXM52-1050のデータシートを参照してどのようなものなのかを調べました。

概要

KXM52-1050という加速度センサデバイスを使いやすくモジュール化したものです。

仕様の概要は以下の通りです。

項目 内容
電源電圧(Vdd) 2.7V~5.5V(標準3.3V)
測定レンジ ±2g
感度 (Vdd/5) V/g
0G出力 (Vdd/2) V

標準電圧は3.3Vとなっていますが、仕様の範囲内なので5Vで使いました。

出力電圧と加速度の関係

上記のデータより、出力電圧をv(V)、加速度をa(単位はg)とすると、出力電圧と加速度の関係は以下の数式であらわされます。

$$v = a \times Vdd / 5 + Vdd / 2$$

例えば、Vddが5V、加速度が1gのときは、aに1を代入して、3.5Vの電圧が出力されることになります。

実験

加速度センサを傾けていき、角度を変化させ、出力される電圧を測定しました。角度を変えるのは結構厄介だったので、三角定規で測れる、±30度、±45度、±60度と、0度、±90度での値を測定しました。0度のときに、0gとなるようにしました。下の図の赤矢印の方向の加速度です。また、加速度センサそのものは静止した状態で測定しました。

測定結果は以下の通りでした。

-90度 -60度 -45度 -30度 0度 30度 45度 60度 90度
電圧(理論値) 1.50 1.63 1.78 2.00 2.50 3.00 3.21 3.37 3.50
電圧(analogRead()より計算) 1.41 1.55 1.72 1.95 2.50 3.05 3.28 3.43 3.58
analogRead()の出力(理論値) 307 335 367 410 512 614 657 689 717
analogRead()の出力(実測値) 289 318 353 399 511 624 672 702 733

比較的理論値に近い値が出ました。

電圧から角度への変換

加速度センサが静止した状態で、電圧(v)と角度(加速度センサの傾き)(θ)の関係は、以下のようになっています(入力電圧が5Vのとき)。

$$v = \sin θ + 2.5$$

また、analogRead()の出力vと、角度(加速度センサの傾き)(θ)の関係は、以下のようになっています(入力電圧が5Vのとき)。

$$v = 204.8 \times \sin θ + 512$$

このことから、analogRead()の出力から、角度を求めるためには、上の式を変形して、以下で求めることができます。

$$204.8\times \sin \theta = v - 512 → \\ \sin \theta = (v - 512) / 204.8 → \\ \theta = \arcsin ((v - 512) / 204.8)$$

バージョン

Hardware:Arduino Uno
Software:Arduino 0022

最終更新日

November 1, 2022

inserted by FC2 system