hmc5883l三轴电子罗盘传感器连接arduino

电子说

1.3w人已加入

描述

  HMC5883L器件简介

  (1)器件介绍

  名称:HMC5883L电子指南针罗盘模块(三轴磁场传感器)

  型号:GY-271

  (2)主要技术参数

  使用芯片:HMCL5883L

  供电电源:3-5V

  通信方式:IIC通信协议

  测试范围:±1.3-8高斯

  (3)工作原理

  传统罗盘用一根被磁化的磁针来感应地球磁场,地球磁场与磁针之间的磁力时磁针转动,直至磁针的两端分别指向地球的磁南极与磁北极。电子罗盘也一样,只不过把磁针换成了磁阻传感器,然后将感受到的地磁信息转换为数字信号输出给用户使用。

  (4)产品应用领域

  手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统等。

  (5)器件尺寸图


  hmc5883l三轴电子罗盘传感器连接arduino

  连接方法:

  只要连接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平面角度):

Arduino


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分