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 
プチモンテ ※この記事を書いた人
|  | |
|  | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ | 
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |

 
        



 
  
 


