logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Arduinoを使用して加速度センサーと磁気センサーを制御することは、様々なプロジェクトにおいて重要です。この記事では、「LSM303DLH」と呼ばれる加速度センサーと磁気センサーをArduinoに接続し、制御する方法について解説します。

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

1. LSM303DLHの概要

LSM303DLHは、加速度センサーと磁気センサーを一体化させたデバイスで、小型で高性能なセンシングを提供します。Arduinoと組み合わせて使用することで、物体の動きや方向を検出することが可能です。

2. LSM303DLHの接続

LSM303DLHには通常、以下のピンがあります。

  • VCC(赤色): 3.3Vまたは5Vの電源
  • GND(茶色): 接地
  • SDA(緑色): I2C通信のデータライン
  • SCL(青色): I2C通信のクロックライン

これらのピンをArduinoに接続します。Arduino Unoの場合、SDAをA4に、SCLをA5に接続します。VCCをArduinoの3.3Vまたは5Vに、GNDをGNDに接続します。

3. Arduinoコードの作成

Arduino IDEを開いて、LSM303DLHを制御するためのコードを書きます。以下は、簡単な例です。

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

Adafruit_LSM303_Accel_Unified accel;

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

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

  Serial.print("Acceleration X: "); Serial.print(event.acceleration.x); Serial.print(" m/s^2 ");
  Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" m/s^2 ");
  Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.println(" m/s^2 ");

  delay(1000);
}

このコードは、LSM303DLHから得られた加速度のX、Y、Z成分を1秒ごとにシリアルモニターに出力するものです。

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

コードをArduinoにアップロードし、シリアルモニターで加速度の値が正しく表示されることを確認します。

これで、ArduinoにLSM303DLHを接続し、加速度センサーを制御する基本的な手順が完了しました。これをベースにして、様々なプロジェクトで利用することができます。