2025-11-08 05:34:44
DS18B20是数字温度计专用芯片,接在电烙铁上插到杜邦线就能用。它测温度不用电线连太多,只要一根线就能传数据。测出来的温度从零下55度到125度都能算准,精度有0.5度。接线时得把红线接3.3或5伏电源,黑线接地,黄线拿数据。用Arduino的话,先让板子发"寄生电源"给它供电,再发几个指令让它报数,把收到的16位数据除以10就能得到真实温度。
为什么得这样操作呢?因为DS18B20是单总线协议,所有设备共用一条数据线,所以得先发"启动信号"唤醒它。芯片内部有64位编码,确保每根线连多个温度计也不会乱。它的温度分辨率是9位,能测到0.5度,比如实测28.5度和28.0度都能区分开。数据格式是1字节的起始码+2字节温度码+1字节CRC校验,比如测到25度会发0x00 0x19 0x4E,那个校验码是前三个字节的异或结果。接反电源会烧坏,所以红线一定接正极。用Arduino的库函数的话,直接调用oneWire.begin和ds18b20readtemp就行,不用自己写协议。
本题链接: