Zbotic Logo Zbotic Logo
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

  • Shop
  • About Us
  • Contact Us
  • Reseller
  • Blogs
020 69134444
1800 209 0998
[email protected]
Help Desk
Facebook Twitter Instagram Linkedin YouTube
Zbotic Logo Zbotic Logo
0 0

View Wishlist Add all to cart

0 0
0 Shopping Cart
Shopping cart (0)
Subtotal: ₹0.00

View cartCheckout

All departments
  • 3D Print Service
  • 3D Printer
  • Batteries & Chargers
  • Development Boards
  • Drone Parts
  • EBike parts
  • Sensor Modules
  • Electronic Components
  • Electronic Modules
  • IoT and Wireless
  • Mechanical Parts and Workbench Tools
  • Motors & Drivers & Pumps & Actuators
  • DIY and Robot Kits
  • Show more
  • Home
  • Shop
  • Sale
  • 3D Print Service
  • PCB Service
  • B2B
  • Blogs
  • Contact Us
Return to previous page
Home Batteries & Power

Power Factor Meter: Measure and Display PF with Arduino

Power Factor Meter: Measure and Display PF with Arduino

April 1, 2026 /Posted by / 0

A power factor meter measures the phase relationship between voltage and current in AC circuits, revealing how efficiently your loads use electricity. In Indian homes with ceiling fans, tube lights, and appliances, poor power factor wastes energy and increases electricity bills. This guide shows you how to build an Arduino-based power factor meter using the ZMPT101B voltage sensor and ACS712 current sensor.

Table of Contents

  1. What Is Power Factor?
  2. Measuring Power Factor with Arduino
  3. Circuit Design: ZMPT101B + ACS712
  4. Arduino Code for PF Measurement
  5. Displaying Results on OLED
  6. Recommended Components
  7. FAQ

What Is Power Factor?

Power factor (PF) is the ratio of real power (watts) to apparent power (VA):

PF = Real Power (W) / Apparent Power (VA) = cos(phi)
  where phi = phase angle between voltage and current

PF = 1.0: Perfect (resistive load -- heater, incandescent bulb)
PF = 0.5-0.7: Poor (old fluorescent tube lights, small motors)
PF = 0.8-0.95: Acceptable (modern appliances, LED drivers)
PF = 0.95-1.0: Excellent (PFC-equipped power supplies)

Example: Indian ceiling fan
  Apparent power: 230V x 0.3A = 69VA
  Real power (watt meter): 55W
  PF = 55/69 = 0.80 (lagging, inductive)

Measuring Power Factor with Arduino

The method: measure the zero-crossing times of both voltage and current waveforms. The time difference gives the phase angle, from which PF is calculated:

Phase angle = (time_difference / period) x 360 degrees
PF = cos(phase_angle)

At 50Hz: period = 20ms
If current zero-crossing is 2ms after voltage:
  Phase = (2/20) x 360 = 36 degrees
  PF = cos(36) = 0.81

Circuit Design: ZMPT101B + ACS712

SAFETY WARNING: This circuit connects to 230V AC mains. Use extreme caution. The ZMPT101B provides galvanic isolation between mains and Arduino. Never touch exposed connections while powered.

Connections:
  ZMPT101B: AC input → 230V mains (through load)
            Signal output → Arduino A0
            VCC → 5V, GND → GND

  ACS712 (30A): Load wire through sensor hole
            Signal output → Arduino A1
            VCC → 5V, GND → GND

  OLED: SDA → A4, SCL → A5

Both sensors output a centred sine wave around 2.5V (at no load).
Zero crossing detection: when signal crosses 2.5V (512 on 10-bit ADC)

Arduino Code for PF Measurement

#define V_PIN A0  // ZMPT101B
#define I_PIN A1  // ACS712

volatile unsigned long vZeroTime = 0;
volatile unsigned long iZeroTime = 0;

void setup() {
  Serial.begin(9600);
  // Set up Timer1 for precise timing
}

