粗心大意
想在我的自动浇花系统上增加一个温度显示功能,就是读取室温然后显示在屏幕上。
然后手头有一堆各种温度传感器。
- 最常用的LM35
- 能同时测量温湿度的DHT11
- 用的比较广的ds18b20
这些用起来都很方便。
但是发现我的Grove Starter Kit Plus 里有一个温度传感器,套件里的东西都是模块化的,带连线,支持插到对应的口上就可以啦,那么就用它啦。
然后用我不带眼镜的近视眼看了一下模块上的芯片,没太看清楚具体细节,但是看到了LM35几个字。
那么就是小case啦, LM35咱用过无数次啦,so easy
然后编码,编译,运行
什么鬼,怎么出来的是250摄氏度,这是室温!!如果硬件没错、程序没错,现在我已经熟了!!
哪里出错了呢,LM35用起来没啥难度啊。
传感器的输出电压与摄氏温度呈线性关系,0℃时输出为0V,每升高1℃,输出电压增加10mv。
因此根据A/D转换读回来的电压,可以轻易计算出环境温度啊?
这么简单的事情,怎么会错??
LM358不是LM35
于是各种查错,最后实在没办法了,看看套件自带的示例程序吧。
怎么这么复杂,还有那个B-value是什么鬼?还有我什么时候用热敏电阻(thermistor)啦?我就用个LM35啊!
等等,让我仔细看看模块。
眼神不行,于是想了个办法,用手机拍照,然后放大看,什么居然是LM358,不是LM35!
这根本不是一个东西呀
LM35是温度传感器
LM358是双运算放大器
模块上还有个米粒大的东西,旁边丝印写着NTC。
原来是用的NTC热敏电阻+LM358做的温度传感器。
所谓的B值:
原来我用的是李鬼,不是李逵。
好吧,既然知道是啥,也好用,就不纠结了,直接把代码集成到我的浇花系统里了。
教训
通过这个事情,我觉得自己不能做差不多先生了。还好这次只是把NTC+LM358当成了LM35,没有酿成大祸。如果是接差其它原件,轻则烧坏板卡(Intel Edison这一套1500多元啊),重则酿成火灾或者导致我受伤就惨了,我可以不想做诺贝尔啊
This page is synchronized from the post: LM358不是LM35