
Checking 6-axis sensor of accelerometer(z-axis)
main.cpp@0:441039f94b75, 2020-12-29 (annotated)
- Committer:
- umezawa
- Date:
- Tue Dec 29 05:29:52 2020 +0000
- Revision:
- 0:441039f94b75
test
Who changed what in which revision?
User | Revision | Line number | New 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 | } |