GY89集成了三块不同的芯片,分别为:BMP180、L3GD20和LSM303DLH,作用分别是获取温度压强、三轴陀螺仪和加速度计的数据。以下通过把各个模块的数据输出到终端来测试GY89的功能。

#include "mbed.h"
#include "BMP180.h"//温度压强
#include "L3GD20.h"//三轴陀螺仪
#include "LSM303DLH.h"//加速度计
#include "vector.h"//加速度计的向量类 包含xyz //片选信号的引脚 默认使用BMP180 片选信号为10时使用L3GD20 片选信号为01时使用LSM303D
DigitalOut cs1(PC_2);
DigitalOut cs2(PC_3); int main()
{ /****************使用BMP180获取温度和压强***************************/ BMP180 bmp180(PB_9, PB_8);//实例化bmp180 float pressure, temperature;//用这两个变量存储获取到的压强和温度 bmp180.Initialize(64, BMP180_OSS_ULTRA_LOW_POWER);//初始化 while(1)
{
//bmp180获取数据
if (bmp180.ReadData(&temperature, &pressure)){
//将获得的数据输出到终端
printf("温度: %f\n",temperature);
printf("压强: %f\n",pressure);
}
wait(1);
}
/*****************使用BMP180获取温度和压强***************************/ /**************使用L3GD20获取三轴陀螺仪的数据数据*********************/ //设置片选信号
cs1 = 1;
cs2 = 0; L3GD20 gyro(PB_9, PB_8);//实例化LSGD20 float gx,gy,gz;//用这三个变量存储xyz轴的数据 while(1){ //L3GD20获取数据
if(gyro.read(&gx,&gy,&gz)){ //将获得的数据输出到终端
printf("X: %f\n",gx);
printf("Y: %f\n",gy);
printf("Z: %f\n",gz); }//end id wait(0.1); }//end while
/**************使用L3GD20获取三轴陀螺仪的数据数据*********************/ /**************使用LSM303D获取加速度计和磁力计的数据*********************/ //设置片选信号
cs1 = 0;
cs2 = 1; //向量类,里面包含xyz三个变量,用于存储加速度计和磁力计的xyz数据
vector a;
vector m; LSM303DLH compass(PB_9, PB_8); float hdg; //初始化操作
compass.setOffset(29.50, -0.50, 4.00);
compass.setScale(1.00, 1.03, 1.21); while(1) { //获取数据
compass.read(a,m); //将获得的数据输出到终端
printf("加速度计:X=%f/Y=%f/Z=%f\n",a.x,a.y,a.z);
//printf("磁力计:X=%f/Y=%f/Z=%f\n",m.x,m.y,m.z); wait(0.1);
} /**************使用LSM303D获取加速度计和磁力计的数据*********************/ }

  

室外温度:

电脑旁温度:

三轴陀螺仪:

加速度计:

GY89的使用的更多相关文章

  1. 使用GY89的BMP180模块获取温度和压强(海拔)

    最近要用一下GY89,GY89有三个模块,温度压强.加速度计.陀螺仪.通过不同的片选信号来选择. mbed库上都写好了,挺好的. 以下是自己的代码: #include "mbed.h&quo ...

  2. 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

    转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...

随机推荐

  1. jQuery——操作复选框(checkbox) attr checked不起作用

    这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 attr(‘checked’,'checked’);与attr(‘checked’,true); 都不好使,要么第一次成 ...

  2. 【第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛-L】用来作弊的药水

    链接:https://www.nowcoder.com/acm/contest/90/L来源:牛客网 输入x,a,y,b,(1<=x,a,y,b<=10^9)判断x^a是否等于y^b 前面 ...

  3. 第1章 Flex介绍

    * Flex Flex 是一个高效.免费的开源框架,可用于构建具有表现力的 Web应用程序,这些应用程序利用Adobe Flash Player和Adobe AIR, 可以实现跨浏览器.桌面和操作系统 ...

  4. linux下 /boot 分区空间不足及其衍生问题

    linux的/boot引导分区有时会提示空间不足的问题,虽不影响系统的正常运行,但是人类天生对于未知的恐惧感总是影响心情的.而且在按安装其他软件的过程在中可能会出现以下问题: gzip: stdout ...

  5. 【JD的一人戏】之"小羊踢足球"第一篇

    好多次加班后坐的士回家,副驾驶座位后内嵌的显示屏正好在播放一个美食节目,内容就是一个着装怪异的厨子把各种食材分门别类地摆在你面前,然后用小小的锅碗瓢盆慢慢的做出很精致的够一个人吃的分量的各种美食,做好 ...

  6. 深入理解java虚拟机-第二章

    第2章 Java内存区域与内存溢出异常 运行数据区域 1.程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器. 2.J ...

  7. 【spring源码学习】spring的事件发布监听机制源码解析

    [一]相关源代码类 (1)spring的事件发布监听机制的核心管理类:org.springframework.context.event.SimpleApplicationEventMulticast ...

  8. C#网络编程(接收文件) - Part.5

    这篇文章将完成 Part.4 中剩余的部分,它们本来是一篇完整的文章,但是因为上一篇比较长,合并起来页数太多,浏览起来可能会比较不方便,我就将它拆为两篇了,本文便是它的后半部分.我们继续进行上一篇没有 ...

  9. vba传递参数类型错误

    先来看看微软官方的说明: 目录内容 概要 解决方案 详细信息 重现问题的步骤 &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; ...

  10. Linux环境下安装jenkins

    废话不多说,直接开始 1.从官网下载Jenkins的war包 2.下载好的War放到Tomcat的网站根目录webapps下,然后启动Tomcat. 3.打开浏览器,输入http://IP:8080/ ...