I2C通信を使用した角速度測定、LCD表示サンプル

Dependencies:   mbed mbed_mpu6050_i2c_raw_register AQM0802

main.cpp

Committer:
satoshi1204
Date:
2018-12-13
Revision:
2:f2db52a742b0
Parent:
1:6f743fe9a027
Child:
3:ebd656a9c89f

File content as of revision 2:f2db52a742b0:

#include "mbed.h"
#include "mpu6050.h"

Serial pc(USBTX, USBRX);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
MPU6050 mpu(p9, p10);

void allTurnOffLed()
{
    led1 = 0;
    led2 = 0;
    led3 = 0;
    led4 = 0;
}

void readData()
{
    double ax, ay, az;
    mpu.readAccelemeter(ax, ay, az);
    double gx, gy, gz;
    mpu.readGyroscope(gx, gy, gz);
    pc.printf("%.4lf %.4lf %.4lf %.4lf %.4lf %.4lf\r\n", ax, ay, az, gx, gy, gz);
    allTurnOffLed();
    if(ax > ay && ax > az) {
        led1 = 1;
    } else if(ay > ax && ay > az) {
        led2 = 1;
    } else if(az > ax && az > ay) {
        led3 = 1;
    } else {
        led4 = 1;
    }
}

int main() {
    mpu.setMaxScale(MAX_ACC_8G, MAX_GYRO_1000degpersec);
    while(1) {
        readData();
        wait(0.2);
    }
}