logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

「AK8963」は、三軸磁気センサーモジュールであり、地磁気の計測に利用されます。この記事では、ArduinoとAK8963を接続し、制御する手順について解説します。

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

1. AK8963磁気センサーモジュールの概要

AK8963は、地磁気を計測するためのセンサーモジュールで、三軸のデータを提供します。このモジュールは、小型でI2C通信プロトコルを使用してデータを送受信します。Arduinoなどのマイコンボードと組み合わせて使用することが一般的です。

2. AK8963の接続

AK8963モジュールは、通常、VCC、GND、SCL、SDAの4本のピンで構成されています。それぞれのピンをArduinoに接続します。

  • VCC: 5Vの電源
  • GND: 接地
  • SCL: I2C通信のクロックライン
  • SDA: I2C通信のデータライン

3. Arduinoライブラリの導入

ArduinoでAK8963を利用するには、専用のライブラリを導入する必要があります。ライブラリマネージャーから「AK8963」を検索し、インストールします。

4. Arduinoコードの作成

AK8963を制御するArduinoコードを作成します。以下は、AK8963が接続された場合に地磁気データをシリアルモニターに表示する簡単な例です。

#include <Wire.h>
#include <AK8963.h>

AK8963 ak8963;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  
  if (!ak8963.init()) {
    Serial.println("AK8963 initialization failed!");
    while (1);
  }
}

void loop() {
  ak8963.update();
  
  float magX = ak8963.getMagX();
  float magY = ak8963.getMagY();
  float magZ = ak8963.getMagZ();

  Serial.print("Magnetic Field (uT) - X: ");
  Serial.print(magX);
  Serial.print(", Y: ");
  Serial.print(magY);
  Serial.print(", Z: ");
  Serial.println(magZ);

  delay(1000);
}

このコードは、AK8963から取得した地磁気データをシリアルモニターに表示するものです。必要に応じて、取得したデータを用いて様々なアプリケーションを開発することができます。

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

最後に、書いたコードをArduinoにアップロードし、シリアルモニターを確認してAK8963から正しい地磁気データが得られるか確認します。アップロードが成功したら、AK8963の制御が正しく行われているはずです。

これで、ArduinoにAK8963を接続し、基本的な制御手順を理解する準備が整いました。 AK8963のデータを活用して、様々なプロジェクトやセンシングアプリケーションを開発することができます。