

The HW-025, manufactured by 宏维微 (part ID: LM75A), is a versatile electronic component widely used in signal processing and control applications. Its compact design makes it ideal for integration into small devices, while its reliability and efficiency ensure consistent performance. The HW-025 is particularly popular in temperature sensing and monitoring systems due to its precision and ease of use.








The HW-025 (LM75A) is a digital temperature sensor with an I²C interface. Below are its key technical details:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 2.7V to 5.5V |
| Temperature Range | -55°C to +125°C |
| Accuracy | ±2°C (typical) |
| Communication Protocol | I²C (2-wire) |
| Resolution | 9-bit (0.125°C per step) |
| Operating Current | 300 µA (typical) |
| Shutdown Current | 1 µA (typical) |
| Package Type | SOP-8 |
The HW-025 module has 8 pins, as described in the table below:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | SDA | Serial Data Line for I²C communication |
| 2 | SCL | Serial Clock Line for I²C communication |
| 3 | OS | Over-Temperature Shutdown output (open-drain) |
| 4 | GND | Ground |
| 5 | A2 | Address bit 2 for I²C slave address selection |
| 6 | A1 | Address bit 1 for I²C slave address selection |
| 7 | A0 | Address bit 0 for I²C slave address selection |
| 8 | Vcc | Power supply (2.7V to 5.5V) |
The HW-025 is straightforward to use in a circuit, especially with microcontrollers like the Arduino UNO. Below are the steps and considerations for using the component:
Below is an example of how to interface the HW-025 with an Arduino UNO to read temperature data:
#include <Wire.h>
// Define the I²C address of the HW-025 (default: 0x48)
#define HW025_ADDRESS 0x48
void setup() {
Wire.begin(); // Initialize I²C communication
Serial.begin(9600); // Start serial communication for debugging
}
void loop() {
int16_t rawTemp; // Variable to store raw temperature data
float temperature; // Variable to store calculated temperature
// Request 2 bytes of temperature data from the HW-025
Wire.beginTransmission(HW025_ADDRESS);
Wire.write(0x00); // Point to the temperature register
Wire.endTransmission();
Wire.requestFrom(HW025_ADDRESS, 2);
if (Wire.available() == 2) {
// Read the two bytes of temperature data
rawTemp = (Wire.read() << 8) | Wire.read();
rawTemp >>= 7; // Right-shift to remove unused bits
temperature = rawTemp * 0.125; // Convert to Celsius
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
}
delay(1000); // Wait 1 second before the next reading
}
No Temperature Reading:
Inaccurate Temperature:
I²C Communication Failure:
Q1: Can the HW-025 operate at 3.3V?
A1: Yes, the HW-025 supports a supply voltage range of 2.7V to 5.5V.
Q2: How do I change the I²C address?
A2: Configure the A0, A1, and A2 pins by connecting them to Vcc or GND. Refer to the datasheet for address mapping.
Q3: What is the resolution of the temperature readings?
A3: The HW-025 provides a 9-bit resolution, with each step representing 0.125°C.
Q4: Can I use the OS pin for interrupt-based temperature monitoring?
A4: Yes, the OS pin can be configured as an interrupt output for over-temperature events.