

A KWH (Kilowatt-Hour) meter is an essential device used to measure the amount of electrical energy consumed by a residence, business, or an electrically powered device over time. The measurement is typically expressed in kilowatt-hours (kWh), which represents the energy usage equivalent to one kilowatt of power consumed over one hour.








Below are the general technical specifications for a typical KWH meter. Note that specific models may vary slightly in their ratings and features.
The pin configuration for a KWH meter depends on whether it is single-phase or three-phase. Below is a typical pinout for a single-phase KWH meter:
| Pin Number | Label | Description |
|---|---|---|
| 1 | L (Line) | Live input from the power source. |
| 2 | N (Neutral) | Neutral input from the power source. |
| 3 | L (Load) | Live output to the load (appliances). |
| 4 | N (Load) | Neutral output to the load (appliances). |
For a three-phase KWH meter, the pinout may look like this:
| Pin Number | Label | Description |
|---|---|---|
| 1 | L1 | Phase 1 input from the power source. |
| 2 | L2 | Phase 2 input from the power source. |
| 3 | L3 | Phase 3 input from the power source. |
| 4 | N | Neutral input from the power source. |
| 5 | L1 (Load) | Phase 1 output to the load. |
| 6 | L2 (Load) | Phase 2 output to the load. |
| 7 | L3 (Load) | Phase 3 output to the load. |
| 8 | N (Load) | Neutral output to the load. |
If the KWH meter supports communication via RS485, you can interface it with an Arduino UNO to read energy data. Below is an example code snippet:
#include <ModbusMaster.h> // Include the Modbus library
ModbusMaster node; // Create a ModbusMaster object
void setup() {
Serial.begin(9600); // Initialize serial communication
node.begin(1, Serial); // Set Modbus slave ID to 1 and use Serial for communication
}
void loop() {
uint8_t result;
uint16_t data[2];
// Read energy consumption (e.g., register 0x0000 for kWh)
result = node.readInputRegisters(0x0000, 2);
if (result == node.ku8MBSuccess) {
// Combine two 16-bit registers into a 32-bit value
uint32_t energy = (node.getResponseBuffer(0) << 16) | node.getResponseBuffer(1);
Serial.print("Energy Consumption (kWh): ");
Serial.println(energy / 100.0); // Assuming the value is scaled by 100
} else {
Serial.println("Failed to read from KWH meter");
}
delay(1000); // Wait 1 second before the next read
}
Note: Ensure you use an RS485-to-TTL converter module to connect the KWH meter to the Arduino UNO.
No Display or Power:
Inaccurate Readings:
Communication Failure (RS485):
Meter Not Responding to Commands:
By following this documentation, you can effectively use and troubleshoot a KWH meter in various applications.