GY89的使用

GY89集成了三块不同的芯片,分别为:BMP180L3GD20LSM303DLH,作用分别是获取温度压强、三轴陀螺仪和加速度计的数据。以下通过把各个模块的数据输出到终端来测试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
",temperature); 
            printf("压强: %f
",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
",gx); 
            printf("Y: %f
",gy);  
            printf("Z: %f
",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
",a.x,a.y,a.z);
        //printf("磁力计:X=%f/Y=%f/Z=%f
",m.x,m.y,m.z);
        
     wait(0.1);
  }
    
/**************使用LSM303D获取加速度计和磁力计的数据*********************/     
    
    
}

  

室外温度:

电脑旁温度:

三轴陀螺仪:

加速度计:

原文地址:https://www.cnblogs.com/wzben/p/5107912.html