Automatic Power Factor Controller using Microcontroller

Automatic Power Factor Controller using Microcontroller

The thirst for new sources of energy is unquenchable, but we seldom realize that we are wasting a part of the electrical energy every day due to the lagging power factor in the inductive loads we use. Hence there is an urgent need to avoid this wastage of energy.

Before getting into the details of Power factor correction, lets just brush our knowledge about the term “power factor”. In simple words power factor basically states how far the energy provided has been utilized. The maximum value of power factor is unity. So closer the value of P.F to unity, better is the utility of energy or lesser is the wastage. In electrical terms Power factor is basically defined as the ratio of the active power to reactive power or it is the phase difference between voltage and current. Active power performs useful work while Reactive power does no useful work but is used for developing the magnetic field required by the device.

Most of the devices we use have power factor less than unity. Hence there is a requirement to bring this power factor close to unity. Here we are presenting a prototype for automatic power factor correction using PIC Microcontroller.

Circuit Diagram

Automatic Power Factor Controller using PIC Microcontroller Circuit Diagram

Automatic Power Factor Controller using PIC Microcontroller Circuit Diagram

Working

Comparator Section

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 current through the load. These waveforms are fed to Voltage Comparators constructed using LM358 op-amp. Since it is a zero crossing detector, its output changes during zero crossing of the current and voltage waveforms. These outputs are fed to the PIC which does the further power factor calculations.


Microcontroller Section

PIC 16F877A microcontroller is the heart of this Automatic Power Factor Controller, it find, displays and controls 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 voltage waveforms and two successive zero crossing of voltage waveform. Then it displays the calculated power factor in the 16×2 LCD Display and switches ON the capacitors if required.

Correction Section

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  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 microcontroller doesn’t 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.

MikroC Program

//LCD Module Connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_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 factor more than one time and its average is taken.

Note : This is only a prototype of Automatic Power Factor Controller, for practical implementation you may need to make some modifications in the program and circuit.

