Zmpt101b Voltage Sensor: Library For Proteus Patched
lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,1); lcd.print(voltageRMS); lcd.print(" V AC");
void loop() // Sample multiple times to find peak float maxV = 0; for(int i=0; i<200; i++) readValue = analogRead(A0); // 0-1023 float voltage = (readValue / 1023.0) * 5.0; // Convert to 0-5V if(voltage > maxV) maxV = voltage; delayMicroseconds(100); zmpt101b voltage sensor library for proteus
In this post, I’ll walk you through why this library is essential, where to find it, and how to simulate a complete energy monitoring system step-by-step. Before we jump into simulation, let’s recap the hardware. The ZMPT101B is a PCB module built around a precision voltage transformer (ZMPT101B). It takes high AC voltage (up to 250V AC) and outputs a low AC signal (0-5V) proportional to the input. Most importantly, it provides galvanic isolation between the mains side and your microcontroller. It takes high AC voltage (up to 250V
// Remove DC offset and convert to RMS float peakVoltage = (maxV - Vref) * (120.0 / 0.6); // Calibration factor voltageRMS = peakVoltage / 1.414; void setup() lcd.begin(16
void setup() lcd.begin(16, 2); lcd.print("AC Voltage:");
delay(500);
#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); float voltageRMS = 0; float readValue = 0; float Vref = 2.5; // Output offset of ZMPT101B (adjust based on simulation)