ホーム > カテゴリ > ロボット・電子工作・マイコン >

3軸加速度センサー(KXR94-2050)の使い方 [Arduino]

XYZの3軸の加速度(m/s2)が「アナログ出力」で取得できます。

このKXR94-2050は測定範囲が±2Gでそれ以上の加速度を与えると壊れる可能性があります。強い衝撃を計測する場合は±16Gに対応しているADXL345 (¥450)などを使用すると良いです。

実行結果

※プログラム上ではm/s2を「m/s^2」と表記しています。

地球の重力は「1G = 9.80665m/s2」です。ですので、Z軸には地球の重力が含まれています。

使用部品・材料

総額で約1,120円です。(Arduino本体の値段を除く)

部品/材料値段備考
ブレッドボード¥270秋月電子の通販コード(P-00315)
3軸加速度センサモジュール KXR94-2050¥850秋月電子の通販コード(M-05153)

配線図

スケッチ(プログラム)

各XYZ軸の加速度(m/s2)をシリアルモニターへ出力します。

void setup() {
  Serial.begin(9600);
}

void loop() {
  // 地球の重力である1Gの加速度(m/s^2)
  float ms2 = 9.80665;
  
  // 電源電圧5V時のオフセット電圧(0G = 2.5V = 2500mV)
  float offset_voltage = 2500.0;

  // XYZの電圧(mV)を取得する
  float x =  (analogRead(A0) / 1024.0) * 5.0 * 1000;
  float y =  (analogRead(A1) / 1024.0) * 5.0 * 1000;
  float z =  (analogRead(A2) / 1024.0) * 5.0 * 1000;

  // XYZからオフセット電圧を引いた電圧を求める
  x = x - offset_voltage;
  y = y - offset_voltage;
  z = z - offset_voltage;

  // XYZから重力を求める
  float xg = x / 1000.0;
  float yg = y / 1000.0;
  float zg = z / 1000.0;

  // XYZの重力から加速度(m/s^2)を算出して出力する
  Serial.print("X : ");
  Serial.print(xg * ms2);
  Serial.print(" Y : ");
  Serial.print(yg * ms2);
  Serial.print(" Z : ");
  Serial.print(zg * ms2);
  Serial.println(" m/s^2");

  delay(100);
}





掲示板

ArduinoやRaspberry Piなどの電子工作の掲示板を作成しました。質問やわからない事は電子工作 (Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。

関連記事



公開日:2017年06月13日 最終更新日:2017年06月20日
記事NO:02420