一、器件介绍:
(1)
器件介绍:
名称:HMC5883L电子指南针罗盘模块(三轴磁场传感器)
型号:GY-271
(2)主要技术参数:
使用芯片:HMCL5883L
供电电源:3-5V
通信方式:IIC通信协议
测试范围:± 1.3-8高斯
(3)工作原理:
传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,然后将感受到的地磁信息转换为数字信号输出给用户使用。
(4)产品应用领域:
手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统等。
(5)器件尺寸图:
http://s4/mw690/b4d6244ag7b6c337c3433&690Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" TITLE="Arduino Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" />
http://s14/mw690/b4d6244agd23a02ea5a0d&690Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" TITLE="Arduino Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" />
二、测试实验:
(1)实验目的:
即时得到I平方C总线数据。(Ps:I2C(Inter-Integrated
Circuit)总线是一种由PHILIPS公司开发的两线式串行总线)
(2)线路连接(理论):
http://s10/mw690/b4d6244agd239d071bd69&690Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" TITLE="Arduino Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" />
(3)线路连接(实际):
http://s7/mw690/b4d6244agd2394e787e86&690Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" TITLE="Arduino Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" />
(4)运行代码:
#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);
}
(5)测试结果图:
http://s10/mw690/b4d6244agd2398abaa669&690Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" TITLE="Arduino Uno + HMC5883L电子指南针罗盘模块(三轴磁场传感器)简介及测试实验" />
(6)操作过程中出现的问题及解决方案:
无法正常编译,原因:编译器版本过久,换了Arduino-0022编译器后能正常编译。
三、后期工作:
接下来的工作是测试陀螺仪与Multiwii lite板。
(以上资料部分源于互联网)
资料整理人:邓晨涛
实验测试者:邓晨涛,林峻民,彭帆,张世琳(按姓氏首字母排序)
加载中,请稍候......