

The TP4056 + DW01 is a lithium-ion battery charging and protection module manufactured by Makers. It combines the TP4056 linear battery charger IC with the DW01 battery protection IC, providing a compact and efficient solution for charging and safeguarding single-cell lithium-ion or lithium-polymer batteries. The module is widely used in portable electronics, DIY projects, and battery-powered devices due to its simplicity, reliability, and integrated safety features.








| Parameter | Value |
|---|---|
| Input Voltage Range | 4.5V to 5.5V |
| Charging Voltage | 4.2V ± 1% |
| Maximum Charging Current | 1A (adjustable via external resistor) |
| Battery Overcharge Protection | 4.3V ± 0.05V |
| Battery Overdischarge Protection | 2.4V ± 0.1V |
| Overcurrent Protection | 3A (typical) |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | ~25mm x 19mm |
| Pin Name | Description |
|---|---|
| IN+ | Positive input terminal for the charging voltage (4.5V to 5.5V). |
| IN- | Negative input terminal (ground) for the charging voltage. |
| BAT+ | Positive terminal for the lithium-ion battery connection. |
| BAT- | Negative terminal for the lithium-ion battery connection. |
| OUT+ | Positive output terminal for the load connected to the battery. |
| OUT- | Negative output terminal for the load connected to the battery. |
IN+ and IN- pins. Ensure the input voltage is within the 4.5V to 5.5V range.BAT+ pin and the negative terminal to the BAT- pin.OUT+ and OUT- pins.PROG pin of the TP4056 IC. For example:The TP4056 + DW01 module can be used to power an Arduino UNO from a lithium-ion battery. Below is an example of how to monitor the battery voltage using the Arduino's analog input.
OUT+ pin of the TP4056 module to the Arduino's VIN pin.OUT- pin of the TP4056 module to the Arduino's GND pin.// Define the analog pin connected to the voltage divider
const int batteryPin = A0;
// Define the voltage divider ratio (e.g., R1 = 10kΩ, R2 = 10kΩ)
const float voltageDividerRatio = 2.0;
// Reference voltage of the Arduino (5V for most boards)
const float referenceVoltage = 5.0;
void setup() {
Serial.begin(9600); // Initialize serial communication
}
void loop() {
int analogValue = analogRead(batteryPin); // Read the analog pin
float batteryVoltage = (analogValue / 1023.0) * referenceVoltage * voltageDividerRatio;
// Print the battery voltage to the Serial Monitor
Serial.print("Battery Voltage: ");
Serial.print(batteryVoltage);
Serial.println(" V");
delay(1000); // Wait for 1 second before the next reading
}
Module Overheating:
PROG pin or improve ventilation.Battery Not Charging:
No Output Voltage:
LEDs Not Working:
Q: Can I use the TP4056 + DW01 module to charge multiple batteries in series?
A: No, the module is designed for single-cell lithium-ion or lithium-polymer batteries only.
Q: How do I adjust the charging current?
A: Change the resistor connected to the PROG pin of the TP4056 IC. Refer to the datasheet for resistor values corresponding to different charging currents.
Q: Is it safe to leave the battery connected to the module after charging?
A: Yes, the DW01 protection IC prevents overcharging and overdischarging, ensuring battery safety.
Q: Can I power a load while charging the battery?
A: Yes, the module supports simultaneous charging and discharging, but ensure the load current does not exceed the module's limits.