单片机实验: 三轴磁场模块 GY-271
最近买了一块三轴磁场模块进行实验
名称:HMC5883L模块(三轴磁场模块)
型号:GY-271
使用芯片:HMC5883L
供电电源:3-5v
通信方式:IIC通信协议
测量范围:±1.3-8 高斯
MCU: STC89C52RC
遇到的问题与解决方法:
1) 我的实验板 P1.0, P1.1 直接连接了板载液晶1602的插口
而作为i2c协议的SDL, SCL输入, 我必须把 P1.0, P1.1 空出来,所以我用外接线连接了液晶
2) 看说明貌似 GY-271 输出是3.3V, 我先打算用上拉电阻, 而后用示波器看数据, 高电平是5V (怀疑 GY-271 上面已经有上拉电阻了 )
去掉上拉电阻一样工作
实验如上:
现在是显示水平的的角度, 我把GY-271以垂直方向为轴, 水平旋转, 显示屏显示 0-360, 看来实验成功了
有空再验证一下其他轴向
视频: http://video.sina.com.cn/v/b/108165740-2558327185.html
附 i2c 问题集:
上拉电阻。
硬件上,一般I2C都要求接上拉电阻,MCU可以内置上拉电阻除外。为什么呢?主要是因为I2C通信的ACK信号,当释放时,需要把DATA线拉高。
发送数据时序。
下降沿改变数据,上升沿发送数据。( SCL 下降后马上调整 SDL, 等SCL上升的时候, 就是其他模块来读取的时候) (SCL高电位的时候, 如何, SDL有变化,就不是数据传输而是启动停止)
SUB地址的选定。
这个SUB地址也是因芯片而多样化。如:
1、指定要编程的具体SUB REGISTER,如24C02,可以编写/读出内部的任何地址的数据;
2、内部没有指定的SUB 地址可选择,读或写时,都只能从某一固定的地址开始,例如:要读0X17的地址的数据,而该芯片固定只能从0X16开始读,则只能读出两字节。芯片如之前博文中提到的收音IC:SI47XXX
连续写。
I2C不仅提供了单个BYTE的读出/写入,也提供了连续地址的读出/写入,如SI47XXX。连续地址操作时,内部地址REGISTER会自动+1,只要连续往里送数据即可,但要注意ACK信号的回应。(每写8个数据,要检查一下ack)
ACK信号。
ACK是应答信号,出现在第九个CLK,但并不是每个BYTE都要出现。如接收一串连续的数据,当接收完成,在最后一个BYTE时,不需要回答ACK信号给芯片。
注意芯片的频率。
频率问题是因芯片而异的,有一些运行速度很快,400KHZ也正常;有一些比较慢,超过100us一个CLK。前者,对USER而言,现的问题不多,后者,却要令USER增加不少延时。这就是每个IC都有时序要求的说明文档,里面一定有各个时间值的最大或最小参考。
字节序
每个数据字节在传送时都是高位(MSB)在前。
单片机实验: 三轴磁场模块 GY-271的更多相关文章
- 【雕爷学编程】Arduino动手做(48)---三轴ADXL345模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验三:按键模块② — 点击与长点击
实验三:按键模块② - 点击与长点击 实验二我们学过按键功能模块的基础内容,其中我们知道按键功能模块有如下操作: l 电平变化检测: l 过滤抖动: l 产生有效按键. 实验三我们也会z执行同样的事情 ...
- 基于STM32的三轴数字罗盘HMC5883L模块的测试
最近买了个数字罗盘模块,调通后发现很不错,非常灵敏,测试的时候精度在1°以内.连续测量模式下,最快测量.输出速率可达75hz,模块每次测量完毕并将数据更新至寄存器后,其DRDY引脚便产生一个低电平脉冲 ...
- STC8H开发(六): SPI驱动ADXL345三轴加速度检测模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- STC8H开发(七): I2C驱动MPU6050三轴加速度+三轴角速度检测模块
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- 【iCore2双核心板视频教程】 AD模块(iM_AD_GP和iM_AD_SYNC)介绍及数据采集实验三
建议设定成 “超清” 模式并 “全屏” 观看. ============================== 技术论坛:http://www.eeschool.org 博客地址:http://xiao ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二:按键模块① - 消抖
实验二:按键模块① - 消抖 按键消抖实验可谓是经典中的经典,按键消抖实验虽曾在<建模篇>出现过,而且还惹来一堆麻烦.事实上,笔者这是在刁难各位同学,好让对方的惯性思维短路一下,但是惨遭口 ...
- 玩转X-CTR100 l STM32F4 l HMC5983/HMC5883L三轴磁力计传感器
我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器 扩展HMC ...
- 「雕爷学编程」Arduino动手做(38)——joystick双轴摇杆模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
随机推荐
- Delphi中多标签页面的实现
unit uMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- BCM wifi驱动学习
BCMwifi驱动学习 一.wifi详解1 1.代码路径:Z:\home\stonechen\svn\TD550_X\TD550\3rdparty\wifi\BCM43362\special\bcmd ...
- Swift - 给表格添加移动单元格功能(拖动行)
1,下面的样例是给表格UITableView添加单元格移动功能: (1)给表格添加长按功能,长按后表格进入编辑状态 (2)在编辑状态下,可以看到单元格后面出现拖动按钮 (3)鼠标按住拖动按钮,可以 ...
- poj 1018 Communication System 枚举 VS 贪心
Communication System Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 21631 Accepted: ...
- 让Delphi XE2程序支持UAC
在win7下,开发的程序有的时候莫名其妙就不能正常工作了,其实都是因为权限不够,要想能够正常运行,就需要获得管理员权限,这就需要处理UAC.具体方法如下: 一,制作“uac.manifest”文件.新 ...
- 阿斯钢iojeg9uhweu9erhpu9hyw49
http://www.huihui.cn/share/8424421 http://www.huihui.cn/share/8424375 http://www.huihui.cn/share/842 ...
- hdu 5138
参考……!!!! #include <iostream> #include <cstdio> #include <cmath> #include <cstri ...
- form表单提交不成功提示
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- (step4.3.9)hdu 1584(蜘蛛牌——DFS)
题目大意:本体是中文题,可以直接在OJ上看 /* * 1584_2.cpp * * Created on: 2013年8月22日 * Author: Administrator */ #include ...
- ZenCoding Syntax
语法: 后代:> 缩写:nav>ul>li 兄弟:+ 缩写:div+p+bq 上级:^ 缩写:div+div>p>span+em^bq 缩写:div+div>p&g ...