Recently I worked to read the temperature and pressure through a sensor BMP180:
First script
AC1=readRegister(bmp180, hex2dec('AA'));AC2=readRegister(bmp180, hex2dec('AC'));AC3=readRegister(bmp180, hex2dec('AE'));AC4=readRegister(bmp180, hex2dec('B0'));AC5=readRegister(bmp180, hex2dec('B2'));AC6=readRegister(bmp180, hex2dec('B4'));B1=readRegister(bmp180, hex2dec('B6'));B2=readRegister(bmp180, hex2dec('B8'));MB=readRegister(bmp180, hex2dec('BA'));MC=readRegister(bmp180, hex2dec('BC'));MD=readRegister(bmp180, hex2dec('BE'));
I used the variables as they appear in the sensor datasheet on page 15
Considering only the temperature:
writeRegister(bmp180, hex2dec('F4'), hex2dec('2E'))pause(0.05)MSBt=readRegister(bmp180, hex2dec('F6'));LSBt=readRegister(bmp180, hex2dec('F7'));UT=double(bitshift(int16(MSBt), 8)) + double(int16(LSBt))X1=int16(UT)-int16(AC6)*int16(AC5)/2^15;X2=int16(MC)*2^11/(int16(X1)+int16(MD));B5=X1+X2;T=(B5+8)/2^4
However this reading is not correct.
How to read correctly?
AC1 (0xAA, 0xAB) (16 bit) short ??AC2 (0xAC, 0xAD) (16 bit) short ??…write 0x2E into reg 0xF4 ??read reg 0xF6 (MSB), 0xF7 (LSB) ??…write 0x34 + (oss<<6) into reg 0xF4 ….. ??
Note: I am using an Arduino board Mega2560
Thank you in advance
Best Answer