아두이노 3축 자기장센서 HMC5883L 사용하기 / 전자나침반 / 캠퍼스 센서 / 아두이노강좌

라임 2017-01-15 (일) 02:51 7년전 7612  

MAKER:  Mechasolution_John

 

 

 개요 (Introduction) 

 

나침반이 항상 북쪽을 가리키는 이유는 지구가 자성을 가지고 있기 때문입니다. (즉 지구는 하나의 자석)

이러한 원리를 이용하여 방위를 측정할 수 있는 센서 HMC5883L 자기장센서를 사용해보도록 하겠습니다. 

  


시작 전 알아야 할 내용

 

 준비물 (Part list)  

 

 

 

 

 

1. 아두이노 우노

2. 우노 케이블

3. 점퍼케이블 

4. 자기장센서 

수량: 1개

 수량: 1개

 수량: x개

수량: 1개 

 

 

1. 아두이노 - 연결된 부품들을 제어하는 두뇌역할을 담당합니다. 크기와 기능에 따라 우노, 메가, 나노, 프로미니 등의 보드들이 존재하며  정품과 호환보드로도 분류해줄 수 있습니다.
2. 우노 통신, 전원 케이블  -  우노보드에 전원을 넣어주고 컴퓨터와 통신하여 코드를 업로드해줄 수 있습니다. 
3. 점퍼 케이블  -  센서와 아두이노 보드를 연결합니다. 
4. HMC5883L 자기장센서  -  자기장을 이용하여 방위를 측정할 수 있습니다. 

 

구매는 위의 이미지를 클릭하거나 아래의 링크에서 가능합니다.

1. 메카솔루션 http://mechasolution.com

2. 레나에너지 http://storefarm.naver.com/lenaenergy



 

 메이크쉐어 (MakeShare) 

 


아두이노와 센서의 I2C 통신을 위한 회로입니다.

SDA는 아날로그 4번핀 SCL는 아날로그 5번핀에 연결해줘도됩니다.

 

 

아두이노 프로그래밍 코드 (Coding) 


#include <Wire.h> //I2C Arduino Library


#define addr 0x1E //I2C Address for The HMC5883


void setup() {


  Serial.begin(9600);

  Wire.begin();



  Wire.beginTransmission(addr); //start talking

  Wire.write(0x02); // Set the Register

  Wire.write(0x00); // Tell the HMC5883 to Continuously Measure

  Wire.endTransmission();

}



void loop() {


  int x, y, z; //triple axis data


  //Tell the HMC what regist to begin writing data into

  Wire.beginTransmission(addr);

  Wire.write(0x03); //start with register 3.

  Wire.endTransmission();



  //Read the data.. 2 bytes for each axis.. 6 total bytes

  Wire.requestFrom(addr, 6);

  if (6 <= Wire.available()) {

    x = Wire.read() << 8; //MSB  x

    x |= Wire.read(); //LSB  x

    z = Wire.read() << 8; //MSB  z

    z |= Wire.read(); //LSB z

    y = Wire.read() << 8; //MSB y

    y |= Wire.read(); //LSB y

  }


  // Show Values

  Serial.print("X Value: ");

  Serial.println(x);

  Serial.print("Y Value: ");

  Serial.println(y);

  Serial.print("Z Value: ");

  Serial.println(z);

  Serial.println();


  delay(500);

}


 

 

 

 

  결과물 (Product) 

 



메카리워즈 Image Map


모바일 버전으로 보기