Arduino笔记四电子指南针罗盘HMC5883L
电子指南针罗盘HMC5883L是三轴磁阻传感器,用来测量周围的磁感应强度,测量范围-8g~8g单位是高斯。提到磁感应强度最熟悉的应该是高中时学的B单位T特斯拉,其实高斯也是磁感应强度单位,只不过高斯是很小的单位,10000高斯等于1特斯拉。网上是这么定义的:一段导线,若放在磁感应强度均匀的磁场中,方向与磁感应强度方向垂直的长直导在线通有1电磁系单位(emu)的稳恒电流(等于10安培)时,在每厘米长度的导线受到电磁力为1达因,则该磁感应强度就定义为1高斯。即1T(特斯拉)=10000g(高斯)
开发环境:
系统:XP
单板:Arduino Leonardo
平台:Arduino
目标:读三轴方向的磁感应强度,并通过串口显示
一、硬件介绍
电子指南针罗盘HMC5883L内嵌12-Bit ADC,测量磁感应强度范围-8g~8g单位高斯。HMC5883L模块原理图如下:
这里只用到SCL、SDA、VCC_3.3V、GND分别连接到Arduino的对应接口上。Arduino Leonardo上直接标有SDA、SCL连上即可,其它Arduino根据自己的板子连接。
二、编写测试代码
在Arduino上写代码非常简单,很多库都帮你做好了,直接调用即可,十分方便。但Arduino的版本很多,特别是Arduino-1.0以后,有些库有所改变,需要看对应版本的参考手册arduino-1.5.2-windows\arduino-1.5.2\reference下面有详细说明,我也是结合网上找的程序参考这些修改。代码如下:
文件HMC5883.ino
#include <Wire.h> //I2C Arduino Library
#define address 0x1E //0011110b, I2C 7bit address of HMC5883
void setup(){
//Initialize Serial and I2C communications
Serial.begin(9600);
Wire.begin();
//Put the HMC5883 IC into the correct operating mode
Wire.beginTransmission(address); //open communication with HMC5883
Wire.write(0x02); //select mode register
Wire.write(0x00); //continuous measurement mode
Wire.endTransmission();
}
void loop(){
int x,y,z; //triple axis data
//Tell the HMC5883 where to begin reading data
Wire.beginTransmission(address);
Wire.write(0x03); //select register 3, X MSB register
Wire.endTransmission();
//Read data from each axis, 2 registers per axis
Wire.requestFrom(address, 6);
if(6<=Wire.available()){
x = Wire.read()<<8; //X msb
x |= Wire.read(); //X lsb
z = Wire.read()<<8; //Z msb
z |= Wire.read(); //Z lsb
y = Wire.read()<<8; //Y msb
y |= Wire.read(); //Y lsb
}
//Print out values of each axis
Serial.print("x: ");
Serial.print(x);
Serial.print(" y: ");
Serial.print(y);
Serial.print(" z: ");
Serial.println(z);
delay(250);
}
这个不懂只能对着手册看了。
三、编译、测试
Arduino还是很方便操作的,选择好单板、参考,直接点上面的“对勾”就开始编译,编译没问题,点“->”箭头状的,开始上传程序,直至上传进度条完成。
接着打开Tools/Serial Monitor 显示如下:
这是水平放置时的测量结果,倾斜模块可以看到值会变化。
Arduino笔记四电子指南针罗盘HMC5883L相关推荐
- 电子指南针Arduino笔记四电子指南针罗盘HMC5883L
最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--电子指南针 电子指南针罗盘HMC5883L是三轴磁阻传感器,用来测量四周的磁感应强度,测量范围-8g~8g单位是高斯.提到磁感应强度最熟 ...
- esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机
arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...
- Arduino笔记实验(初级阶段)—Keypad小键盘
Arduino笔记实验(初级阶段)-Keypad小键盘 文章目录 Arduino笔记实验(初级阶段)-Keypad小键盘 前言 一.电路图 二.集成库方案(Keypad) 三方集成库 代码 实验效果展 ...
- Arduino笔记实验(初级阶段)—火焰传感器+有源蜂鸣器实验
Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 文章目录 Arduino笔记实验(初级阶段)-火焰传感器+有源蜂鸣器实验 前言 一.电路图 二.火焰传感器(4引脚)-有源蜂鸣器 代码 ...
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- MSSQL编程笔记四 解决count distinct多个字段的方法
MSSQL编程笔记四 解决count distinct多个字段的方法 参考文章: (1)MSSQL编程笔记四 解决count distinct多个字段的方法 (2)https://www.cnblog ...
- RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)
RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...
- JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档
POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...
- Ethernet/IP 学习笔记四
Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...
最新文章
- case when里的like功能 ////// 截取(substr)
- java 默认字符集 iso_第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码及......
- python抓取微博数据中心_有哪些「神奇」的数据获取方式?
- matlab gui设计实例_S-Funciton应用实例
- 空之轨迹sc存档_《空之轨迹》:一部优秀到让续作也无法超越的经典单机游戏!...
- DNS攻击原理与防范
- winserver 服务开机启动
- android 7.0电视,将智能电视升级到Android 7.0有什么经验?为索尼用户祝福
- 云视通存储怎么不是24小时_降压目标不是一次血压正常,而是24小时血压都要正常...
- 爬取http://ycb-benchmarks.s3-website-us-east-1.amazonaws.com/的链接并下载文件
- HasMany() = (1..*) HasOptional() = (1..0,1) HasRequired() = (1..1)
- QT5之MYSQL操作
- IPv6带给互联网的新契机
- restlet client插件下载
- 麻省理工学院计算机硕士几年制,2020年麻省理工学院硕士读几年
- java8 lambda 处理分类和子分类的技巧
- sun.misc.BASE64Encoder是内部专用 API, 可能会在未来发行版中删除
- f文件服务器,f文件服务器
- shell字符串切割 去除文件名后缀
- 影像篡改与识别(一):胶片时代
热门文章
- aac怎么转化为mp3格式?
- 关于MyEclipse 10 破解程序打开的原因
- 同步助手java_QQ同步助手Java版发布:八大手机平台全覆盖
- 操作系统期末考试重点知识
- 【日常】DES加密算法python实现_以密码编码学与网络安全——原理与实践(第六版)课后习题3.11为例
- Spring Boot日志格式化JSON方案
- ThinkPad E450 10.11 驱动HD4400的注意即解决方法_s芃成_新浪博客
- 【HUSTOJ】1051: 字符图形7-星号菱形
- 刷机-3.71M33升级到3.71M33-3的方法
- Servlet实现一个登陆界面