/a/センサー
Published on

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

1294文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    将 有坂
    short bio
    ラズパイやArduinoで電子工作をしてます。

はじめに

「HMC5983」は、3軸磁気センサーであり、地磁気を検出して角度や方向を計測するのに利用されます。この記事では、ArduinoにHMC5983を接続し、データを読み取って制御する方法について解説します。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚

1. HMC5983磁気センサーの概要

HMC5983は、地磁気センサーの一種で、地磁気の変動を3つの軸(X、Y、Z)で検出することができます。これにより、地球の磁場からの角度や方向を計測することが可能です。Arduinoと組み合わせることで、様々なプロジェクトで利用できます。

2. HMC5983の接続

HMC5983は、通常、VCC、GND、SDA、SCLの4つのピンがあります。これらをArduinoに接続します。

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

これらを対応するArduinoのピンに接続します。

3. Arduinoライブラリの導入

HMC5983をArduinoで利用するには、I2C通信を行うためのライブラリが必要です。Arduino IDEのライブラリマネージャーから「Adafruit_Sensor」と「Adafruit_HMC5883_Unified」を検索し、インストールします。

4. Arduinoコードの作成

以下は、HMC5983からデータを読み取り、シリアルモニターに表示するArduinoコードの例です。

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

Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345); // 12345はI2Cアドレス

void setup(void) {
  Serial.begin(9600);
  if(!mag.begin()) {
    Serial.println("HMC5883 not found!");
    while(1);
  }
}

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

  float heading = atan2(event.magnetic.y, event.magnetic.x);
  float headingDegrees = heading * 180 / M_PI;

  Serial.println(headingDegrees);
  delay(500);
}

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

コードを書いたら、Arduinoにアップロードして動作を確認します。シリアルモニターに磁気センサーからのデータが表示されるはずです。

これで、ArduinoにHMC5983を接続し、簡単な制御を行うための基本的な手順が完了しました。このデータを利用して、方位磁針や位置情報を含む様々なプロジェクトを構築することができます。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
avatar

将 有坂

電子部品専門家 / ラズベリーパイのプロ / 数多くのセンサーやモジュールの導入実績
ラズベリーパイやArduinoの電子工作に関わるソフトウェアエンジニア。これまで100種類以上のセンサーやモジュールの導入を行い、その知識と経験を活かして、多くの人々に電子工作の楽しさを伝えることを使命としている。

タグ ->