Share this post

  • Rabin samanta says:

    Hello sir can you please send me the corrected code .
    My E-mail is – [email protected]

  • Anand M N says:

    Hi ..It compiled with out any error for me. But i don’t know how to put a load in proteus to make low pf in supply
    pls help

  • Anand M N says:

    I am planning to simulate this in proteus as i don’t require to do this in real hardware. Is the pf correction section now correct? and how to insert a load to make pf low in proteus?

  • Megha Asundi says:

    We are getting error for abs and cos tetms in mikroC complier…wt to do??

    Is this the correct code?

  • Pawan Rana says:

    Sir, how can we write th abovecode using AVR

  • Anand M N says:

    Hello. Is the program for the correction part correct?

  • Sagar says:

    hello sir, have you a coding of this practical in 8051 family controller like AT89s51?

  • D P singh says:

    Hi, Divya shamka I am working in NFL , I want ask you that the above programm for automatic power controller by pic , can be written in assembly language , if yes please write it in assembly.
    Thanks with regards.

  • Ligo George says:

    You can build the above program with MikroC Pro compiler.

  • charan says:

    hey man i will be thankfull wholeheartedly if u can send me the .hex file of this programm to my mail [email protected].i urgently need it man

  • deepalps says:

    how to caliberate?

  • KAUSHIK SAMANTA says:

    Sir how can i get Current transformer in proteus?
    thank you.

  • KAUSHIK SAMANTA says:

    how u get current pulse?

  • ted korczak says:

    Dear

    How to adopt your code for STM32F103 ?

  • HamzaSaeed says:

    Can you send me proteus simulation. Thanks

  • HamzaSaeed says:

    What is the rating of CT and PT, what inductance should i use on primary and secondary side transformer?

  • Vaibhav Chauhan says:

    sir can i get the simulation file for this project
    kindly send it to [email protected]

  • Ardian says:

    This is only a prototype of Automatic Power Factor Controller, for practical implementation you may need to make some modifications in the program and circuit.

  • melkamu says:

    Ligo please help me, when i running this code in simulation it give
    an error of “stack underflow” please correct this error or send me the
    correct code its not working and how to improve power factor correction using pic 8051

  • melkamu says:

    how to improve power factor correction using pic 8051

  • melkamu says:

    Ligo please help me, when i running this code in simulation it give
    an error of “stack underflow” please correct this error or send me the
    correct code its not working.

  • I have error in float tm,of; says:

    I am Vignesh I have error in float tm,pf;

  • I have error in float tm,of; says:

    vignesh

  • Rahul Wagh says:

    sir, i try but not propery work, please send corrected code

  • Rahul Wagh says:

    please send me your hitech compiler code, i want this code because i use hitech compiler and mplab IDE… [email protected]

  • shaker says:

    in the last of the code write demo limit ? what is mean how can i remove this error

  • shaker says:

    i don’ t know why this program did not compile. can i know what exact version of mikroC it has written for. thank you?

  • shaker says:

    Sir can I ask complete code? please send to email: [email protected]

  • Ligo George says:

    I didn’t do any simulation for this project. Only tested in real hardware.

  • Ligo George says:

    It will work fine in MikroC Pro.

  • Ligo George says:

    Thanks for the feedback.

  • Tapiwanashe Augustine says:

    email me at [email protected]

  • Uzer says:

    Lots of error when I complied program I’m micro c pro

  • Tapiwanashe Augustine says:

    Hey man thanks for the code, got it kicking on Proteus 8. Have had an exciting past day since i couldn’t use microc (2k limit). So I translated your code into Hitech C. And just a pointer,,,,, ADCON1 = 0x06 if you want to make all of PORTA pins digital input. Again, thanks for sharing, really helpful you guys.

  • Ligo George says:

    You can generate it using MikroC Pro compiler.

  • Ligo George says:

    Sorry, we don’t have the hex file. You can compile and generate it.

  • Ligo George says:

    We are not providing the hex file as the project is not complete. Its power factor measuring section is correct, but correction is not correct.

  • Ligo George says:

    You can use the compiler MikroC Pro for doing it.

  • melese says:

    pleas send me the materials and theire properties that you use on proteus software on “[email protected]” i make mistak when i constract the circuit.

  • nanjegowda says:

    Sir plzz can u share me the .hex file… Email.I’d:- [email protected]

  • nanjegowda says:

    iam not able to generate hex file because my compiler is a demo version …so plz send me the hex file or suggest wat to do to generate hex file ….if u tel me to buy original version of micro c pro …its costlier..i can’t afford tat much moneyy so kindly give me some other option
    mail id: [email protected]

  • nanjegowda says:

    Sir plzzz tell how to burn this code to controller…
    And how to create .hex file

  • Ligo George says:

    There is no download for this. You can take the program above.

  • Ligo George says:

    You need to select proper power factor selection capacitors depending on your load requirements.
    You need to improve power factor correction mechanism of the program.

  • sai teja says:

    sir! im getting difficlty in running the program! can u plz check and send me the exact code?
    mail : [email protected] please! a kind request!

  • Mouin Zwayni says:

    how to download this project

  • Karthick Selvan says:

    how i made corrections or improve that sections.

    if u dont mine please give me an idea.

  • Ligo George says:

    You can use a CT depending on the maximum current required for your load.

  • Ligo George says:

    No you need to improve that section. It is not completely correct. But reading section is correct.

  • swapnil pandey says:

    Hey can u tell the rating of ct for above circuit . I just need a reference as to by what value current should be reduced???

  • Karthick Selvan says:

    thanks sir and i have another doubt is this program corrects the pf automatically.

  • Ligo George says:

    No need of rectifier. The comparator will compare and will produce pulses.

  • Karthick Selvan says:

    The secondary winding of the transformer is connected to LM358. transformer out is AC is this affect LM358.Or it required any rectifer.please tell me.

  • Rahul Raju says:

    Iam doing this project now can you please send more information about this project and the program i really dont have much program skill so please help my mail id [email protected]

  • avinash says:

    Upload the hex file of this code this would be easier to dump to PIC

  • avinash says:

    Please send hex file

  • agbor roland says:

    sir please tell me the reference values of the current and voltage transformers

  • agbor roland says:

    hello please sir what is the reference values of the voltage and current transformers on the power factor correction circuit you can reply me on [email protected] thanks sir.

  • Ligo George says:

    Sorry, currently we don’t have any files of this project.

  • zeeshan akbar says:

    @@lijoppans:disqus sir plz send me the proteus version of this project

  • zeeshan akbar says:

    plz send me the proteus file of this project

  • Ligo George says:

    Sorry, I don’t have this project with any other microcontrollers.

  • Ligo George says:

    Current transformers are commonly available now a days. You can even get it online.

  • vikas says:

    current transformer is not avilable so as well as pulse wave genrator use it

  • Ligo George says:

    1. Verify All Connections.
    2. Adjust the Contrast of LCD
    3. Make sure that PIC Program is running, check crystal, power supply etc.

  • Ankur Chakraborty says:

    The program is only showing black boxes on the LCD when done on hardware..what to do? I checked all my connections

  • Ligo George says:

    It is not a Syntax Error…
    It is MikroC Demo Limit error…

  • mukesh gupta says:

    sir i am getting these errors…what to do

  • Noor Ahmed says:

    plz send me hex file
    [email protected]

  • madhu says:

    sir whenever i tried to built the programme its showing demo limit in micro c pro …so iam not able to generate hex file because my compiler is a demo version …so plz send me the hex file or suggest wat to do to generate hex file ….if u tel me to buy original version of micro c pro …its costlier..i can’t afford tat much moneyy so kindly give me some other option
    mail id: [email protected]

  • habtamutolasa says:

    can you help me with pic microcontroller based ic tester for 74 series
    here is my email “[email protected]

  • Ligo George says:

    Sorry we don’t have any other codes.

  • Udit Jain says:

    Please send me the corrected code
    @[email protected]

  • ibrahim says:

    Please send me a correct [email protected]……tq

  • Ligo George says:

    Basic function is explained in the article itself. The configuration of Timer 1 is not explained.. it differs from microcontroller to microcontroller.

  • habtamu says:

    can you give more explanation on the program please

  • Ligo George says:

    These are built in library functions of MikroC Pro compiler… they don’t require header files..

  • Ligo George says:

    You should wind transformers depending on your current and voltage ratings… … Design with 3V secondary voltage.

  • Ligo George says:

    It depends on your applications… You can use transformers with 3V secondary voltage..

  • kaustubh says:

    will u please tell about the CT and PT ratings, i mean their turn ratio and current rating

  • rajesh says:

    what should the rating of CT and PT

  • Ligo George says:

    You can build the above code to generate hex.

  • noufal says:

    Plz send hex code
    [email protected]

  • Ligo George says:

    Output voltage always depends on the input … I said about maximum / rms.

  • Shivendra Kr. Sahu says:

    that’s what I’m asking is that the op voltage of the both should be equal .

  • Ligo George says:

    Sorry, I don’t have Hi-Tech or XC8 codes.

  • Ligo George says:

    No, I said the output voltage rating of both transformers.

  • Shivendra Kr. Sahu says:

    when i Compiled it . error as
    error: 0 434 Demo Limit Demo Limit
    error: 0 102 Finished (with errors): 23 Dec 2014, 01:25:07 Automatic Power Factor Controller.mcppi

    its means generated hex file limit exceed to 2k .
    so pl post it hi-tech or xc8 ver. code

  • Shivendra Kr. Sahu says:

    ur mean to say both rating (potential transformer & current transformer) are equal (same) ?

  • Ligo George says:

    Use default mikroc settings.

  • Ligo George says:

    use a 3V transformer.

  • Ligo George says:

    use a 3V output transformer.

  • Shivendra Kr. Sahu says:

    pl tell me here whats its conflagration bit setting ?

  • bhaskar says:

    what is rating of current transformer

  • bhaskar says:

    what are ratings of potential &current transformers

  • Ligo George says:

    You might not be able to simulate above project in proteus properly… Try in real hardware..

  • pranay says:

    I have tried this programme but it isn’t working with proteus simulation. Can you send me hex file for this programme?
    My email id is: [email protected].

  • Fantan Moja says:

    the code compiled successfully, just be smart on how you go about it in Micro C pro.

  • ahsan says:

    Okay Mr.Ligo thanks for positive response. my hardware its almost ready i hope it will work.

  • Ligo George says:

    Hello,
    The above code is correct, it will work…. only problems is that power factor correction section needs improvement… There is no errors..

    I think, it is not good to simulate projects like this…. Try in real hardware..

  • ahsan says:

    Ligo please help me, when i running this code in simulation it give an error of “stack underflow” please correct this error or send me the correct code its not working.
    please i have to submit my project at the end of this month.

  • Ligo George says:

    Design the capacitor ratings as per your power factor requirements..

  • Jaya Krishna G says:

    sir . please send me the two capacitor ratings .

  • Ligo George says:

    MikroC is a compiler while proteus is a simulator.. You can compile your code with MikroC to generate hex file.

  • santosh says:

    did use multisim for this project???????

  • Santosh says:

    hi sir
    i dont know how to create a hex file
    i am doing the project in protecus???
    is this good on going for that or whether i need to change the software ???
    i dont how miroC works?????? can we build this same circut over there

  • Ligo George says:

    We have no other codes.

  • bdzah says:

    hie can i have the correct code please. [email protected]

  • ahsan says:

    can you send me the correct of APFC.
    at [email protected]

  • ahsan says:

    Hey Ligo please send me the corrected code too.
    at my email adress
    [email protected]

  • ahsan says:

    alright thank you so much, please guide me can i use normal step down 12v, 2A transformer in series for current measuring in lm358 ?

  • Ligo George says:

    For voltage transformer you can use a 230/3V, 500mA transformer available in the market…
    For current transformer.. you can wind depending on your requirements.. provide a secondary voltage about 3V.

  • ahsan says:

    what rating you use of current transformer and voltage transformer please reply. i m waiting for your concideration.

  • Ligo George says:

    I have only above code.

  • fazz says:

    Hi mr. ligo,appreciate if you able to send the full correct code to my email [email protected]…need to do for my house use.

  • Ligo George says:

    If the clock frequencies are correct in mikroc project settings and pic properties in proteus..
    Check the PIC used in mikroc project settings and proteus are same.. PIC 16F877A..

    Note : 16F877 and 16F877A are different microcontrollers..

  • Monjur Morshed says:

    both clock frequency’s are same…btw i am not using CT & PT

  • Ligo George says:

    I have only the above code.. It is written for MikroC Pro compiler..
    It is working code.. only thing is it need improvement in the power factor correction section..

  • Ligo George says:

    Above program is correct.. but it needs improvement in the power factor correcting section..

  • Ligo George says:

    It is not a joke man. .It is 100% working… but it needs improvement.. in the power factor correction section..

  • Ligo George says:

    Check clock frequencies in mikroc project setting and pic properties in proteus.

  • Ligo George says:

    abs() – takes absolute value…
    ceil() – rounds to nearest integer..

  • Ligo George says:

    It depends on your requirements..

  • Ligo George says:

    It is not good to simulate these projects in proteus..

  • ahsan says:

    Hey please tell me where i can find Current transformer in Proteus software ?

  • ahsan says:

    Hey please tell me where i can find current transformer in proteus ?

  • ahsan says:

    did you get the rating of current transformer and potential transfortmer ?

  • lous mow says:

    x=abs(ceil(pf*100)); can u explain about this??

  • Monjur Morshed says:

    bro,,,i worked with the pf calculation part only,,,& the code compiles fine,,,,,,,but when i tried it in proteus it gives error & Lcd is blank…

  • Stefan says:

    I said before this code is a joke, does not work.

  • aregawi says:

    could send me the corrected cod my sir?
    [email protected]

  • Angelo says:

    Sir can I ask complete code? please send to email: [email protected]

    really need for a project.

    Thank you very much

    Regards’

  • anwar says:

    hi im doing the project with atmega 16 . i have made the required changes in this code to be compatible with atmega. the code compiles without error but nothing happens on proteus. kindly help me out with this. i have to submit my project very soon

  • naim says:

    what type of current transformer did you used?i mean the name of the transformer or no or something else that i can find and buy it

  • juhi says:

    SEND CORRECTED CODE PLSS VERY URGENT
    [email protected]

  • arslan rao says:

    please sir send me correct code…..here…
    [email protected]

    and kindly also specified the version of microC pro…..Thankyou…

  • arslan rao says:

    i don’ t know why this program did not compile. can i know what exact version of mikroC it has written for. thank you?
    Please send me the corrected code because when i load his one on proteus nothing happens although it compiles without errors
    my email [email protected]

  • Jigar says:

    can you please send me the corrected code on [email protected]

  • Nauman Safdar says:

    Did Some one practically implemented this? i tried but the display value changes randomly for the same load…

  • faheem says:

    plz give me project detail

  • ahmedduaa says:

    hey , please can you send me the file of this project i need it for my collage
    my email: [email protected]

  • Sandun Dhammika Perera says:

    May be you could have longer delays.250ms is not enough at all. Since the power factor does not change quickly you could have delay at least 10seconds. Or give the user a configuration option to configure it.

  • Sandun Dhammika Perera says:

    There should be some header files. See your code does not include any header files , compiler crazy about where does that Lcd_init(); or Lcd_write() came from?

  • mughees ahmed says:

    Please send me the corrected code because when i load his one on proteus nothing happens although it compiles without errors
    my email is [email protected]

  • juhi says:

    How to calculate the value of the capacitor bank

  • vohsty says:

    Hallo sir
    Please send me the corrected code because when i load his one on proteus nothing happens although it compiles without errors
    my email is [email protected]

  • kaushal says:

    can I run this code in mplab

  • kaushal says:

    hi can you please send me the corrected code?
    my id is: [email protected]

    Can you please mention in my email, what current sensor and what rating voltage transformer to use

    Thank you

  • Giscard Hangi says:

    Hi , I am working on a similar project but for a 3 phase system. I would like to know how did you manage the problem of linearity and phase displacement of the CT in particula?

  • Ligo George says:

    Sorry for the late replay..
    Currently we aren’t providing any training.. I am ready to provide training personally… But I am not good in speaking English.

  • Ligo George says:

    Wavelength of pulse..

  • dalwinder says:

    a is the pulse width or wave length of pulse

  • dalwinder says:

    I need pic programming training by Google talk or Skype

  • Ligo George says:

    Online training means??

  • Ligo George says:

    It is the measured timer value of current and voltage waves…

  • dalwinder singh says:

    are you giving training on pic online?

  • dalwinder singh says:

    tm = (float)b/a;
    pf = cos(tm*2*3.14);
    x=abs(ceil(pf*100));
    can you elaborate this function i.e. what (a) and (b) shows

  • Ligo George says:

    Sorry for the inconvenience caused… It is corrected.. Please try after clearing your cache..

  • Cabir says:

    hi all
    this circuit sucks
    The in and outputs of uln2003 are on the wrong side

  • Ligo George says:

    Hello, we aren’t now providing pcb designing service..

  • Shaik Aryan says:

    interfacing of dc motor with 8051.. HOW DO I GET THE CIRCUIT LAYOUT TO MAKE PCB OF IT.. please help

  • RyRS says:

    A few of modification of circuit and using ccs c compiler ccp(capture) example, i got a power factor based on comparison between two signal using proteus simulation. Hope you don’t mind that i did some modification on your circuit. I won’t share my email to public, so thank you for giving an idea about measuring power factor. 🙂

  • Ligo George says:

    Give me your mail id??
    Note : This only a prototype only for the sake of demonstration..

  • RyRS says:

    Would you mind to share or send to email the hex file perhaps? My mikroc pro for pic 6.0 seems giving an hex file size 1kb only after I compile the code. Thank you.

  • Ligo George says:

    Did you provide the inputs (from comparators to pic) in proteus??

  • Mithun says:

    Program compiled but not working in simulation in proteus.

  • Ligo George says:

    What is your doubt??
    I haven’t any experience with arduino programming..

  • Azim Uddin Chowdhury says:

    I have an Arduino micro-controller & I creating a Power factor meter. So i need some help my brothers..

  • Ligo George says:

    Sorry, we have only that program for this project..

  • RyRS says:

    Excuse me sir, but I didn’t see any download link are shared above. Thank you.

  • Ligo George says:

    The complete project details including the project files are shared above..

  • Ligo George says:

    It should be calculated according to your requirements..

  • Ligo George says:

    Use them .. depending upon the application

  • naim says:

    what is the rating of current tranformer and voltage transformer?

  • naim says:

    what is the value of power factor correction capacitor at the ac main output?

  • naim says:

    i’m doing this project for my final year project.can you please share this project with me?send it to my e-mail ([email protected])

  • Ligo George says:

    No, it is not a kind of interrupt.. it is a function to evaluate power factor using internal timer modules of pic microcontroller..

  • mehmet çiçek says:

    Brother, is “int powerFactor()” a kind of interrupt? Can you explain it or give some documants?

    Conguralation and thanks for share!
    [email protected]
    Elektrik engineer.

  • Ligo George says:

    I think.. no modification is needed in the circuit… but you should modify the program…… It is my logic… I have tested it only once… so you should modify the program by conducting some practical tests… and calibrating this project..

  • Ligo George says:

    Sorry, I don’t know how to measure power factor in 3 phase circuits…

  • karthik says:

    what modifications is need in this program and circuit.

  • karthik says:

    how to modify this circuit in 3 phase supply.? in 3phase supply compare
    all the phase current and all phase voltage .. how to change this
    circuit..

  • karthik says:

    voltage transformer is an ordinary transformer ok . it step down 12V ,1A. transformer used its ..

  • Ligo George says:

    Yes you can replace it with current sensor…….
    voltage transformer is an ordinary transformer….
    It is better to use transformer… as it isolates our low power circuits from high power ac….
    I think the current sensors have internal transformer…

  • karthik says:

    Current Transformer and voltage transformer can be replaced with any other electronic circuit its possible ..

  • Ligo George says:

    The above is an academic project made by ECE students… and it is working……… for demonstration…
    but for practical implementation, I think you need to make some more changes…

  • sunny says:

    is this a prototype?

  • Ligo George says:

    What is the error??

  • dark says:

    sir which compiler shuold i use for compiling currently i use mikroc pro for pic v6.0.0 but they get an error

  • Ligo George says:

    It should be selected according to your current/load requirement…

  • jun says:

    Hi sir I understand the source code,can you give me the sample current ratio or specification detail of current transformer

  • Ligo George says:

    It will depends up on the max current required for your application..

  • Kalpesh says:

    What is the value of Current Transformer ? Which Current Transformer should i use ?

  • Ligo George says:

    Sorry, 🙁 it is also a mistake..
    Actually we done this project by connecting current transformer inputs to PORTD, but changed to PORTA while drawing circuit for making the circuit diagram simple..
    Thanks…
    Also the power factor correcting section of this code is not good… We checked this project by adding a switch to capacitor, such that change in power factor can be seen on the LCD by ON and OFF the switch…

  • Stefanev says:

    please share your hex and coff file
    i not understand:

    TRISD.F0 = 0; //Makes Fist pin of PORTD as output
    TRISD.F1 = 0; //Makes Second pin of PORTD as output

    So PORTD is output

    i simulate in proteus and program remain in endless loop:

    do
    {
    if(PORTD.F0 == 1)
    T1CON.F0 = 1;
    else if(PORTD.F0 == 0 && T1CON.F0 == 1)
    {
    T1CON.F0 = 0;
    break;
    }
    }while(1);

    how to trigger the timer1 if the inputs are PORTA0 and 1 ???

  • Ligo George says:

    Hello, Mistakes in the code is corrected…

  • Ligo George says:

    Sorry, it was a mistake while coping the code..
    all where simple C syntax errors…
    It is corrected now..

  • Stefaev says:

    first error: missing line “sbit LCD_EN at RB5_bit;”
    compiler (mikroC PRO for PIC 6.0.1) says:

    59 404 ‘c’ Identifier redefined automatic-power-factor-controller-using-microcontroller.c
    77 318 Assigning to non-lvalue ” automatic-power-factor-controller-using-microcontroller.c
    81 324 Undeclared identifier ‘e’ in expression automatic-power-factor-controller-using-microcontroller.c
    83 324 Undeclared identifier ‘e’ in expression automatic-power-factor-controller-using-microcontroller.c
    83 317 Operator ” is not applicable to these operands ” automatic-power-factor-controller-using-microcontroller.c
    83 317 Operator ” is not applicable to these operands ” automatic-power-factor-controller-using-microcontroller.c
    60 1163 Variable ‘tm’ has been declared, but not used automatic-power-factor-controller-using-microcontroller.c
    60 1163 Variable ‘pf’ has been declared, but not used automatic-power-factor-controller-using-microcontroller.c
    0 102 Finished (with errors): 17 mai. 2013, 12:50:37 automatic-power-factor-controller-using-microcontroller.mcppi

  • Ligo George says:

    The code is correct.& we made this project with above code.. ,for the practical implementation you need to modify the power factor correcting section of the code…. as this is only a prototype…

  • Stefaev says:

    author put mistakes in the source code.

  • Ligo George says:

    Use MikroC Pro…

  • fatih says:

    i don’ t know why this program did not compile. can i know what exact version of mikroC it has written for. thank you?


  • >