Phase AC load control with FLProg

  • Tutorial
There was a free day and I finally decided to try the speed counter unit in the delay line mode. This mode was created mainly for the implementation of phase regulation of the load, but so far I have not had time to break it in a real application. I think it's time.
I did the block strapping according to this scheme:


A zero detector was assembled on the PC814 optocoupler. Since the unit operates on interrupts, only the controller inputs to which hardware interrupts are attached can serve as the input of the zero detector. In the case of UNO, these are inputs D2 and D3.
On the optocosmistor MOC3023, a triac control unit is assembled. To control this unit, you can select any free digital output of the controller. Res
project diagram


- Analog input. At the input is a variable resistor.
Block SCT2 - Block high-speed counter. (Element Library -> Counters -> SpeedCounter)

Block Settings:






Since all optocouplers are different, it is necessary to configure the Scale unit. To do this, we will temporarily upgrade the project.



Now the delay value once a second will be displayed in Com-port. What is it for? Since the leading edge of the pulse from the zero detector arrives a little earlier than the true moment when the sinusoid passes through 0 (at the time of the extinction of the optocoupler LED), we need to determine this time to set it as 100% of the power value at the load. Here are the settings for the Scale block.


Pour the program into the controller and start the monitor of the comport. When the variable resistor rotates, the lamp will either light up or flicker. Here's what it looks like.

We achieve uniform maximum combustion. The value obtained through the comport is recorded. This value will be entered in the field "Lower limit of the output value" Scale. Now rebuild the second border. Again, change the values ​​in the Scale block.

The half-cycle duration of the mains voltage is 10,000 microseconds. But we have the momentum shifted 1102 microseconds before. Accordingly, in order to establish a full zero power, it is necessary to increase the maximum delay by the same amount. You can of course just set 11102, but it is better to check. Pour the program into the controller and start the monitor of the comport. We achieve the moment of transition from flickering combustion to complete extinction. The value from the comport is written. Here is how it looks.

Well, grouse, you can use the obtained values. We fill in the Scale block.

Well, that's what happened.



Now you can remove the generator blocks and transmit data from the comport, and apply the necessary regulatory value to the Scale input. Pay attention in the field “Upper limit of the input value” of the Scale block, you must enter the value of the regulating value corresponding to 0 power at the load, and in the field “Lower limit of the input value” value corresponding to 100% of power.

Also popular now: