- Published on
Arduinoに「HMC5983」を接続し制御する
1294文字3分で読めます–––
閲覧数
- Authors
- 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 🚚