GY89的使用
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的使用的更多相关文章
- 使用GY89的BMP180模块获取温度和压强(海拔)
最近要用一下GY89,GY89有三个模块,温度压强.加速度计.陀螺仪.通过不同的片选信号来选择. mbed库上都写好了,挺好的. 以下是自己的代码: #include "mbed.h&quo ...
- 使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案
转自:http://blog.csdn.net/wangfayinn/article/details/24623575 c3p0数据库连接池mysql8小时 目录(?)[-] 基本问题解决 项目环境 ...
随机推荐
- CountDownLatch闭锁
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活动直到其他活动都完 ...
- pdb 源码索引符号服务器创建过程
pdb是调试程序必不可少的东西,它保存着一个exe或dll的调试信息,对pdb进行源码索引可以快速找到软件对应该版本的代码,本文以subversion版本控制服务器进行介绍 一.需要安装的软件 win ...
- 011——VUE中使用object与array控制class
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- ARM体系结构总结
特殊功能寄存器与外设绑定,通用寄存器是与CPU绑定. ARM是RISC架构 常用ARM汇编指令只有二三十条 ARM是低功耗CPU ARM的架构非常适合单片机.嵌入式.尤其是物联网领域:而服务器等高性能 ...
- 前端之CSS续集
CSS:语法形式上由选择器+以及一条或多条声明组成:选择器查找到指定的html标签后,使用css属性设置html标签的样式: 一.css 语法形式: 二.使用步骤 1.引入css规则 2.使用cs ...
- AndroidManifest.xml activity属性设置大全
1.android:allowTaskReparenting=["true"|"false"] 是否允许activity更换从属的任务,比如从短信息任务切换到浏 ...
- eclipse新建web项目
方法/步骤 首先,你要先打开Eclipse软件,打开后在工具栏依次点击[File]>>>[New]>>>[Dynamic Web Project],这个就代 ...
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowF ...
- How to use NSRequest in Delphi XE4
//Demo How to use NSRequest..procedure TiOSWebBrowserService.DoNavigate(const URL: string);var NewUR ...
- Linux字符界面访问U盘
首先查看U盘所在位置 fdisk -l 只需查看最后分区情况,例如找到U盘的位置为:/dev/sda1(视系统而定) 创建文件夹(用于挂载U盘内容) mkdir /mnt/usb 挂载 mount / ...