

The ADL200 Single Phase AC Energy Meter, manufactured by Acrel, is a compact and reliable device designed to measure energy consumption in single-phase AC electrical circuits. It provides accurate readings in kilowatt-hours (kWh), making it ideal for energy monitoring, billing, and efficiency analysis. The ADL200 is widely used in residential, commercial, and industrial applications where precise energy measurement is essential.








| Parameter | Value |
|---|---|
| Manufacturer | Acrel |
| Part ID | ADL200 |
| Measurement Type | Single-phase AC energy |
| Voltage Range | 220V AC ±20% |
| Current Range | 0.25A to 100A (depending on model) |
| Frequency | 50Hz / 60Hz |
| Accuracy Class | Class 1 (±1% accuracy) |
| Display Type | LCD |
| Communication Interface | RS485 (Modbus-RTU protocol) |
| Power Consumption | ≤2W / ≤10VA |
| Operating Temperature | -25°C to +55°C |
| Storage Temperature | -40°C to +70°C |
| Dimensions | 72mm x 88mm x 65mm |
| Mounting Type | DIN rail |
The ADL200 features terminal connections for power input, load, and communication. Below is the pin configuration:
| Terminal No. | Description |
|---|---|
| 1 | Line (L) Input |
| 2 | Neutral (N) Input |
| 3 | Line (L) Output to Load |
| 4 | Neutral (N) Output to Load |
| Terminal No. | Description |
|---|---|
| 5 | RS485-A (Data+) |
| 6 | RS485-B (Data-) |
The ADL200 can be connected to an Arduino UNO via an RS485 module to read energy data. Below is an example code snippet:
#include <ModbusMaster.h>
// Instantiate ModbusMaster object
ModbusMaster node;
// RS485 communication pins
#define RE_PIN 2 // Receiver Enable pin
#define DE_PIN 3 // Driver Enable pin
void preTransmission() {
digitalWrite(RE_PIN, HIGH); // Enable RS485 transmitter
digitalWrite(DE_PIN, HIGH);
}
void postTransmission() {
digitalWrite(RE_PIN, LOW); // Disable RS485 transmitter
digitalWrite(DE_PIN, LOW);
}
void setup() {
// Initialize serial communication
Serial.begin(9600);
Serial.println("ADL200 Energy Meter Reading");
// Initialize RS485 communication
pinMode(RE_PIN, OUTPUT);
pinMode(DE_PIN, OUTPUT);
digitalWrite(RE_PIN, LOW);
digitalWrite(DE_PIN, LOW);
// Configure Modbus communication
node.begin(1, Serial); // Set Modbus ID to 1
node.preTransmission(preTransmission);
node.postTransmission(postTransmission);
}
void loop() {
uint8_t result;
uint16_t data[2];
// Read energy data (e.g., total kWh from register 0x0000)
result = node.readInputRegisters(0x0000, 2);
if (result == node.ku8MBSuccess) {
data[0] = node.getResponseBuffer(0); // High byte
data[1] = node.getResponseBuffer(1); // Low byte
float energy = (data[0] << 16 | data[1]) / 100.0; // Convert to kWh
Serial.print("Energy Consumption: ");
Serial.print(energy);
Serial.println(" kWh");
} else {
Serial.println("Failed to read data from ADL200");
}
delay(1000); // Wait 1 second before next reading
}
No Display on LCD:
Incorrect Energy Readings:
RS485 Communication Failure:
Device Overheating:
Can the ADL200 measure reactive power?
What is the maximum cable length for RS485 communication?
Is the ADL200 compatible with solar energy systems?
How do I reset the energy readings?
By following this documentation, users can effectively integrate and operate the ADL200 Single Phase AC Energy Meter in their applications.