You can write a simple Arduino sketch that takes multiple ADC samples over one full AC cycle, calculates the RMS voltage, and prints it to the virtual terminal. A more advanced approach is to use an existing Arduino library for the ZMPT101B.
[ ALTERNATOR ] (220V AC) │ ┌──────┴──────┐ │ ZMPT101B │ ─── [ VCC ] (+5V) │ MODULE │ ─── [ GND ] (0V) └──────┬──────┘ │ (OUT) ▼ [ ARDUINO A0 ] ─── [ VIRTUAL TERMINAL ] Component Selection
The ZMPT101B Proteus Library Guide."
The ZMPT101B is a popular, high‑precision AC voltage sensor module that allows microcontroller boards like Arduino, ESP32, and others to measure mains voltages (110 V – 250 V AC) safely. The module is built around a precision voltage transformer that provides galvanic isolation, an operational amplifier stage, and a built‑in trimmer potentiometer for calibration.
Used to adjust the output gain/amplification Step-by-Step: Installing the ZMPT101B Proteus Library zmpt101b proteus library
Connect the pin of the ZMPT101B to the circuit Ground terminal.
Ultimately, the lack of a ZMPT101B library is not a fatal flaw of Proteus, but a reminder that power electronics simulation requires careful modeling, not drag-and-drop components. The best “library” is the engineer’s understanding of the underlying circuit — which this essay has attempted to provide. You can write a simple Arduino sketch that
#define SENSOR_PIN A0 float vRMS = 0; float vPeak = 0; float adcVoltage = 0; void setup() Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); void loop() int maxValue = 0; int readValue = 0; unsigned long startTime = millis(); // Sample the signal for 20ms (one full 50Hz cycle) while((millis() - startTime) < 20) readValue = analogRead(SENSOR_PIN); if (readValue > maxValue) maxValue = readValue; // Convert the peak ADC value back to voltage based on calibration // The value 512 represents the 2.5V DC offset zero-point int peakOffset = maxValue - 512; if (peakOffset < 0) peakOffset = 0; // Calibration factor changes depending on module trim pot setting // Adjust 0.707 based on your specific Proteus library model characteristics vPeak = (peakOffset * 5.0) / 1024.0; vRMS = (vPeak / sqrt(2)) * 100.0; // Scaled multiplier to map to 220V Serial.print("Peak ADC Value: "); Serial.print(maxValue); Serial.print(" Use code with caution. Running the Simulation
across input pins to adjust sensitivity or a calibration factor in your code. Programming the Sensor (Arduino) Arduino library for ZMPT101B voltage sensor. - GitHub The module is built around a precision voltage
While not for Proteus directly, the Arduino code you will simulate requires calibration.