TRIPLE AXIS MAGNETOMETER
TRIPLE AXIS MAGNETOMETER
Application:
- Used to Measure earth’s Magnetic Fields.
- To determine direction for sailors and pilots.
Sample Project With Arduino:
Materials requireed:
- Triple Axis Magnatometer
- Arduino UNO
- Jumper Wires
Circuit:
Code:
#include<Wire.h> //I2C arduino library
#define addr 0x1E //I2C address for 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
Wire.beginTransmission(addr);
Wire.write(0x03); //Start with register 3
Wire.endTransmission();
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
}
Serial.print(“X value);
Serial.println(x);
Serial.print(“y value);
Serial.println(y);
Serial.print(“z value);
Serial.println(z);
delay(500);}
Serial Monitor Output:
#include<Wire.h> //I2C arduino library
#define addr 0x1E //I2C address for 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
Wire.beginTransmission(addr);
Wire.write(0x03); //Start with register 3
Wire.endTransmission();
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
}
Serial.print(“X value);
Serial.println(x);
Serial.print(“y value);
Serial.println(y);
Serial.print(“z value);
Serial.println(z);
delay(500);}
Comments
Post a Comment