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月中旬 ~ | |









