lm92数据错误
时间:10-02
整理:3721RD
点击:
我使用树莓派+lm92做温度检测,室温在25度左右,但是通过lm92得到的数据为29度
读取数据的主要代码:
#define I2C_ADDR 0x48 #include <linux/i2c-dev.h> static const char *device = "/dev/i2c-1"; uint8_t buffer[2]; fd = open(device, O_RDWR); ioctl(fd, I2C_SLAVE,I2C_ADDR); read(fd,buffer,2); data = buffer[0]; data = data << 8; data = data | buffer[1]; data = data >> 3; temperature = LM92_RES * data;
接线为lm92 3/5脚悬空,6脚接地,7脚上拉
电源为3.3v
可以检查一下两点:
1. 你的室温时25,但是lm92周围是否有其他热源将lm92加热了?比如说大功率的dcdc电源等‘
2. 用示波器看一下,你的lm92输出是否跟你读到的数据是一样的!
总体来看硬件、计算过程是没问题的!
你可以多测量几个点,然后连成直线,看看最终的误差是怎样的一个分布。