HMC5883L磁力计使用

news/2024/11/24 14:04:35/

一、器件简介

        HMC5883L是一款三轴磁场传感器,电子指南针罗盘模块。采用IIC通讯协议。

二、工作原理

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

        用来衡量磁感应强度大小的单位是Tesla或者Gauss(1Tesla=10000Gauss)。

        地磁场是一个矢量,对于一个固定的地点来说,这个矢量可以被分解为两个与当地水平面平行的XY分量和一个与当地水平面垂直的Z分量。如果保持电子罗盘和当地的水平面平行,那么罗盘中磁力计就和这三个分量对应起来了。实际上对水平方向的两个分量来说,他们的矢量和总是指向磁北的。罗盘中的航向角就是方向与磁北的夹角。

三、磁场校准

        因为磁场干扰的原因,实际中我们测量的磁力计数据是不准确的,需要进行校准才可以使用。

         理想效果为图一,实际效果很可能为图二,变成了一个椭球,因此我们需要采用拟合的方法,来修正校准。

修正的输出可以根据下面的方法来计算:    

        1)在磁场干扰的条件下进行,数据收集设备被旋转360°。 

        2)数据进行分析,以产生偏差的偏移和灵敏度的比例因子,以补偿所述干扰。

  • 从数据中发现的X和Y磁强计的最大输出,以上图为例,即可得到结论:X具有更大的反应。我们设置其比例系数为1。即Xs=1
  • Y轴比例系数为  Ys = ( Xmax - Xmin)/( Ymax - Ymin)
  • 对于偏置补偿有 
    • Xb = Xs * [1/2(Xmax - Xmin) - Xmax ]
    • Yb = Ys * [1/2(Ymax - Ymin) - Ymax ]
  • 正确的输出为
    • Xout = Xin*Xs + Xb
    • Yout = Yin*Ys + Yb

四、在ArduinoUNO上的基本使用

        在ArduinoIDE菜单栏 → 项目 → 加载库 → 管理库

        搜索 HMC5883

         我这安装的第一个。

        然后在 ArduinoIDE菜单栏 → 文件 → 示例,找到 Adafruit HMC5883 Unified的唯一一个示例文件,打开。

 

        咱们将HMC5883L模块连接到Arduino UNO板子上,跑跑这个程序吧。结果如下:

         我和手机对比了一下,相差四度,可能是因为手机的磁场干扰到模块了吧。


http://www.ppmy.cn/news/754272.html

相关文章

HMC5883L 磁力计校准

原文地址: http://blog.sina.com.cn/s/blog_402c071e0102v8ie.html 这里针对 HMC5883L 磁力计 的校准,做一个简单讲解。欢迎交流,新浪长沙WalkAnt。 先看看这篇文章:http://blog.sina.com.cn/s/blog_8240cbef0101i7gn.html 如果磁…

基于DHT网络的BT磁力链蜘蛛源码

几年前研究大文件的下载分发,注意到了libtorrent这个非常完善的BT下载库,因此对BT相关协议也有了粗浅的了解。于是我用这个库提供的接口,实现了一个DHT的蜘蛛。 我把这个蜘蛛放到美国的不限制UDP和BT协议的虚拟机上,每天大概可以…

旅游卡系统招募城市合伙人

旅游业的不断发展,旅游卡系统作为一种新型的旅游消费模式也逐渐被越来越多的人所认可。现在,许多旅游卡系统开始招募城市合伙人,以进一步拓展其市场。 旅游卡系统是一种可以将不同景区、景点门票进行整合,并提供折扣优惠的旅游…

保姆级 雅特力AT32 MCU 从SRAM启动KEIL工程配置步骤(STM/GD/APM通用)

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。 本文档用于本人对知识点的梳理和记录。 一、前言 开发工具:KEIL 开发板:AT32F415 AT-START-F415 软件工程:雅特力BSP flash_wirte_read 点击…

泛型使用场景和例子

泛型是Java中的一种机制,它允许我们在编写类或方法时使用参数化类型。通过使用泛型,我们可以编写更加通用和类型安全的代码。 下面是一些使用泛型的常见场景和例子: 集合类:Java的集合框架中使用了泛型来增加类型安全性。例如&am…

KnowStreaming系列教程第一篇——安装和使用

KnowStreaming介绍 Know Streaming是一套云原生的Kafka管控平台,脱胎于众多互联网内部多年的Kafka运营实践经验,专注于Kafka运维管控、监控告警、资源治理、多活容灾等核心场景。在用户体验、监控、运维管控上进行了平台化、可视化、智能化的建设&#…

Unity的AssetPostprocessor之Model:深入解析与实用案例 2

Unity AssetPostprocessor中Model相关函数的实际应用 Unity AssetPostprocessor是Unity引擎中的一个重要功能,它可以在导入资源时自动一些脚本,以便对资源进行自定义处理。其中,Model相关的函数可以用于对导入的3D模型进行处理,包…

Win10笔记本(机械革命)亮度调节快捷键失效-已解决

Win10笔记本(机械革命)亮度调节快捷键失效-已解决 1.确定你已经安装了核心显卡驱动(驱动精灵检查一下) 2.右击此电脑–》管理–》系统工具–》设备管理器–》监视器(单击展开)–》卸载dpms ,卸载Generic Monitor&#…