玩转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 ...
随机推荐
- 51NOD 1099 任务执行顺序
来源:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1099 前天没睡好 昨天做题闷闷沉沉的 好多一眼题 都瞎做了 这题今 ...
- BZOJ2654: tree 二分答案+最小生成树
Description 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有need条白色边的生成树. 题目保证有解. Input 第一行V,E,need分别表示点数,边数和需要的白色 ...
- ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图
作者原创,未经博主允许,不可转载 在前面分析和讲解了用java代码分别实现饼状图和折线图,在工作当中,也会遇到很多用ajax进行异步请求 实现highchart. 先展示一下实现的效果图: 用ajax ...
- POJ 2152 Fire(树形dp)
http://poj.org/problem?id=2152 题意: n个节点组成的树,要在树一些点上建立消防站,每个点建站都有个cost[i],每个点如果不在当前的点上建站,也要依赖其他的消防站,并 ...
- UVa 11636 你好 世界!(贪心)
https://vjudge.net/problem/UVA-11636 题意: 经过一次复制,一条语句会变成两条语句,再经过一次变成四条语句...求最少需要复制几次能使条数恰好为n? 思路: 贪心水 ...
- UVa 10570 外星人聚会
https://vjudge.net/problem/UVA-10570 题意:输入1~n的排列,每次可以交换两个整数,求出最少交换次数使之变成有序的环状序列. 思路:主要的解题方法就是寻找置换环,举 ...
- UVa 10163 仓库守卫
https://vjudge.net/problem/UVA-10163 题意: 有n个仓库,m个管理员,每个管理员有一个能力值P(接下来的一行有m个数,表示每个管理员的能力值) 每个仓库只能由一个管 ...
- UVa 12627 奇怪的气球膨胀(分治)
https://vjudge.net/problem/UVA-12627 题意:一开始有一个红气球.每小时后,一个红气球会变成3个红气球和1个蓝气球,而1个蓝气球会变成4个蓝气球.如图所示分别是经过0 ...
- Codeforces Round #406 (Div. 2) D. Legacy 线段树建模+最短路
D. Legacy time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...
- Asp.net Ajax(ashx)
主要实现 ajax分页功能 效果图 后台方法代码展示 /// <summary> /// WebAjax处理类 /// </summary> public class WebA ...