- Published on
Arduinoに「LSM303DLH」を接続し制御する
1329文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Arduinoを使用して加速度センサーと磁気センサーを制御することは、様々なプロジェクトにおいて重要です。この記事では、「LSM303DLH」と呼ばれる加速度センサーと磁気センサーをArduinoに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
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を接続し、加速度センサーを制御する基本的な手順が完了しました。これをベースにして、様々なプロジェクトで利用することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