From 9b7ded68acf1f1f6b90d17b77b9f81191713f004 Mon Sep 17 00:00:00 2001 From: shakemid Date: Tue, 26 Sep 2017 08:02:36 +0900 Subject: [PATCH] Fix formula for sht1x --- pcsensor.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pcsensor.c b/pcsensor.c index f560698..711f5be 100644 --- a/pcsensor.c +++ b/pcsensor.c @@ -307,11 +307,13 @@ void decode_answer_fm75(unsigned char *answer, float *tempd, float *calibration) // temp C internal buf = ((signed char)answer[2] << 8) + (answer[3] & 0xFF); + if (debug) fprintf(stderr, "%d\n", buf); tempd[0] = buf * (125.0 / 32000.0); tempd[0] = tempd[0] * calibration[0] + calibration[1]; // temp C external buf = ((signed char)answer[4] << 8) + (answer[5] & 0xFF); + if (debug) fprintf(stderr, "%d\n", buf); tempd[1] = buf * (125.0 / 32000.0); tempd[1] = tempd[1] * calibration[0] + calibration[1]; }; @@ -320,12 +322,14 @@ void decode_answer_sht1x(unsigned char *answer, float *tempd, float *calibration int buf; // temp C - buf = ((signed char)answer[2] << 8) + (answer[3] && 0xFF); + buf = ((signed char)answer[2] << 8) + (answer[3] & 0xFF); + if (debug) fprintf(stderr, "%d\n", buf); tempd[0] = -39.7 + 0.01 * buf; tempd[0] = tempd[0] * calibration[0] + calibration[1]; // relative humidity - buf = ((signed char)answer[4] << 8) + (answer[5] && 0xFF); + buf = ((signed char)answer[4] << 8) + (answer[5] & 0xFF); + if (debug) fprintf(stderr, "%d\n", buf); tempd[1] = -2.0468 + 0.0367 * buf - 1.5955e-6 * buf * buf; tempd[1] = ( tempd[0] - 25 ) * ( 0.01 + 0.00008 * buf ) + tempd[1]; if (tempd[1] < 0) tempd[1] = 0;