我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 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. git 指定要提交的ssh key

    问题描述 ssh具有-i选项,用于告知在验证时使用哪个私钥文件: -i identity_file Selects a file from which the identity (private ke ...

  2. Slf4j+LogBack使用参考

    博文参考: 最简例子:https://blog.csdn.net/johnson_moon/article/details/77532583 Web中配置:https://blog.csdn.net/ ...

  3. 51Nod 1091 线段的重叠(贪心+区间相关

    1091 线段的重叠 X轴上有N条线段,每条线段包括1个起点和终点.线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]. 给出N条线段的起点和终点,从中选出2条线段,这两 ...

  4. [Err] 1111 - Invalid use of group function

    本文为博主原创,未经允许不得转载: 初衷,本想通过group by sql语句查询出不同id下总数在一定范围内的数据,所以产生如下的sql,及错误sql AND STATDATE < ' GRO ...

  5. 【TCP/IP详解 卷一:协议】第十章 动态选路协议

    更为详细的RIP博客解析: RIP理论 距离向量算法的简介: RIP协议V-D算法的介绍 10.1 引言 静态选路修改路由表的三种方法 (1)主机设置时,默认的路由表项 (2)ICMP重定向报文(默认 ...

  6. Codeforces Beta Round #17 A.素数相关

    A. Noldbach problem Nick is interested in prime numbers. Once he read about Goldbach problem. It sta ...

  7. go下载安装

    https://studygolang.com/dl 一直下一步即可.

  8. Selenium库的使用

    一.什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行 ...

  9. [ios]sqlite轻量级数据库学习连接

    SQLLite (一)基本介绍 http://blog.csdn.net/lyrebing/article/details/8224431 SQLLite (二) :sqlite3_open, sql ...

  10. 《剑指offer》第八题(重要!查找二叉树的中序遍历的下一个结点)

    文件一:main.cpp // 面试题:二叉树的下一个结点 // 题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点? // 树中的结点除了有两个分别指向左右子结点的指针以外,还有 ...