电路原理图 开发工具 人工审核无毒

Arduino学习笔记3_连接HMC5883L三轴电子罗盘传感器

所属分类 开发工具
文件大小 6 K
文件格式 ZIP 文件
累计下载 27 次
分享作者
发布日期

资料详细技术说明

用途:测量地磁方向,测量物体静止时候的方向,测量传感器周围磁力线的方向。注意,测量地磁时候容易受到周围磁场影响,主芯片HMC5883 三轴磁阻传感器特点(抄自网上):
1,数字量输出:I2C 数字量输出接口,设计使用非常方便。
2,尺寸小: 3x3x0.9mm LCC 封装,适合大规模量产使用。
3,精度高:1-2 度,内置12 位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。
4,支持自动校准程序,简化使用步骤,终端产品使用非常方便。
5,内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。
6,功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6mA


 

连接方法:
只要连接VCC,GND,SDA,SDL 四条线。

Arduino GND -> HMC5883L GND
Arduino 3.3V -> HMC5883L VCC
Arduino A4 (SDA) -> HMC5883L SDA
Arduino A5 (SCL) -> HMC5883L SCL

(注意,接线是A4,A5,不是D4,D5)


源程序:

#include <Wire.h>
#include <HMC5883L.h>
HMC5883Lcompass;
voidsetup()
{
Serial.begin(9600);
Wire.begin();
compass = HMC5883L();
compass.SetScale(1.3);
compass.SetMeasurementMode(Measurement_Continuous);
}
voidloop()
{
MagnetometerRaw raw = compass.ReadRawAxis();
MagnetometerScaled scaled = compass.ReadScaledAxis();
float xHeading = atan2(scaled.YAxis, scaled.XAxis);
float yHeading = atan2(scaled.ZAxis, scaled.XAxis);
float zHeading = atan2(scaled.ZAxis, scaled.YAxis);
if(xHeading < 0) xHeading += 2*PI;
if(xHeading > 2*PI) xHeading -= 2*PI;
if(yHeading < 0) yHeading += 2*PI;
if(yHeading > 2*PI) yHeading -= 2*PI;
if(zHeading < 0) zHeading += 2*PI;
if(zHeading > 2*PI) zHeading -= 2*PI;
float xDegrees = xHeading * 180/M_PI;
float yDegrees = yHeading * 180/M_PI;
float zDegrees = zHeading * 180/M_PI;
Serial.print(xDegrees);
Serial.print(",");
Serial.print(yDegrees);
Serial.print(",");
Serial.print(zDegrees);
Serial.println(";");
delay(100);
}

压缩包内文件清单(共 5 个文件)

包含 3 个可直接在线预览的源码/说明文档 源码与文本文档支持点击「在线阅读」,二进制/媒体文件请下载压缩包后使用
4 PDE
hhmc5883l_example_ansifa.pde 1 KB
包内组件
5 PDE
hmc5883l_example.pde 4.1 KB
包内组件

相关开发工具资料推荐

下载与解压说明

下载积分规则

  • 本资源下载仅需 2 积分
  • 24 小时内重复下载免扣积分
  • VIP 会员享专属免积分高速通道

文件解压指南

  • 推荐使用 7-Zip 或新版 WinRAR 解压
  • 原理图与 PCB 请使用对应 EDA 软件打开
  • 压缩包内源码可直接在上方在线预览

免费获取积分