玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器

我造轮子,你造车,创客一起造起来!塔克创新资讯【塔克社区 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三轴磁力计传感器的更多相关文章
- 玩转X-CTR100 l STM32F4 l MPU6050加速度陀螺仪传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 板载加速度 ...
- 玩转X-CTR100 l STM32F4 l ADC 模拟数字转换
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 AD转换接 ...
- 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...
- 玩转X-CTR100 l STM32F4 l 舵机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器的舵机控制,X-CTR ...
- 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器控制步进电机 ...
- 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器基础板载资源 ...
- 玩转X-CTR100 l STM32F4 l PS2无线手柄
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] SONY的PS2无线手柄是索尼游戏机的遥控手柄,控制 ...
- 玩转X-CTR100 l STM32F4 l DSP指令集性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 DSP库的 ...
- 玩转X-CTR100 l STM32F4 l FPU单精度浮点性能测试
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器如何开启ST ...
随机推荐
- Qt5.2+opencv2.4.9配置安装过程
Qt5.2+Opencv2.4.9的安装与配置 安装环境 Win10系统 Qt5.2.0 Opencv2.4.9 1. 安装Qt5.2.0 安装在D:\Qt\5.2.0文件夹(记为A文件夹) Qt下载 ...
- Tex: The top-level auxiliary file: *.aux I couldn't open style file IEEEtran.bst 解决方法
参考: Bibliography is not printed using Kile on Ubuntu Tex: The top-level auxiliary file: *.aux I coul ...
- flask报错No module named 'flask.ext'
解决: from flask.ext.httpauth import HTTPBasicAuth 改为 from flask_httpauth import HTTPBasicAuth 提示Modul ...
- nohup 与 &
&的意思是在后台运行, 什么意思呢? 意思是说, 当你在执行 ./a.out & 的时候, 即使你用ctrl C, 那么a.out照样运行(因为对SIGINT信号免疫). 但是要注 ...
- R-CNN(Rich feature hierarchies for accurate object detection and semantic segmentation)论文理解
论文地址:https://arxiv.org/pdf/1311.2524.pdf 翻译请移步: https://www.cnblogs.com/xiaotongtt/p/6691103.html ht ...
- Insert Delete GetRandom O(1)
2018-07-15 18:36:29 问题描述: 问题求解: private ArrayList<Integer> ls; private HashMap<Integer, Int ...
- Python 爬虫-Robots协议
2017-07-25 21:08:16 一.网络爬虫的规模 二.网络爬虫的限制 • 来源审查:判断User‐Agent进行限制 检查来访HTTP协议头的User‐Agent域,只响应浏览器或友好爬虫的 ...
- Java注解 框架开发之Java注解的妙用
原文出处: locality 注解的好处: 1.能够读懂别人写的代码,特别是框架相关的代码. 2.本来可能需要很多配置文件,需要很多逻辑才能实现的内容,就可以使用一个或者多个注解来替代,这样就使得编程 ...
- JPA实体关系映射:@ManyToMany多对多关系、@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析
JPA实体关系映射:@ManyToMany多对多关系.@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析 今天程序中遇到的错误一 org.hibernate.A ...
- [Java学习] JSON工具学习记录--FastJSON
最近做项目,总是与json打交道,在用了即可json工具后,个人认为fastJson最好用,很方便,API也清晰可见,所以记录下使用方法,给需要的人提供帮助.(部分摘抄自网络) 一.API入口 Fas ...