QMC5883L 로 방위각 구해 보기! /아두이노/나침반/지자계/HMC5883L/QMC5883L

안녕하세요 메카솔루션입니다.


이번에는 아두이노 지자계 센서 모듈인 QMC5883L(HMC5883L 대체 버전) 에서 방위각을 구하는 방법을 알아보고자 합니다.

http://blog.naver.com/roboholic84/221002707148

이전에 작성 되었던 QMC5883L 라이브러리에 방위각을 읽는 기능이 추가되어 블로깅을 새로이 하게 되었습니다. 이전에 라이브러리를 사용하시던 적이 있다면 새로 다운로드 해주셔야 합니다.


https://github.com/mechasolution/Mecha_QMC5883L.git



# 회로도 알아보기


기본 회로도와 동일합니다. 


 



# 소스코드 알아보기


#include <Wire.h>

#include <MechaQMC5883.h>


MechaQMC5883 qmc;


void setup() {

  Wire.begin();

  Serial.begin(9600);

  qmc.init();

  //qmc.setMode(Mode_Continuous,ODR_200Hz,RNG_2G,OSR_256);

}


void loop() {

  int x, y, z;

  int azimuth;

  //float azimuth; //is supporting float too

  qmc.read(&x, &y, &z,&azimuth);

  //azimuth = qmc.azimuth(&y,&x);//you can get custom azimuth

  Serial.print("x: ");

  Serial.print(x);

  Serial.print(" y: ");

  Serial.print(y);

  Serial.print(" z: ");

  Serial.print(z);

  Serial.print(" a: ");

  Serial.print(azimuth);

  Serial.println();

  delay(100);

}


위와 같이 작성 되었습니다.

azimuth 변수는 방위각 (degree) 을 나타내며 X축 기준으로 표시됩니다.

XY평면의 X축 기준이 아닌 다른 기준으로 변경 하고자 할때는 qmc.azimuth(축1,축2); 로 작성할 수 있습니다.



# 동작 확인


 


이렇게 X,Y,Z 값을 통해 방위각을 도출 할 수 있습니다.

감사합니다.




메카리워즈 Image Map


모바일 버전으로 보기