void loop() {
  // Detect voltage zero crossing (rising edge)
  int vPrev = analogRead(V_PIN);
  while(true) {
    int vNow = analogRead(V_PIN);
    if (vPrev = 512) {
      vZeroTime = micros();
      break;
    }
    vPrev = vNow;
  }

  // Detect current zero crossing (rising edge)
  int iPrev = analogRead(I_PIN);
  while(true) {
    int iNow = analogRead(I_PIN);
    if (iPrev = 512) {
      iZeroTime = micros();
      break;
    }
    iPrev = iNow;
  }

  // Calculate phase difference
  long phaseDiff_us = iZeroTime - vZeroTime;
  float period_us = 20000.0; // 50Hz
  float phaseAngle = (phaseDiff_us / period_us) * 360.0;
  float pf = cos(phaseAngle * PI / 180.0);

  Serial.print("Phase: "); Serial.print(phaseAngle, 1);
  Serial.print("deg  PF: "); Serial.println(abs(pf), 3);

  delay(500);
}

Displaying Results on OLED

Add an OLED display to show voltage, current, power, and power factor in real time. Use the Adafruit SSD1306 library and format the display with large font for PF reading and smaller font for V/A/W values.

ZMPT101B AC Voltage Sensor
AC voltage sensor for mains monitoring.
View on Zbotic →
ACS712 30A Current Sensor
Hall-effect current sensor for high-current monitoring.
View on Zbotic →
0.96″ I2C OLED Display
128×64 OLED for battery monitors and dashboards.
View on Zbotic →
ESP32 Development Board
WiFi+BT board for IoT monitoring projects.
View on Zbotic →

Shop All Batteries & Power →

FAQ

Do Indian electricity boards charge for poor power factor?

For residential consumers: no, Indian discoms charge only for real power (kWh). For commercial and industrial consumers: yes, a power factor penalty applies below 0.85 or 0.90 (varies by state). However, poor PF at home still means higher current draw, more cable heating, and wasted capacity on your MCB/wiring.

How can I improve power factor at home?

Add a capacitor across inductive loads (fan, motor). Typical ceiling fan PF correction: 2.5-4uF 440V capacitor in parallel. This is why modern fans come with a capacitor built in. LED bulbs and modern appliances have internal PFC.

Tags: ACS712, Arduino, Batteries, Batteries Power, Power Factor, ZMPT101B
Share Post
  • Facebook
  • Linkedin
  • Whatsapp
Thermal Fuse: One-Time Tempera...
blog thermal fuse one time temperature protection device 614855
blog bimetallic strip temperature activated mechanical switch 614859
Bimetallic Strip: Temperature-...

Related posts

Svg%3E
Read more

Power Electronics Lab: Equipment List for Students

April 1, 2026 0
Setting up a power electronics lab for students and hobbyists requires the right equipment to safely work with batteries, converters,... Continue reading
Svg%3E
Read more

Battery Recycling Process: Extract Materials Safely

April 1, 2026 0
Understanding the battery recycling process is essential as lithium-ion batteries reach end of life in growing numbers. India generates an... Continue reading
Svg%3E
Read more

Battery Formation: First Charge Process Explained

April 1, 2026 0
The battery formation process is the critical first charge cycle that transforms raw electrode materials into a functional lithium-ion battery... Continue reading
Svg%3E
Read more

Islanding Detection: Safety for Grid-Connected Solar

April 1, 2026 0
Islanding detection is the critical safety mechanism that prevents solar inverters from energising dead grid lines during a power outage.... Continue reading
Svg%3E
Read more

Grid Tied Inverter: Feed Solar Power to Grid India

April 1, 2026 0
A grid tied inverter converts DC solar power into AC electricity synchronised with the utility grid, allowing you to feed... Continue reading

Add comment Cancel reply

Your email address will not be published. Required fields are marked

Facebook Twitter Instagram Pinterest Linkedin Youtube

Get the latest deals and more.

Download on Google Play Download on the App Store

Call us: 020 69134444 / 1800 209 0998

Monday - Saturday 09:30 AM - 06:00 PM
For Technical Supports Email: [email protected]
For Sales / Enquiries Email: [email protected]

  • My Account

    • Cart

    • Wishlist

    • Checkout

    • My Orders

    • Track Order

    • My Account

  • Information

    • FAQs

    • Blogs

    • Career

    • About Us

    • Contact Us

    • Payment Options

  • Policies

    • Privacy Policy

    • Terms & Conditions

    • GST Input Tax Credit

    • Shipping Return Policy

    • E-Waste Collection Points

    • Our Sitemap

© Zbotic.in is registered trademark of Moxie Supply Pvt Ltd – All Rights Reserved
Login
Use Phone Number
Use Email Address
Not a member yet? Register Now
Reset Password
Use Phone Number
Use Email Address
Register
Already a member? Login Now