-
Notifications
You must be signed in to change notification settings - Fork 0
Thermal sensors
Most of these modules will contain a temperature sensor, and a way to connect more temperature sensors to the bus. To avoid confusion with "color temperature", I try to use the word "thermal" as much as possible whenever it's about the actual amount of heat in some physical device.
The more obvious reason: in many LED designs, thermal is the limiting factor in how bright you can turn the light, or how long the lifespan of the device will be.
The less obvious reason for a themal sensor: I started out with DS18B20 sensors by Analog Devices (originally from Dallas), which just need one pin for a bus with any number of sensors, and also have a globally unique ID that I could use to identify the board on which the sensor is placed.
Later, it turned out that with those sensors:
- original ones are sometimes hard to get and/or rather expensive
- fake ones do work, but are very, very, very inaccurate (I have one that is about 6 degrees (Celsius) off)
I found an alternative: the TMP1075 from Texas Instruments. It's cheaper, and uses I2C instead of the Dallas one-wire bus. In theory, that's one more pin that I need, but if I already have other devices on an I2C bus, it's actually one pin less. But it does not have a unique ID. That's ok, even if I add another chip (2K Eeprom with unique ID), it's still less expensive and I also get 2K of writable memory. Win-win.
I'm still not sure about that alternative, because of the limited I2C-addresses (but the TMP1075 offers a stunning choice of 32 addresses).
I could not find a Rust driver that explicitly supports the TMP1075, but lm75-rs
is compatible with various xx75
devices, and the TMP1075 also claims to be pin- and software compatible with that.
There are a lot of other I2C thermal sensors (see list), but I don't know which ones of those I could use without adding dozens of drivers.