センサにLSM303DLHCという2つの温度レジスタがありますが、摂氏温度に変換する方法はわかりません。 2レッグは次のとおりです。温度データをセンサから摂氏に変換する
TEMP_OUT_H_M register // high reg
TEMP11 | TEMP10 | | TEMP9 | TEMP8 | | TEMP7 | TEMP6 | TEMP5 | TEMP4
TEMP_OUT_L_M register //low reg
TEMP3 | TEMP2 | TEMP1 | TEMP0 | 0 | 0 | 0 |データシートには0
言う: "TEMP [11:0]温度データ(8 LSB /度 - 12ビット分解能)" 私の現在のコードは
uint8_t hig_reg = read(TEMP_OUT_H_M) // value = 0x03
uint8_t low_reg = read(TEMP_OUT_L_M) // value = 0x40
int16_t temp = ((uint16_t)hig_reg << 8) | (uint16_t)low_reg; // temp = 0x0340 = 832
float mTemp = temp/256; // = 3.25
mTemp = mTemp +20 ; // =23.25 (°C) i add 20 more
ある しかし、私は理解していません20℃のオフセットはどこから来ますか?データシートには決して言及されていません。
はデータシートです: http://www.st.com/content/ccc/resource/technical/document/datasheet/56/ec/ac/de/28/21/4d/48/DM00027543.pdf/ファイル/ DM00027543.pdf/jcr:content/translations/en.DM00027543.pdf – dante
詳細な実装の詳細 - データシートには、値が[2の補足事項]で報告されていると記載されています(https://en.wikipedia.org/wiki/ 2の補数)、最上位ビットは、それが負(1)か正(0)かを示します。 –
参照:http://electronics.stackexchange.com/questions/219032/how-to-determine-temperature-with-lsm303dlhc –