私はadafruitセンサー(sht31d)からデータを取得するライブラリを構築しています。センサーが故障しています。 ArduinoのWireライブラリを置き換える際の問題
温度の読みは正確ですが、湿度は変わりません。
私のデバッグ:
temp: 23.36 humid: 0.39
次のような方法がmain.cの
(sht31.cから法)に呼び出されます。おかげで
bool readTempHum(void)
{
uint8_t readbuffer[6];
writeCommand(SHT31_MEAS_HIGHREP);
_delay_ms(500);
for (uint8_t i=0; i<6; i++)
{
readbuffer[i] = read8(SHT31_DEFAULT_ADDR);
}
uint16_t ST, SRH;
ST = readbuffer[0];
ST <<= 8;
ST |= readbuffer[1];
SRH = readbuffer[3];
SRH <<= 8;
SRH |= readbuffer[4];
double stemp = ST;
stemp *= 175;
stemp /= 0xffff;
stemp = -45 + stemp;
temp = stemp;
double shum = SRH;
shum *= 100;
shum /= 0xFFFF;
humidity = shum;
return true;
}
To view the full implementation please click here
"正しいと一致する_ _"、予想される出力は何ですか? – Linus
'sht31'のピン2は' VSS'に接続されていますか? – LPs
@Linus時間の経過とともに変化しています。私がセンサーを暖かくするために指に置くと、値に変わるのではなく値が突然変化します。これはセンサーに関する私の経験からは珍しいことです。 – SensationSama