Header Ads

デジタルコンパス(HMC5883L)の使い方


Arduinoでデジタルコンパスモジュール(HMC5883L)を使ってみましょう。コンパスなので、地球の磁場を感知して方角をしめすことができます。磁力を感知しているので、磁石にも反応します。

※正しく方角を示すためには、北を向けた時、どういう値がでているかを見てゼロ点調整をしなければいけませんが、今回は割愛してまず値をとるところまでいきます。






#1:モジュールの接続


VCCを5V、GNDをGNDに繋ぐ。I2C通信なのでSCLはアナログ5番ピン、SDAはアナログ4番ピン。他のアナログピンではダメなので注意。


















#2:ブロックを積む











コードブロックを使います。
先にやっておく
  • [head]#include <Wire.h>
  • [head]#define addr 0x1E
  • [先にやっておく] Wire.begin();Wire.beginTransmission(addr);Wire.write(0x02);Wire.write(0x00);Wire.endTransmission();
くりかえす
  • [ずっと]int x,y,z;Wire.beginTransmission(addr);Wire.write(0x03);Wire.endTransmission();Wire.requestFrom(addr, 6);   if(6<=Wire.available()){x = Wire.read()<<8;x |= Wire.read();z = Wire.read()<<8;z |= Wire.read();y = Wire.read()<<8;y |= Wire.read();  }
  • [ずっと]int _ABVAR_1_x =x, _ABVAR_2_y = y, _ABVAR_3_z = z;
これらのコードブロックによって<x><y><z>で値を取り出すことができます。


Powered by Blogger.