Checking 6-axis sensor of accelerometer(z-axis)

Dependencies:   mbed

Committer:
umezawa
Date:
Tue Dec 29 05:29:52 2020 +0000
Revision:
0:441039f94b75
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
umezawa 0:441039f94b75 1 #include "mbed.h"
umezawa 0:441039f94b75 2 Serial pc(USBTX, USBRX);
umezawa 0:441039f94b75 3 I2C i2c(PB_7,PB_6);
umezawa 0:441039f94b75 4 DigitalOut conv(A3);
umezawa 0:441039f94b75 5
umezawa 0:441039f94b75 6 const int addr_accel_gyro = 0xD0;
umezawa 0:441039f94b75 7 char cmd[2];
umezawa 0:441039f94b75 8 char data[1];
umezawa 0:441039f94b75 9 char xh[1];
umezawa 0:441039f94b75 10 char xl[1];
umezawa 0:441039f94b75 11
umezawa 0:441039f94b75 12 int main()
umezawa 0:441039f94b75 13 {
umezawa 0:441039f94b75 14 conv = 1;
umezawa 0:441039f94b75 15 i2c.frequency(100000);
umezawa 0:441039f94b75 16 cmd[0]=0x6B;
umezawa 0:441039f94b75 17 cmd[1]=0x00;
umezawa 0:441039f94b75 18 i2c.write(addr_accel_gyro,cmd,2);
umezawa 0:441039f94b75 19 cmd[0] = 0x37;
umezawa 0:441039f94b75 20 cmd[1] = 0x02;
umezawa 0:441039f94b75 21 i2c.write(addr_accel_gyro,cmd,2);
umezawa 0:441039f94b75 22 while(1) {
umezawa 0:441039f94b75 23 data[0] = 0x3F;
umezawa 0:441039f94b75 24 i2c.write(addr_accel_gyro,data,1);
umezawa 0:441039f94b75 25 i2c.read(addr_accel_gyro|0x01,xh,1);
umezawa 0:441039f94b75 26 data[0] = 0x40;
umezawa 0:441039f94b75 27 i2c.write(addr_accel_gyro,data,1);
umezawa 0:441039f94b75 28 i2c.read(addr_accel_gyro|0x01,xl,1);
umezawa 0:441039f94b75 29 //pc.printf("xh = 0x%02X,xl = 0x%02X\r\n",xh[0],xl[0]);
umezawa 0:441039f94b75 30 double acc_ax = short((xh[0]<<8) | (xl[0]));
umezawa 0:441039f94b75 31 double AX = (acc_ax)*2/32764*9.81;
umezawa 0:441039f94b75 32 pc.printf("AZ = %f\r\n",AX);
umezawa 0:441039f94b75 33 wait(0.5);
umezawa 0:441039f94b75 34 }
umezawa 0:441039f94b75 35 }