单片机实验: 三轴磁场模块 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种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
随机推荐
- android设置背景图片透明
设置Activiyt为透明可以在Activity中引用系统透明主题android:theme="@android:style/Theme.Translucent" 设置背景图片透明 ...
- C和指针 (pointers on C)——第十章:结构体和联合(上)
第十章 结构和联合 这个部分先介绍了.运算符,能够供直接訪问,还介绍了->运算符,它取代结构体指针的间接訪问操作(*struct).xxx 这一章新手理解起来不算太难,没有学过操作系统的话理解位 ...
- JS - 全屏滚动
下载地址:http://www.lanrentuku.com/js/quanping-1141.html
- Mac 修改Host 绑定host
Mac 系统下 ,修改Host 文件: 打开命令行终端 输入 sudo vi /etc/hosts 之后回车确认,进入vi 编辑界面(进行vi编辑操作,之后保存就行了) 版权声明:本文为博主原创文章, ...
- jquery 动态添加和删除 ul li列表
今天需要实现一个jquery动态添加和删除 ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
- boost.asio包装类st_asio_wrapper开发教程(2014.5.23更新)(一)-----转
一:什么是st_asio_wrapper它是一个c/s网络编程框架,基于对boost.asio的包装(最低在boost-1.49.0上调试过),目的是快速的构建一个c/s系统: 二:st_asio_w ...
- 安装logstash,elasticsearch,kibana三件套(转)
logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...
- 获取ocx运行路径的另一种方法
在InitInstance里边可以获取 1 2 3 4 5 6 7 8 9 10 11 12 if (bInit) { // TODO: 在此添加您自己的模块初始化 ...
- zip非暴力破解
大家最熟悉的zip破解方式应该是暴力破解,暴力破解有很大局限性,如果密码很长很复杂你很可能一辈子都破解不出来.由于今天要破解自己以前加密过的zip文件,我设的密码习惯性长而复杂,果断放弃暴力破解,在网 ...
- VK Cup 2012 Qualification Round 1---C. Cd and pwd commands
Cd and pwd commands time limit per test 3 seconds memory limit per test 256 megabytes input standard ...