Arduinoを使ってADXL345ジャイロセンサーを制御する方法について解説します。ADXL345は、3軸の加速度を計測できるセンサーで、I2C通信でArduinoと連携できます。このセンサーは、ロボット、ドローン、モーションキャプチャ、そして様々なセンサーアプリケーションに使用されます。
この記事では、ADXL345センサーの概要、ピン接続方法、制御方法、コード、エラー処理の順に解説します。
目次
- ADXL345センサーの概要
- ADXL345のピン接続方法
- ArduinoでのADXL345制御コード
- よくあるエラーとその対処法
1. ADXL345センサーの概要
ADXL345は、3軸加速度センサーで、I2C通信を使用してArduinoなどのマイコンと接続できます。X軸、Y軸、Z軸の加速度を計測し、物体の動きや傾きを検出するのに役立ちます。
主な特徴:
- 3軸加速度センサー
- I2C通信(SPI通信も可だが、ここではI2Cに絞る)
- 動作電圧:2.0V〜3.6V(3.3Vが推奨)
- 分解能:13ビット
- 最大加速度:±2g、±4g、±8g、±16g(設定可能)
2. ADXL345のピン接続方法
I2C通信を使用するため、ADXL345センサーを次のように接続します。
I2C接続の場合
- VCC → Arduinoの3.3V(注意:ADXL345は3.3Vで動作するセンサーです)
- GND → ArduinoのGND
- SDA → ArduinoのA4(I2Cデータライン)
- SCL → ArduinoのA5(I2Cクロックライン)
重要:
- ADXL345は3.3V動作のセンサーなので、5V動作のArduino(例えば、Arduino Unoなど)で使用する場合、3.3Vの電源を使用してください。
- I2C通信を使用する場合は、CSピンをGNDに接続します(デフォルトのI2Cアドレスは
0x53)。
3. ArduinoでのADXL345制御コード
以下は、I2C接続を使ってADXL345から加速度データを取得し、シリアルモニターに出力する基本的なコードです。
必要なライブラリのインストール
まず、Arduino IDEにAdafruit ADXL345ライブラリをインストールします。このライブラリを使うことで、ADXL345と簡単に通信できます。
- Arduino IDEを開く。
- メニューから「スケッチ」 > 「ライブラリをインクルード」 > 「ライブラリを管理」を選択。
- 検索ボックスに「Adafruit ADXL345」と入力し、インストールします。
サンプルコード(I2C接続)
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
// ADXL345インスタンスを作成(I2C接続)
Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
void setup() {
Serial.begin(9600); // シリアル通信の開始
if (!accel.begin()) { // センサーの初期化
Serial.println("ADXL345 not detected. Check your wiring!");
while (1);
}
Serial.println("ADXL345 detected!");
}
void loop() {
sensors_event_t event;
accel.getEvent(&event); // 加速度データを取得
// X、Y、Z軸の加速度をシリアルモニターに出力
Serial.print("X: ");
Serial.print(event.acceleration.x);
Serial.print(" Y: ");
Serial.print(event.acceleration.y);
Serial.print(" Z: ");
Serial.println(event.acceleration.z);
delay(500); // 0.5秒待機
}
コードの解説
- Wire.h:I2C通信のためのライブラリ。
- Adafruit_Sensor.h:センサーデータを取得するための基本的なインターフェースライブラリ。
- Adafruit_ADXL345_U.h:ADXL345センサー用のライブラリ。
このコードでは、ADXL345から加速度データ(X、Y、Z軸の値)を取得し、シリアルモニターに出力します。
4. よくあるエラーとその対処法
以下は、ADXL345を使用する際に遭遇する可能性があるエラーとその対処法です。
エラー1: “ADXL345 not detected. Check your wiring!”
このエラーは、ADXL345が正しく接続されていないか、電源が供給されていない場合に発生します。
対処法:
- ADXL345のVCCピンを3.3Vに接続しているか確認してください。
- SDAおよびSCLピンが正しく接続されているか確認してください(Arduino Unoの場合はA4とA5)。
- I2C通信モードで使用する場合、CSピンをGNDに接続しているか確認してください。
エラー2: “Wire.requestFrom() failed”
I2C通信中に発生するエラーです。通常、センサーとArduino間の通信に問題がある場合に発生します。
対処法:
- SDAおよびSCLピンの接続が正しいか確認してください。
- I2Cアドレスが
0x53に設定されているか確認してください(SDOピンがGNDの場合)。 - I2C通信のクロック速度が適切であるか確認(
Wire.setClock()の設定を見直す)。
エラー3: データが0または不正確
加速度データがゼロまたは不正確な値を返す場合があります。
対処法:
- センサーが静止状態では、X、Y、Z軸の加速度がゼロ近くになります。センサーを動かして確認してください。
- 加速度範囲(±2g、±4gなど)を適切に設定してください。範囲が広すぎると、感度が低くなることがあります。
まとめ
ADXL345は、I2C通信で簡単にArduinoと接続できる3軸加速度センサーです。物体の動きや傾きを計測するのに非常に便利で、ロボット、モーションキャプチャ、加速度計測など、さまざまなプロジェクトで活用できます。
この記事では、ADXL345の接続方法、基本的な制御コード、よくあるエラーとその対処法を紹介しました。これらを参考に、ADXL345センサーを使ったプロジェクトを試してみてください。
IT・ガジェット・電子工作の知識をこれひとつで

ここまで読んでいただきありがとうございます。最後に宣伝をさせてください。
PCアプリの操作解説、最新のガジェット情報、そして電子工作の専門書まで。 Kindle Unlimitedなら、あらゆるジャンルのIT・デジタル関連書籍が読み放題です。
「仕事の効率化」から「趣味の深掘り」まで、高価な専門書をわざわざ買わずに、必要な情報をその場で引き出せるのが最大のメリット。 現在は30日間の無料体験や、対象者限定の「3ヶ月499円」プランなどが用意されています。まずはご自身のアカウントでお得なオファーが表示されるかご確認ください。
