automatic power factor controller using microcontroller
Description: The 230 V, 50 Hz supply is stepped down using a voltage transformer, while a current transformer is utilized to extract the current waveforms. The output of the voltage transformer corresponds to the voltage across the load, and the output of the current transformer is proportional to the current flowing through the load. These waveforms are fed to voltage comparators constructed using the LM358 op-amp. As a zero-crossing detector, its output changes during the zero crossing of the current and voltage waveforms. These outputs are then sent to the PIC microcontroller, which performs further power factor calculations. The PIC 16F877A microcontroller serves as the core of this Automatic Power Factor Controller, determining, displaying, and controlling the power factor. To correct the power factor, the current power factor is first calculated by taking the tangent of the ratio of the time between the zero crossings of the current and voltage waveforms and the time between two successive zero crossings of the voltage waveform. The calculated power factor is displayed on a 16x2 LCD display, and capacitors are switched on if needed. When a load is connected, the power factor is calculated by the PIC microcontroller. If the calculated power factor is less than 0.9, the relay activates the capacitor. The relays are driven by the ULN2003, a driver IC that consists of seven Darlington pairs. The leading current in the capacitor compensates for the lagging current typically present in inductive loads, thereby reducing the phase difference between the current and voltage. The power factor correcting capacitor is connected in parallel with the load through a relay. If the relay is energized by the microcontroller, the capacitor is connected in parallel with the load; if the relay is de-energized, the capacitor is removed from the load. When a resistive load is present, the power factor approaches unity, and the microcontroller does not energize the relay coil. Conversely, when an inductive load is present, the power factor decreases, prompting the microcontroller to energize the relay coil to compensate for the excessive reactive power. This ensures that the power factor is corrected according to the load conditions.
The LCD module connections are established as follows: the RS pin is connected to RB4, the EN pin to RB5, and data pins D4 to D7 are connected to RB0 to RB3 respectively. The direction of these pins is defined in the code, ensuring proper communication between the microcontroller and the LCD.
The function `powerFactor()` calculates the current power factor using the Timer 1 module of the PIC 16F877A. The algorithm captures the time intervals between zero crossings of the current and voltage waveforms, calculating the power factor based on these measurements. The main program continuously reads the power factor, averaging multiple readings to mitigate fluctuations. It displays the power factor on the LCD and controls the relay based on the calculated value, ensuring the power factor remains within acceptable limits for efficient operation.
The implementation utilizes various configurations of the microcontroller's ports to manage input and output effectively, ensuring a robust design for automatic power factor correction in real-time applications.The 230 V, 50 Hz is step downed using voltage transformer and current transformer is used to extract the waveforms of current. The output of the voltage transformer is proportional to the voltage across the load and output of current transformer is proportional to the currentG‚throughG‚the load.
These waveforms are fed to Voltage Comparators const ructedG‚usingG‚LM358G‚op-amp. Since it is a zero crossing detector, its outputG‚changesG‚during zero crossing of the current and voltage waveforms. These outputs are fed to the PIC which does the further power factor calculations. PIC 16F877A microcontroller is the heart of this Automatic Power Factor Controller, it find, displays andG‚controlsG‚the Power Factor.
To correct power factor, first we need to find the current power factor. It can be find by taking tangent of ratio of time between zero crossing of current and voltageG‚waveformsG‚and two successive zero crossing of voltage waveform. Then it displays the calculated power factor in the 16G—2 LCD Display andG‚switchesG‚ON the capacitors if required.
When load is connected the power factor is calculated by the PIC microcontroller. If the calculated power factor is less than 0. 9 then the relay switches on the capacitor. The relays are switched using ULN2003 which is basically a driver IC. ULN2003 consists of seven DARLINGTON PAIRS. The current lead in capacitor compensates the corresponding current lag which is usually present in loads. Hence the phase difference between the current and voltage will be reduced. Power Factor Correcting capacitor connected parallel to load through relay, if the relay is energized by microcontroller it will connect G‚the capacitor parallel with load, if relay deenergized it will remove the capacitor from the load.
When the resistive load is on the power factor will be near to unity so the microcontrollerG‚doesn`tG‚energize the relay coil. When the inductive load is on the power factor decrease now the microcontroller energize the relay coil in order to compensate the excessive reactive power.
Hence according to the load the power factor is corrected. //LCD Module Connections sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; //End LCD Module Connections int powerFactor() { int a=0, b=0, t=0, x=0; float tm, pf; TMR1L=0; TMR1H=0; do { if(PORTA. F0 = 1) T1CON. F0 = 1; else if(PORTA. F0 = 0 && T1CON. F0 = 1) { T1CON. F0 = 0; break; } }while(1); a = (TMR1L | (TMR1H<<8) * 2; TMR1L=0; TMR1H=0; do { if(PORTA. F0 = 1) { T1CON. F0=1; if(PORTA. F1=1) { T1CON. F0=0; break; } } }while(1); b = TMR1L | (TMR1H<<8); tm = (float)b/a; pf = cos(tm*2*3. 14); x=abs(ceil(pf*100); return x; } void main() { char c[]="0. 00"; int a, b, d, x, f, e; float tm, pf; Lcd_Init(); Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off ADCON1 = 0x08; // To configure PORTA pins as digital TRISA.
F0 = 1; // Makes First pin of PORTA as input TRISA. F1 = 1; //Makes Second pin of PORTA as input TRISD. F0 = 0; //Makes Fist pin of PORTD as output TRISD. F1 = 0; //Makes Second pin of PORTD as output while(1) { a = powerFactor(); Delay_us(50); b = powerFactor(); Delay_us(50); d = powerFactor(); Delay_us(50); e = powerFactor(); Delay_us(50); f = powerFactor(); x = (a+b+d+f+e)/5; c[3]=x%10 + 0x30; x=x/10; c[2]=x%10 + 0x30; x=x/10; c[0]=x%10 + 0x30; Lcd_Out(1, 1, "Power Factor"); Lcd_Out(2, 1, c); if(x<90) { PORTD. F0 = 1; PORTD. F0 = 1; Delay_ms(2000); } else { PORTD. F0 = 0; PORTD. F0 = 0; } Delay_ms(250); } } The function powerFactor() will find the current power factor by using the Timer 1 module of PIC 16F877a.
Power Factor may be fluctuating, so to avoid it we will find power facto
The purpose of this prototype unit is to eliminate the need for an oscillator. It provides a mains-derived and fully variable 50 Hz AC voltage, adjustable down to millivolts for comparison and accuracy testing of two or more parallel-connected multimeters....
A voltage comparator is a device that compares the voltages at its two inputs and generates an output based on the comparison. It produces a high output when the positive input exceeds the negative input and a low output when...
This page provides basic information about voltage comparator integrated circuits and is to act as reference material for other circuits. The circuits shown are based on the LM339 Quad Voltage Comparator chip or the LM393 Dual Voltage Comparator chip. These...
The circuit diagram for the automatic control of drinking fountains is presented below.
The automatic control circuit for drinking fountains typically employs a combination of sensors and control elements to manage the operation of the fountain efficiently. The main components of...
This circuit is designed to automatically adjust the brightness of lights based on the ambient light intensity. In bright conditions, the lights remain off, while in low ambient brightness, the lights are activated. The circuit incorporates a thyristor (VT1) and...
The circuit principle involves using a current transformer for current sensing due to the large AC power load of computers. This setup detects whether there is current in the power line, enabling the determination of its status. The LM393 comparator...
This circuit will provide an indication whenever the input voltage differs from two defined limits, V1 and V2. The supply voltage, Vcc must be higher than the highest input voltage by at least 2 volts. One application here is to...
These two comparators function as over-voltage and under-voltage comparators. In the first configuration, if the measured voltage (Vm) exceeds the reference voltage, the output of IC1 goes low. In the second configuration, if the input voltage (ViN) exceeds the reference...
The LM111/211/311 power supply operates within a voltage range of 5V to 15V. It features bias current, offset current, and a differential input voltage range of 30V. The output is compatible with TTL, DTL, and MOS circuits, allowing it to...
We use cookies to enhance your experience, analyze traffic, and (if you allow) serve personalized ads.
By clicking Accept All, you agree to our use of cookies.
Learn more