0% found this document useful (0 votes)
204 views7 pages

Gy 271 Electronic Compass

This document provides information about the GY-271 electronic compass module. The compass module is designed for low-field magnetic sensing and outputs a differential voltage that can be used to calculate headings. It has an I2C communication protocol, measures magnetic fields from ±1.3-8 Gauss, and has a small form factor of 14.8 x 13.5 x 3.5mm. A sample Arduino sketch is provided to read data from the compass module and output heading angles to the serial monitor.

Uploaded by

Aditia Kurniawan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
204 views7 pages

Gy 271 Electronic Compass

This document provides information about the GY-271 electronic compass module. The compass module is designed for low-field magnetic sensing and outputs a differential voltage that can be used to calculate headings. It has an I2C communication protocol, measures magnetic fields from ±1.3-8 Gauss, and has a small form factor of 14.8 x 13.5 x 3.5mm. A sample Arduino sketch is provided to read data from the compass module and output heading angles to the serial monitor.

Uploaded by

Aditia Kurniawan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

GY-271 ELECTRONIC COMPASS

Description

The Compass Module is designed for low-field magnetic sensing with a digital
interface and perfect to give precise heading information. This compact sensor fits into
small projects such as UAVs and robot navigation systems. The sensor converts any
magnetic field to a differential voltage output on 3 axes. This voltage shift is the raw
digital output value, which can then be used to calculate headings or sense magnetic
fields coming from different directions.

Specifications

Power 3V-5V DC

Chipset HMC5883L

Communication via I2C protocol

Measuring range: 1.3-8 Gauss

Dimensions 14.8 x 13.5 x 3.5mm

Pin Configuration

1. VCC: 3V-5V DC
2. GND: ground
3. SCL: analog input (A5)
4. SDA: analog input (A4)
5. DRDY: not connected

Wiring Diagram

Schematic Diagram

Sample Sketch
#include <Wire.h>
#include <HMC5883L.h>
HMC5883L compass;
void setup()
{
Serial.begin(9600);
Wire.begin();
compass = HMC5883L();
compass.SetScale(1.3);
compass.SetMeasurementMode(Measurement_Continuous);
}
void loop()
{
MagnetometerRaw raw = compass.ReadRawAxis();
MagnetometerScaled scaled = compass.ReadScaledAxis();
float xHeading = atan2(scaled.YAxis, scaled.XAxis);
float yHeading = atan2(scaled.ZAxis, scaled.XAxis);
float zHeading = atan2(scaled.ZAxis, scaled.YAxis);
if(xHeading < 0) xHeading += 2*PI;
if(xHeading > 2*PI) xHeading -= 2*PI;
if(yHeading < 0) yHeading += 2*PI;

if(yHeading > 2*PI) yHeading -= 2*PI;


if(zHeading < 0) zHeading += 2*PI;
if(zHeading > 2*PI) zHeading -= 2*PI;
float xDegrees = xHeading * 180/M_PI;
float yDegrees = yHeading * 180/M_PI;
float zDegrees = zHeading * 180/M_PI;
Serial.print(xDegrees);
Serial.print(",");
Serial.print(yDegrees);
Serial.print(",");
Serial.print(zDegrees);
Serial.println(";");
delay(100);
}

How to Test

The components to be used are:


Arduino Uno (any compatible microcontroller)
GY-271 electronic compass
Pin connectors
Breadboard
USB cable
1. Connect the components based on the figure shown in the wiring diagram using
pin connectors. VCC pin is connected to the 5V power supply, GND pin is
connected to the GND, the SCL pin is connected to A5 pin, and the SDA pin is
connected to A4 pin.
2. After hardware connection, insert the sample sketch into the Arduino IDE.
3. Download and import HMC5583L into the library.
4. Using a USB cable, connect the ports from the microcontroller to the computer.
5. Upload the program.
6. See the results in the serial monitor.

Testing Results

The serial monitor shows the results (X plane angle, Y plane angle, Z
plane angle in degrees) of different positions of the module.

You might also like