我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/

    

本文介绍X-CTR100控制器 扩展HMC5983三轴磁力计传感器,模块型号为GY-282,淘宝上可以买到。

三轴磁力计可测量设备周围磁场强度,结合地球磁场可以计算获取水平指向,常用于电子罗盘、数字指南针。

原理

电子罗盘,也叫数字指南针,是利用地磁场来定北向的一种方法。电子罗盘作为一种重要的导航定向工具,正越来越多的应用于导航和定向系统。当前大多数的导航系统都使用电子罗盘来指示方向。电子罗盘通过对地球磁场和重力场等信息的计算、精确输出航向(Azimuth)、俯仰(pitch)、横滚(Roll)等参数。

地磁传感器在一些运动系统中,有时需要进行精确的方向控制,虽然测量方向的方法 有多种,但最便利、通用性最强的还是测量地球的磁场。利用地磁作为参考, 通过传感器测量出与地磁线之间的夹角就可以得到方位角的数据,从而实现精确的方向控制。这里就来讨论一下地磁传感器(又称为数字罗盘或电子罗盘) 及其使用方法。常用的地磁传感器主要有FreeScale(飞思卡尔)的MAG 系列和 Honeywell(霍尼韦尔)的HMC系列。

HMC5883 是一种表面贴装的高集成度、带有IIC 数字接口的弱磁传感器芯 片。它内含有最先进的高分辨率HMC118X 系列磁阻传感器,并附带霍尼韦尔 专利的集成电路(包括有放大器、自动消磁驱动器和偏差校准等),具有12 位 模数转换器能使罗盘精度控制在1°~2°之间。霍尼韦尔的磁传感器在低磁场 传感器行业中是灵敏度最高和可靠性最好的传感器。其测量范围能从毫高斯到 8 高斯(gauss)。HMC5883 的工作电压在2.16V~3.6V 之间,典型为3.3V。虽然工作电压为 低电压方式,但数据端口的电压可通过VDDIO 口来指定。

HMC5983是HMC5883L的升级版磁场传感器,相比于HMC5883,具有如下优势。

1. 可支持IIC以及SPI协议传输;

2. 自动进行温度补偿;

3. 数据更新速率可达220Hz

霍尼韦尔三轴电子罗盘HMC5983是一个温度补偿的三轴集成电路罗盘,一种表面贴装的高集成模块,用于测量磁场,被广泛应用在磁场检测,手机、平板、上网本、消费电子、自动导航和个人导航设备等领域。

Honeywell 公司的先进的工艺,内置高分辨的HMC118X 系列的磁阻传感器加上ASIC,还有放大器,自动消磁带、偏置带和一个12bitADC,这款是5983 航向角的精确度达到1-2 度。I2C 个SPI 串行通信总线,尺寸为3.0*3.0*0.9 表面16 引脚贴片封装。HMC5983 利用霍尼韦尔的AMR 技术,该技术领先于其他的磁传感器技术,这种各向异性传感器具有在轴向高灵敏度和线性高精度的特点,传感器具有对正交轴的低灵敏度的固相结构能用于测量地球磁场的方向和大小,其测量范围从毫高斯到8 高斯。霍尼韦尔的磁传感器在地磁场传感器行业中是灵敏度最高和可靠性最好的传感器。

温度补偿,测量磁感应数据的温度补偿都已经在出厂的时候设置过了,通过芯片内部的温度传感器测量温度来补充由于温度变化产生的传感器灵敏度的变化,这依据传感器典型的敏感温度系数。补偿数据将会被自动放置到数据输出寄存器中,如果想要补偿功能工作,那么必须设置使温度传感器工作(设置CRA7=1)。

例程

初始化HMC5983,采集三轴磁力值并输出显示。

硬件说明

硬件资源:

  • 串口UART1
  • LF接口(IIC2接口)
  • 扩展模块HMC5883L或HMC5983L三轴地磁传感器(需自备)

硬件连接:

模块连接到LF IIC2接口,连接如下图所示。

    

软件生态

X-SOFT软件生态,X-API文件如下。

ax_hmc5983.c——X-CTR100 扩展HMC5983L磁力传感器源文件

ax_hmc5983.h——X-CTR100 扩展HMC5983L磁力传感器头文件

操作函数如下:

void AX_HMC5983_Init(void); //HMC5983传感器初始化

void AX_HMC5983_GetRawMagData(int16_t *pbuf);    //HMC5983获取磁场强度值

软件说明

主程序代码如下。

int main(void)

{

    int16_t magdata[3];

 

    //X-CTR100初始化

    AX_Init(115200);

    printf("***X-CTR100 HMC5983三轴磁力传感器例程***\r\n\r\n");

 

    //模块初始化及配置

    AX_HMC5983_Init();

 

    while (1)

    {

        AX_HMC5983_GetRawMagData(magdata);

 

        printf("磁力寄存器数据 X:%d Y:%d Z:%d \r\n", magdata[0], magdata[1], magdata[2]);

 

        AX_Delayms(500);

        AX_LEDG_Toggle();

    }

}

实现效果

运行效果如下图所示。

    

玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器的更多相关文章

  1. 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 板载加速度 ...

  2. 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 AD转换接 ...

  3. 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...

  4. 玩转X-CTR100 l STM32F4 l 舵机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...

  5. 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器控制步进电机 ...

  6. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  7. 玩转X-CTR100 l STM32F4 l PS2无线手柄

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...

  8. 玩转X-CTR100 l STM32F4 l DSP指令集性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器 DSP库的 ...

  9. 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器如何开启ST ...

随机推荐

  1. POJ3436 ACM Computer Factory(最大流/Dinic)题解

    ACM Computer Factory Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8944   Accepted: 3 ...

  2. 实现分享功能插件2---jiathis分享插件应用

    博主原创:未经博主允许,不得转载 在上一篇的博文中分享了如何用百度分享插件实现分享功能,现在展示用jiathis进行实现分享功能: 主要代码如下: <body> <div class ...

  3. Educational Codeforces Round 53 Editorial

    After I read the solution to the problem, I found that my solution was simply unsightly. Solved 4 ou ...

  4. ZOJ 3329 One Person Game (经典概率dp+有环方程求解)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3329 题意:现在有三个骰子,分别有k1,k2和k3面,面上的点就是1~ki ...

  5. 数据库使用SSIS进行数据清洗教程

    OLTP系统的后端关系数据库用于存储不同种类的数据,理论上来讲,数据库中每一列的值都有其所代表的特定含义,数据也应该在存入数据库之前进行规范化处理,比如说“age”列,用于存储人的年龄,设置的数据类型 ...

  6. placeholder的使用

    1.定义 placeholder 属性提供可描述输入字段预期值的提示信息 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 <input& ...

  7. idea运行main方法报错,提示Shorten command line for xxx

    在Intell IDEA运行main函数的时候遇到了如下错误: Error running' xxxxxx': Command line is too long. Shorten command li ...

  8. Codeforces 893E - Counting Arrays

    893E - Counting Arrays 思路:质因子分解. 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数. 相当于把k个小球分配到y个盒子里的方案数. 这个问题可以用隔板法(插 ...

  9. jsp forward跟redirect区别

    forward 相当于php的 require/include 属于服务器包含/跳转 request.getRequestDispatcher("result.jsp").forw ...

  10. 雷林鹏分享:Ruby 字符串(String)

    Ruby 字符串(String) Ruby 中的 String 对象存储并操作一个或多个字节的任意序列,通常表示那些代表人类语言的字符. 最简单的字符串是括在单引号(单引号字符)内.在引号标记内的文本 ...