This is a simple Arduino library for interfacing to TI's LM95235 ±0.75°C remote & local temperature sensor. The remote temperature sensor is useful for accurately providing cold junction compensation for a thermocouple measurement.
https://github.com/OneGneissGuy/LM95235
-
Description: Constructor for the LM95235 device.
-
Parameters: 7-bit I2C address
-
Returns: None
-
Example:
#define LM95235_addr 0x18 //A0 tied to ground LM95235 lmtemp = LM95235(LM95235_addr);
- Description: Wraps
Wire.begin()
. - Parameters: None
- Returns: None
- Example:
lmtemp.begin();
- Description: Initializes anything ... it does a reset.
- Parameters: None
- Returns: None
- Example:
lmtemp.configure();
- Description: Read the temperature of the remote device.
- Parameters: None
- Returns:
float
temperature in celcius with resolution determined by filterCFG2_REMOTE_FILTER_EN/CFG2_REMOTE_FILTER_DIS
status (On/EN=0.03125 C, off/DIS = 0.125 C) - Example:
float remote_temperature = lmtemp.get_remote_temperature()
You can find examples in the examples folder of this library.
0.1 initial commit
Just zip up all the contents a .zip or download this repository as a .zip from GitHub.
In Arduino IDE menu, go to Sketch -> Include Libray -> Add ZIP Library
.
After including it, you can add the include headers to your current
sketch with Sketch -> Include Library -> LM95235
.
You can open the example from the Arduino IDE by going to the menu
File -> Examples -> LM95235 -> readRemoteTemperature
.
The LM95235 is an 11-bit digital temperature sensor with a 2-wire SMBus/I2C interface and TruTherm technology that can monitor the temperature of a remote diode as well as its own temperature.The LM95235 can be used to very accurately monitor the temperature of external devices or a diode-connected MMBT3904 transistor.
More info is available on the products website and the datasheet.
Register assignment | Register Address | Description | Register name |
---|---|---|---|
LM95235_REG_RW_CONFIG1 | 0x03 | Configuration Register 1 | |
LM95235_REG_RW_CONVERS_RATE | 0x04 | Conversion Rate | |
LM95235_REG_W_ONE_SHOT | 0x0F | One-Shot | |
LM95235_REG_RW_CONFIG2 | 0xBF | Configuration Register 2 | |
LM95235_REG_RW_REMOTE_OFFH | 0x11 | Remote Offset High Byte | |
LM95235_REG_RW_REMOTE_OFFL | 0x12 | Remote Offset Low Byte | |
LM95235_REG_R_STATUS1 | 0x02 | Status Register 1 | |
LM95235_REG_R_STATUS2 | 0x33 | Status Register 2 | |
LM95235_REG_RW_REMOTE_OS_LIMIT | 0x07 | Remote OS Limit | |
LM95235_REG_RW_LOCAL_OS_TCRIT_LIMIT | 0x20 | Local Shared OS and T_Crit Limit | |
LM95235_REG_RW_REMOTE_TCRIT_LIMIT | 0x19 | Remote T_Crit Limit | |
LM95235_REG_RW_COMMON_HYSTERESIS | 0x21 | Common Hysteresis | |
LM95235_REG_R_LOCAL_TEMPH_S | 0x00 | Local Temp MSB | |
LM95235_REG_R_LOCAL_TEMPL_S | 0x30 | Local Temp LSB | |
LM95235_REG_R_REMOTE_TEMPH_S | 0x01 | Remote Temp MSB – Signed | |
LM95235_REG_R_REMOTE_TEMPL_S | 0x10 | Remote Temp LSB – Signed | |
LM95235_REG_R_REMOTE_TEMPH_U | 0x31 | Remote Temp MSB – Unsigned | |
LM95235_REG_R_REMOTE_TEMPL_U | 0x32 | Remote Temp LSB – Unsigned | |
LM95235_REG_R_MAN_ID | 0xFE | Manufacturer ID | |
LM95235_REG_R_CHIP_ID | 0xFF | Revision ID |
Register assignment | Bit field Address | Description |
---|---|---|
CFG_STOP | 0x40 | |
CFG_REMOTE_TCRIT_MASK | 0x10 | |
CFG_REMOTE_OS_MASK | 0x08 | |
CFG_LOCAL_TCRIT_MASK | 0x04 | |
CFG_LOCAL_OS_MASK | 0x02 |
Register assignment | Bit field Address | Description |
---|---|---|
CFG2_OS_A0 | 0x40 | |
CFG2_DIODE_FAULT_OS | 0x20 | |
CFG2_DIODE_FAULT_TCRIT | 0x10 | |
CFG2_REMOTE_TT | 0x08 | |
CFG2_REMOTE_FILTER_DIS | 0x00 | |
CFG2_REMOTE_FILTER_EN | 0x06 |
Register assignment | Bit field Address | Description |
---|---|---|
RATE_CR0063 | 0x00 | |
RATE_CR0364 | 0x01 | |
RATE_CR1000 | 0x02 | |
RATE_CR2500 | 0x03 |
Register assignment | Bit field Address | Description | Register name |
---|---|---|---|
STATUS1_ROS | 0x10 | ||
STATUS1_DIODE_FAULT | 0x04 | ||
STATUS1_RTCRIT | 0x02 | ||
STATUS1_LOC | 0x01 |
Register assignment | Bit field Address | Description | Register name |
---|---|---|---|
MANUFACTURER_ID | 0x01 | Manufacturers ID Register | |
LM95235_REVISION | 0xB1 | Revision ID Register |
Pin Number | Pin Name | Type | Description |
---|---|---|---|
1 | VDD | Power | Device power supply. Add bypass capacitor of 10 μF, 0.1 μF and 100 pF. Place 100 pF closest to device pin. |
2 | D+ | Analog Input/Output | Positive input from the thermal diode. |
3 | D- | Analog Input/Output | Negative input from the thermal diode. |
4 | T_CRIT | Digital Output | Critical temperature output. Open-drain output requires pull-up resistor. Active low. |
5 | GND | Ground | Device ground. |
6 | OS/A0 | Digital Input/Output | Address input. Can be tied to VDD, GND, or VDD/2. |
7 | SMBDAT | Digital Input/Output | SMBus/I2C interface data pin. Open-drain output requires pull-up resistor (e.g. 4.7 kOhm). |
8 | SMBCLK | Digital Input | SMBus/I2C interface clock pin. Open-drain output requires pull-up resistor (e.g. 4.7 kOhm). |
Pin Name | Setting | I2C Address |
---|---|---|
OS/A0 | GND | 0x18 |
OS/A0 | VDD/2 | 0x29 |
OS/A0 | VDD | 0x4C |