电子说
名称:HMC5883L电子指南针罗盘模块(三轴磁场传感器)
型号:GY-271
使用芯片:HMCL5883L
供电电源:3-5V
通信方式:IIC通信协议
测试范围:±1.3-8高斯
传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,然后将感受到的地磁信息转换为数字信号输出给用户使用。
手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统等。
只要连接VCC,GND,SDA,SCL四条线。ArduinoGND-》HMC5883LGNDArduino3.3V-》HMC5883LVCCArduinoA4(SDA)-》HMC5883LSDAArduinoA5(SCL)-》HMC5883LSCL
(注意,接线是A4,A5,不是D4,D5)
1、下载HMC5883L库文件。下载地址:http://soft2.wmzhe.com/download/AnsifaArduino/HMC5883L.zip
2、解压HMC5883L库文件到arduino文件夹:arduino-0022libraries下面。
3、编写以下程序,下载下面测试程序到arduino:
#include《Wire.h》
#include《HMC5883L.h》
HMC5883Lcompass;
voidsetup()
{
Serial.begin(9600);
Wire.begin();
compass=HMC5883L();
compass.SetScale(1.3);
compass.SetMeasurementMode(Measurement_Continuous);
}
voidloop()
{
MagnetometerRawraw=compass.ReadRawAxis();
MagnetometerScaledscaled=compass.ReadScaledAxis();
floatxHeading=atan2(scaled.YAxis,scaled.XAxis);
floatyHeading=atan2(scaled.ZAxis,scaled.XAxis);
floatzHeading=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;
floatxDegrees=xHeading*180/M_PI;
floatyDegrees=yHeading*180/M_PI;
floatzDegrees=zHeading*180/M_PI;
Serial.print(xDegrees);
Serial.print(“,”);
Serial.print(yDegrees);
Serial.print(“,”);
Serial.print(zDegrees);
Serial.println(“;”);
delay(100);
}
打开Arduino串口监视器即可看到结果(X平面角度,Y平面角度,Z平面角度):
全部0条评论
快来发表一下你的评论吧 !