- Published on
Arduinoに「LSM303DLHC」を接続し制御する
1663文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
「LSM303DLHC」は、加速度計と地磁気センサーを組み合わせた小型センサーモジュールであり、Arduinoプロジェクトでの姿勢計測や方位の取得などに利用されます。この記事では、「LSM303DLHC」をArduinoに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. LSM303DLHCセンサーの概要
「LSM303DLHC」は、3軸の加速度計と3軸の地磁気センサーを組み合わせています。これにより、加速度や方向のデータを取得でき、Arduinoを使用してリアルタイムで制御できるようになります。
2. LSM303DLHCの接続
まず、LSM303DLHCをArduinoに接続します。通常、このセンサーモジュールには以下のようなピンがあります。
- VCC(赤色): 3.3Vの電源
- GND(茶色): 接地
- SDA(データ): I2C通信用のデータライン
- SCL(クロック): I2C通信用のクロックライン
これらを対応するArduinoのピンに接続します。Arduino Unoの場合、通常はA4がSDA、A5がSCLになります。
3. Arduinoコードの作成
次に、Arduino IDEを開いてLSM303DLHCを制御するためのコードを書きます。I2C通信を使用するため、Wire
ライブラリを使用します。以下は、簡単な例です。
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_LSM303_U.h>
Adafruit_LSM303_Accel_Unified accel;
Adafruit_LSM303_Mag_Unified mag;
void setup(void) {
Serial.begin(9600);
if(!accel.begin() || !mag.begin())
{
Serial.println("Could not start LSM303. Please check wiring!");
while(1);
}
}
void loop(void) {
sensors_event_t accelEvent, magEvent;
accel.getEvent(&accelEvent);
mag.getEvent(&magEvent);
Serial.print("Acceleration: ");
Serial.print(accelEvent.acceleration.x);
Serial.print(", ");
Serial.print(accelEvent.acceleration.y);
Serial.print(", ");
Serial.print(accelEvent.acceleration.z);
Serial.println(" m/s^2 ");
Serial.print("Magnetic Field: ");
Serial.print(magEvent.magnetic.x);
Serial.print(", ");
Serial.print(magEvent.magnetic.y);
Serial.print(", ");
Serial.print(magEvent.magnetic.z);
Serial.println(" uT ");
delay(1000);
}
このコードは、加速度と地磁気のデータをシリアルモニタに表示する簡単な例です。適宜、取得したデータを用いてプロジェクトを構築することができます。
4. コードのアップロードと動作確認
最後に、書いたコードをArduinoにアップロードし、シリアルモニタでデータが正しく表示されるか確認します。これで、「LSM303DLHC」をArduinoで制御する準備が整いました。
LSM303DLHCは様々なプロジェクトに活用できる汎用的なセンサーであるため、これをベースにして様々なアプリケーションを作成することが可能です。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