logo
Published on

Arduinoに「ADXL345」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoは様々なセンサーやモジュールと組み合わせて利用でき、その中でも加速度センサー「ADXL345」は動きや振動を検知するのに適しています。この記事では、ArduinoにADXL345を接続し、制御する方法について詳しく説明します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

1. ADXL345の概要

ADXL345は、小型で低消費電力な3軸加速度センサーであり、I2C通信を使用してデータを取得します。これにより、Arduinoと容易に接続し、動きや振動に関する情報を取得できます。

2. ADXL345の接続

ADXL345は通常、以下のピンが存在します。

  • VCC: 電源(3.3Vまたは5V)
  • GND: 接地
  • SDA: I2Cデータライン
  • SCL: I2Cクロックライン

これらのピンを対応するArduinoのピンに接続します。注意点として、ADXL345は通常3.3Vの動作ですが、一部のモジュールは5Vでも動作することがあります。動作電圧に合わせて接続してください。

3. Arduinoコードの作成

ADXL345を制御するためには、先に「Adafruit ADXL345ライブラリ」をArduino IDEに追加する必要があります。これを行うには、IDEの「スケッチ」 → 「ライブラリをインクルード」 → 「ライブラリの管理」から「Adafruit ADXL345」を検索してインストールします。

以下は、ADXL345を使用してシリアルモニターに加速度データを表示する基本的なコードの例です。

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void setup(void) {
  Serial.begin(9600);
  if(!accel.begin()) {
    Serial.println("Could not find a valid ADXL345 sensor, check wiring!");
    while(1);
  }
}

void loop(void) {
  sensors_event_t event;
  accel.getEvent(&event);

  Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");
  Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");
  Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.println();
  delay(500);
}

このコードでは、ADXL345から取得したX、Y、Z軸の加速度データをシリアルモニターに表示します。

4. コードのアップロードと動作確認

書いたコードをArduinoにアップロードし、シリアルモニターを開いてADXL345からの加速度データを確認します。Arduinoが振動や傾きに反応して適切なデータを出力すれば、接続と制御は成功しています。

これで、ArduinoにADXL345を接続し、動きや振動を検知する基本的な手順が完了しました。利用シーンに応じて、このセンサーを活用したプロジェクトを進めていくことができます。