极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Ansifa

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

  [复制链接]
发表于 2015-1-28 10:40:08 | 显示全部楼层
Good_Morning 发表于 2014-9-15 23:38
求助啊大神们,我的5883怎么没有反应呢

SDA、SDL换一下就可以了
回复 支持 反对

使用道具 举报

发表于 2015-1-28 15:35:45 | 显示全部楼层
角度的误差很大,没有校准,另外也没有考虑加速度的影响,平放的时候还可以,倾斜的情况下就完全不能用了。这么处理的效果比JY-901模块差远了
回复 支持 反对

使用道具 举报

发表于 2015-2-8 19:54:50 | 显示全部楼层
zjhyhky 发表于 2013-1-22 22:46
1.0以上版本具体如何改库

没有人解答,我自己百度百度,终于解决了。方法如下:

改了就能编译通过了,灰常感谢!
回复 支持 反对

使用道具 举报

发表于 2015-2-9 14:35:29 | 显示全部楼层
支持楼主啊
回复 支持 反对

使用道具 举报

发表于 2015-2-27 12:19:30 | 显示全部楼层
测试了楼主的库和代码,为什么I2C通讯失败了,我用的是GY-86,板子上的MPU6050测试没有问题了。。。楼主能指导一下吗?
回复 支持 反对

使用道具 举报

发表于 2015-3-3 21:41:07 | 显示全部楼层
zjhyhky 发表于 2013-1-22 22:46
1.0以上版本具体如何改库

没有人解答,我自己百度百度,终于解决了。方法如下:

真神,俺感谢你!
回复 支持 反对

使用道具 举报

发表于 2015-3-6 16:39:38 | 显示全部楼层
先学习了,慢慢研究研究,努力提高
回复 支持 反对

使用道具 举报

发表于 2015-3-11 16:19:13 | 显示全部楼层
Arduino:1.6.0 (Windows 8), 板:"Arduino Uno"

D:\arduino\hardware\arduino\avr\libraries\HMC5883L\HMC5883L.cpp:23:23: fatal error: WProgram.h: No such file or directory
#include <WProgram.h>

                       ^
compilation terminated.
编译有误。
这个错误提示是什么意思啊?求大神解答


回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-13 21:37:49 | 显示全部楼层
xpc_dan 发表于 2015-3-11 16:19
Arduino:1.6.0 (Windows 8), 板:"Arduino Uno"

D:\arduino\hardware\arduino\avr\libraries\HMC5883L\H ...

库只适用于arduino-0023,懒得改,下个0023凑合吧
回复 支持 反对

使用道具 举报

发表于 2015-4-17 18:36:48 | 显示全部楼层
xpc_dan 发表于 2015-3-11 16:19
Arduino:1.6.0 (Windows 8), 板:"Arduino Uno"

D:\arduino\hardware\arduino\avr\libraries\HMC5883L\H ...

在HMC5883L.ccp中将#include <WProgram.h> 改为:
#if ARDUINO >= 100
    #include "Arduino.h"   
#else
extern "C" {
    #include "WProgram.h"
}
#endif
就能杀了。
回复 支持 反对

使用道具 举报

发表于 2015-7-15 16:14:36 | 显示全部楼层
本帖最后由 Ansifa 于 2015-7-15 20:31 编辑

我复制楼主的代码 编译 下载完成之后 ,从串口监视器上看的结果不发生变化,而且连接电子罗盘模块与否对结果没有影响啊,是个怎么回事

是不是SDASCL接反了啊,试试换过来
回复 支持 反对

使用道具 举报

发表于 2015-9-20 15:23:47 | 显示全部楼层
新版本的IDE直接用管理库工具加载“Adafruit_Sensor”“Adafruit_HMC5883”两个库就能使用了,很简单的,但是角度输出也没有校准,误差较大,写个算法校准效果要好很多。
回复 支持 反对

使用道具 举报

发表于 2015-10-10 20:59:05 | 显示全部楼层
如果是mega2560的话SCL引脚插21,SDA引脚插20,暂时不知道DRDY引脚咋用。
回复 支持 反对

使用道具 举报

发表于 2015-10-14 16:44:35 | 显示全部楼层
zsarduino 发表于 2015-10-10 20:59
如果是mega2560的话SCL引脚插21,SDA引脚插20,暂时不知道DRDY引脚咋用。

看手册,DRDY应该是读数据准备好的中断引脚,当要读取的数据准备好后,DRDY引脚会有125us的低电平,CPU可以用外数中断方式及时读数,但库文件好象不支持该引脚,实际使用可以不接。
回复 支持 反对

使用道具 举报

发表于 2015-10-14 16:49:36 | 显示全部楼层
另,最近发现一个HMC5883的问题,一并记这儿:最近买了几片HMC5883L模块,结果被坑了,卖家没说不能用在5V系统,只说能5V供电,以为在MEGA2560上能用,结果读数据有问题,一开始是读出来不更新,每次复位更新一次数据,后来发现上拉电阻不是装的PCB上印的4.7K,装的是10K,换成4.7K后,可以连续读数据,但读一断时间后就会死机,以为程序有问题,查来查去,后来发现以前买的模块能正常读,仔细比较两个模块,发现新买的模块没有电平转换电路,以HMC5883L的IIc的1.8V电平直接接5V系统,不死才怪,所以5V系统买这个模块一定要买GY-271型号,有两个小6脚芯片的,一个是LDO,一个是双MOS做电平转换,只有一个LDO的模块只能用在3.3V或1.8V系统。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 22:33 , Processed in 0.045603 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表