Thermo 3 click carries TMP102, a digital temperature sensor IC with a tiny footprint of only 1.6mm x 1.6mm. The click is designed to run on a 3.3V power supply only. It communicates with the target MCU through mikroBUS™ I2C pins (SCL, SDA), and an additional Alert pint (INT on the default mikroBUS™ configuration).
Without requiring calibration, TMP102 is accurate within 0.5°C. Measurement range is between -25°C to 85°C. An integrated 12-bit ADC allows for measurement resolutions down to 0.0625°C.
You can set up an overtemperature alert using the ALERT pin (which sends an interrupt to the target board MCU). The sensor creates a highly linear output and therefore simple to use.
Thermo 3 click™ has an ADD onboard jumper (zero ohm resistor) for specifying the I2C address.
Because of its accuracy, Thermo 3 click is ideal for thermal-management and thermal protection applications, especially for extended measurements (in thermostats, office machines, industrial instrumentation applications).
Type | Temperature,Humidity |
Applications | Thermal-management and thermal protection applications, especially for extended measurements (in thermostats, office machines, industrial instrumentation applications) |
On-board modules | TMP102, a digital temperature sensor |
Key Features | -25°C to 85°C temperature range. Accurate within 0.5°C. Measurement resolution down to0.0625°C |
Key Benefits | Small footpring: 1.6mm x 1.6mm |
Interface | I2C,GPIO |
Input Voltage | 3.3V |
Compatibility | mikroBUS |
Click board size | S (28.6 x 25.4 mm) |
This table shows how the pinout on Thermo 3 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Code examples for Thermo 3 click, written for MikroElektronika hardware and compilers are available on Libstock.
This function reads the temperature from the sensor.
01 float Get_Temperature() { 02 char tmp_data[2]; 03 int TemperatureSum; 04 float Temperature; 05 06 tmp_data[0] = 0x00; // Address of Temperature register 07 I2C1_Start(); // Issue I2C start signal 08 I2C1_Write(TMP102_I2C_ADDR,tmp_data,1,END_MODE_RESTART); // Send byte (tmp_data[0]) 09 I2C1_Read(TMP102_I2C_ADDR,tmp_data,2,END_MODE_STOP); // Read temperature data and store it in tmp_data 10 11 TemperatureSum = ((tmp_data[0] << 8) | tmp_data[1]) >> 4; // Justify temperature values 12 13 if(TemperatureSum & (1 << 11)) // Test negative bit 14 TemperatureSum |= 0xF800; // Set bits 11 to 15 to logic 1 to get this reading into real two complement 15 16 Temperature = (float)TemperatureSum * 0.0625; // Multiply temperature value with 0.0625 (value per bit) 17 18 return Temperature; // Return temperature data 19 }
mikroBUS™ Standard specification