AC VOLTAGE CONTROLLER USING
THYRISTOR
1. INTRODUCTION:
In this project we use one Atmel base microcontroller to provide a automation.
We use seven segment display to display the speed level of Ac load. In this
project we provide one output for load variations. Output is connected through
Triac control circuit. We use one Separate seven segments for indicator. We
provide manual input switch for this controller to vary and on/off the load. We
use total three switches. One for on/off and two for increment and decrement.
Zero cross over signal is provided to the controller via Opto-coupler circuit to
pin no 13 of the circuit
A voltage controller, also called an AC voltage controller or AC regulator is an
electronic module based on either thyristor, which converts a fixed voltage,
fixed frequency alternating current (AC) electrical input supply to obtain
variable voltage in output delivered to a resistive load. This varied voltage
output is used for dimming street lights, varying heating temperatures in homes
or industry, speed control of fans and winding machines and many other
applications, in a similar fashion to an autotransformer. Voltage controller
modules come under the purview of power electronics. Because they are low-
maintenance and very efficient, voltage controllers have largely replaced such
modules as magnetic amplifiers and reactors in industrial use
1.1 MODES OF OPERATION:
Voltage controllers work in two different ways
On-Off control
Phase control
1.1.1 On-Off control:
In an on-and-off controller, thyristors are used to switch on the circuits for a few
cycles of voltage and off for certain cycles, thus altering the total RMS voltage
value of the output and acting as a high speed AC switch. The rapid switching
results in high frequency distortion artifacts which can cause a rise in
temperature, and may lead to interference in nearby electronics. Such designs
are not practical except in low power applications.
1.1.2 Phase angle control:
In phase control the Thyristors are used as switches to connect the load circuit to
the input ac supply, for a part of every input cycle. That is the ac supply voltage
is chopped using Thyristors during a part of each input cycle. The thyristor
switch is turned on for a part of every half cycle, so that input supply voltage
appears across the load and then turned off during the remaining part of input
half cycle to disconnect the ac supply from the load. By controlling the phase
angle or the trigger angle (delay angle), the output RMS voltage across the
load can be controlled. The trigger delay angle is defined as the phase angle
(the value of t) at which the thyristor turns on and the load current begins to
flow. Thyristor ac voltage controllers use ac line commutation or ac phase
commutation. Thyristors in ac voltage controllers are line commutated (phase
commutated) since the input supply is ac. When the input ac voltage reverses
and becomes negative during the negative half cycle the current flowing through
the conducting thyristor decreases and falls to zero. Thus the ON thyristor
naturally turns off, when the device current falls to zero. Phase control
Thyristors which are relatively inexpensive, converter grade Thyristors which
are slower than fast switching inverter grade Thyristors are normally used. For
applications up to 400Hz, if Triacs are available to meet the voltage and current
ratings of a particular application, Triacs are more commonly used. Due to ac
line commutation or natural commutation, there is no need of extra commutation
circuitry or components and the circuits for ac voltage controllers are very
simple. Due to the nature of the output waveforms, the analysis, derivations of
expressions for performance parameters are not simple, especially for the phase
controlled ac voltage controllers with RL load. But however most of the
practical loads are of the RL type and hence RL load should be considered in the
analysis and design of ac voltage controller circuits.
1.2 CIRCUIT DIAGRAM:
3. COMPONENTS USED:
MICROCONTROLLER = 89S52.
MOC 3021= OPTO-COUPLER FOR TRIAC DRIVER( 1)
PC 817 OPTOCOUPLER FOR ZERO CROSS OVER INPUT
TSOP 1738 FOR REMOTE SENSOR(1)
SEVEN SEGMENT DISPLAY COMMON ANODE (1)
DIODE= IN 4007(4)
7805 REGULATOR
PUSH TO ON SWITCHES (4)
TRIAC BT 136 (1)
CRYSTAL 12 Mhtz
RESISTOR:
o 10K (1)
o 470 OHM (12)
o 100 OHM (2)
4. WORKING:
4.1 TRIAC:
Triac is a power electronic component that conducts in both directions when
triggered through gate. .As it can be seen that at time t1, angle of sinusoid is 45'
which means that if we triggered Triac at this angle i-e at 45', only shaded blue
area will pass through the Triac and hence through the load. Observe that shaded
blue are has RMS Voltage less than the pure sinusoid. This is the basic principle
by which RMS Voltage control is accomplished. Firing needs a small pulse at
gate that can be giving through microcontroller also. Similarly at firing
angle 90' (firing angle is an angle with reference zero crossing at which the
Triac is triggered using gate pulse), only red part of sinusoid will pass through
the Triac giving us the RMS 110V for 220V.
4.2 Coutesy of
Motrola
MOC3021 is an optotriac (product of Motorola) that is used for isolation
between power and driving circuitry. Note that when C828 on the base is applied
voltage>0.7V, optotriac gets triggered. As the triac gets triggered now, the
positive or negative voltage (whatever maybe) get pass through the gate of
BT136 (triac) and hence triggered it. It should be noted here that by using above
arrangement we can control the RMS voltage in both directions. What needs to
be taken care of is the triggering time or firing angle.
There is a need of a zero-crossing detector that will give us the reference for
providing delay for desired firing angle. In above example, for firing angle to be
90' for 220V 50Hz AC signal, we need to have a delay of 2.5 ms (t1=2.5ms)
right after each zero crossing. Usually MOC3021 is driven
through microcontroller, which gives the firing pulse on the basis of interrupt
generated by the zero-crossing detector.
The above circuit is mainly used as a dimmer and is often used speed controlling
of AC motor.
5. HOW TO PROGRAM BLANK CHIP:
8051 MICRO CONTROLLER:
5.1 The 8051:
The 8051 developed and launched in the early 80`s, is one of the most popular
micro controller in use today. It has a reasonably large amount of built in ROM
and RAM. In addition it has the ability to access external memory.
The generic term `8x51` is used to define the device. The value of x defining the
kind of ROM, i.e. x=0, indicates none, x=3, indicates mask ROM, x=7, indicates
EPROM and x=9 indicates EEPROM or Flash.
5.2 Different micro controllers in market:
PIC: - One of the famous microcontrollers used in the industries. It is
based on RISC Architecture which makes the microcontroller process
faster than other microcontroller.
INTEL: - These are the first to manufacture microcontrollers. These are
not as sophisticated other microcontrollers but still the easiest one to
learn.
ATMEL: - Atmels AVR microcontrollers are one of the most powerful in
the embedded industry. This is the only microcontroller having 1kb of ram
even the entry stage. But it is unfortunate that in India we are unable to
find this kind of microcontroller.
5.3 Intel 8051:
Intel 8051 is CISC architecture which is easy to program in assembly
language and also has a good support for High level languages.
The memory of the microcontroller can be extended up to 64k.
This microcontroller is one of the easiest microcontrollers to learn.
The 8051 microcontroller is in the field for more than 20 years. There are
lots of books and study materials are readily available for 8051.
First of all we select and open the assembler and wrote a program code in the
file. After wrote a software we assemble the software by using internal
assembler of the 8051 editor. If there is no error then assembler assemble the
software abd 0 error is show the output window.
Now assembler generates an ASM file and HEX file. This hex file is useful for
us to program the blank chip.
Now we transfer the hex code into the blank chip with the help of serial
programmer kit. In the programmer we insert a blank chip 0f 89s51 series. These
chips are multi time programmable chip. This programming kit is separately
available in the market and we transfer the hex code into blank chip with the
help of the serial programmer kit.
5.4 BLOCK DIAGRAM
The AT89C52 provides the following standard features: 8K bytes of Flash, 256
bytes of RAM, 32 I/O lines, three 16-bit timer/counters, a six-vector two-level
interrupt architecture, full-duplex serial port, on-chip oscillator, and clock
circuitry. In addition, the AT89C52 is designed with static logic for operation
down to zero frequency and supports two software selectable power saving
modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters,
serial port, and interrupt system to continue functioning. The Power-down mode
saves the RAM contents but freezes the oscillator, disabling all other chip
functions until the next hardware reset.
5.5 PIN DESCRIPTION:
VCC:
Supply voltage.
GND:
Ground.
Port 0:
Port 0 is an 8-bit open drain bi-directional I/O port. As an output port,
each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the
pins can be used as high impedance inputs.
Port 0 can also be configured to be the multiplexed low order address/data
bus during accesses to external program and data memory. In this mode,
P0 has internal pullups.
Port 0 also receives the code bytes during Flash programming and outputs
the code bytes during program verification. External pullups are required
during program verification.
Port 1:
Port 1 is an 8-bit bi-directional I/O port with internal pullups. The Port 1
output buffers can sink/source four TTL inputs. When 1s are written to
Port 1 pins, they are pulled high by the internal pullups and can be used as
inputs. As inputs, Port 1 pins that are externally being pulled low will
source current (IIL) because of the internal pullups.
In addition, P1.0 and P1.1 can be configured to be the timer/counter 2
external count input (P1.0/T2) and the timer/counter 2 trigger input
(P1.1/T2EX), respectively, as shown in the following table.
Port 1 also receives the low-order address bytes during Flash
programming and verification.
Port 2:
Port 2 is an 8-bit bi-directional I/O port with internal pullups. The Port 2
output buffers can sink/source four TTL inputs. When 1s are written to
Port 2 pins, they are pulled high by the internal pullups and can be used as
inputs. As inputs, Port 2 pins that are externally being pulled low will
source current (IIL) because of the internal pullups.
Port 2 emits the high-order address byte during fetches from external
program memory and during accesses to external data memory that uses
16-bit addresses (MOVX @ DPTR). In this application, Port 2 uses strong
internal pullups when emitting 1s. During accesses to external data
memory that uses 8-bit addresses (MOVX @ RI); Port 2 emits the
contents of the P2 Special Function Register.
Port 2 also receives the high-order address bits and some control signals
during Flash programming and verification.
Port 3:
Port 3 is an 8-bit bi-directional I/O port with internal pullups. The Port 3
output buffers can sink/source four TTL inputs. When 1s are written to
Port 3 pins, they are pulled high by the internal pullups and can be used as
inputs. As inputs, Port 3 pins that are externally being pulled low will
source current (IIL) because of the pullups.
Port 3 also serves the functions of various special features of the
AT89C51, as shown in the following table.
Port 3 also receives some control signals for Flash programming and
verification.
RST:
Reset input. A high on this pin for two machine cycles while the oscillator is
running resets the device.
ALE/PROG:
Address Latch Enable is an output pulse for latching the low byte of the
address during accesses to external memory.
This pin is also the program pulse input (PROG) during Flash
programming. In normal operation, ALE is emitted at a constant rate of
1/6 the oscillator frequency and may be used for external timing or
clocking purposes. Note, however, that one ALE pulse is skipped during
each access to external data memory.
If desired, ALE operation can be disabled by setting bit 0 of SFR location
8EH. With the bit set, ALE is active only during a MOVX or MOVC
instruction. Otherwise, the pin is weakly pulled high. Setting the ALE-
disable bit has no effect if the microcontroller is in external execution
mode.
PSEN:
Program Store Enable is the read strobe to external program memory. When the
AT89C52 is executing code from external program memory, PSEN is activated
twice each machine cycle, except that two PSEN activations are skipped during
each access to external data memory.
EA/VPP:
External Access Enable. EA must be strapped to GND in order to enable
the device to fetch code from external program memory locations starting
at 0000H up to FFFFH.
Note, however, that if lock bit 1 is programmed, EA will be internally
latched on reset. EA should be strapped to VCC for internal program
executions.
This pin also receives the 12-volt programming enable voltage (VPP)
during Flash programming when 12-volt programming is selected.
XTAL1:
Input to the inverting oscillator amplifier and input to the internal clock
operating circuit.
XTAL2
Output from the inverting oscillator amplifier.
6. ELECTRICAL CHARACTERISTICS OF LEDS:
Electrically, a LED is similar to the conventional diode in that it has relatively
low forward voltage threshold. Once this is exceeded the junction has a low
slope resistance and conducts current readily. An external resistor must limit this
current. Forward voltage drew across red LED is nominally 1.6 V but spread
with commercial diodes, it may be as high as 2 volts or so, while the Green LED
drops 2.4V. This difference accounts for use of lower limiting resistor used with
the Green LED.
Another important parameter of the LED is its maximum reverse voltage
rating. For typical Red device it is of the order of 3 volts. But for Green LED it
is somewhat higher- 5 to 10 volts.
The LED produces light only when a D.C. current is passed in the forward
direction and the amount of light emitted by a LED is proportional to the
forward current over a broad range. It means that light intensity increases in an
approximately linear manner with increasing current.
7. SEVEN SEGMENT DISPLAY DECIMAL DISPLAY:
A popular type consists of seven small, bar-shaped LED segment arranged so
that depending on which combinations are energized, the numbers 0 to 9 light
up. All the LED cathodes (or sometimes anodes) are joined to form a common
connection. Current limiting resistors are required (e.g. 270 ohms), preferably
one per segment. Common cathode method of connecting an array of display
elements.
Anode Connection
Common Cathode
The main requirements for a suitable LED material are:-
1) It must have on energy gap of appropriate width.
2) Both P and N types must exist, preferably with low resistivitys.
3) Efficient radioactive pathways must be present.
Generally, energy gaps greater than or equal to about 2 are required.
7.1 Commercial LED materials:
Gallium arsenide (Ga As) doped with Si
Gallium Phosphide (GaP) doped with N & Bi
Gallium arsenide Phosphide (Ga As1-x Px)
Gallium aluminium arsenide (Gax Al1-x As)
7.2 led constructions:
To reduce reflection losses in LEDs there are two obvious ways:-
The first is to ensure that most rays strike the surface at less than the
critical angle. This may be achieved by shaping the semiconductor /air
interface into a hemisphere.
The second technique is to encapsulate the junction in a transparent
medium of high refractive index. This is usually a plastic material with
refractive index of about 1.5. Moulding the plastic into an approximately
hemispherical shape can minimize the losses at the plastic lair interface.
8. PROGRAM CODE:
t0_lo equ 048h
t0_hi equ 0fch
t1_lo equ 048h
t1_hi equ 0fch
FND_DATA equ P0
fan_led1 bit P2.4
fan_sw1 bit P2.3
ir_in bit P3.2
zcd_in bit P3.3
key1 bit P2.0
key2 bit P2.1
key3 bit P2.2
cmd0 equ 01h ;1
cmd1 equ 02h ;2
cmd2 equ 03h ;3
delay1 equ 40h
temp1 equ 42h
display1 equ 43h
cnt1 equ 44h
rb0 equ 000H
rb1 equ 008H
rb2 equ 010h
rb3 equ 018h
flags equ 21h
control bit flags.0
new bit flags.1
cmd bit flags.2
fan1 bit flags.3
command equ 22h
cmd_data equ 23h
buffer equ 24h
stack equ 60h
org 00H
ljmp main
org 0003H
ljmp ex0_isr
org 000bh
ljmp tim0_isr
org 0013h
ljmp ex1_isr
org 001bh
ljmp tim1_isr
org 0023h
reti
ex0_isr:
push psw
push a
jb ir_in,skp_ex01
mov tl0,#0c0h
mov th0,#0f3h
mov cnt1,#06h
mov command,#00h
mov cmd_data,#00h
setb tr0
skp_ex01:
pop a
pop psw
reti
tim0_isr:
push psw
push a
clr tr0
jnb cmd,skp_tim06
mov c,ir_in
mov a,command
mov command,a
djnz cnt1,skp_tim01
mov cnt1,#07h
clr cmd
sjmp skp_tim01
skp_tim06:
mov c,ir_in
mov a,cmd_data
mov cmd_data,a
djnz cnt1,skp_tim01
mov a,cmd_data
mov cmd_data,a
mov a,command
jnb acc.5,skp_tim03
jnb control,skp_tim02
setb new
sjmp skp_tim04
skp_tim03:
jnb control,skp_tim02
setb new
sjmp skp_tim04
skp_tim04:
mov c,acc.5
mov control,c
anl a,#0fh
mov command,a
setb ex0
sjmp skp_tim05
skp_tim02:
setb ex0
sjmp skp_tim05
skp_tim01:
mov tl0,#080h
mov th0,#0f9h
setb tr0
skp_tim05:
pop a
pop psw
reti
ex1_isr:
push psw
push a
mov tl1,#t0_lo
mov th1,#t0_hi
setb tr1
jz skp_ex10
jb fan1,skp_ex10
clr fan_sw1
skp_ex10:
pop a
pop psw
reti
tim1_isr:
push psw
push a
clr tr1
mov tl1,#t1_lo
mov th1,#t1_hi
djnz temp1,skp_tim10
jnb fan1,skp_tim10
setb fan_sw1
skp_tim10:
pop a
pop psw
reti
main:
mov delay1,#09d
clr cmd
clr fan1
setb fan_sw1
mov tcon,#00H
mov psw,#rb0
mov sp,#stack
mov tmod,#011h
mov tl1,#t1_lo
mov th1,#t1_hi
mov dptr,#MSG1
mov a,delay1
movc a,@a+dptr
mov FND_DATA,a
setb it0
setb it1
setb et0
setb et1
setb ex0
setb ex1
setb ea
main_loop:
jb new,nxt0
jnb key1,keylp1
jnb key2,keylp2
jnb key3,keylp3
ljmp main_loop
keylp1:
mov r6,#0d
jnb key1,keylp1
mov r6,#0d
jnb key1,keylp1
ljmp act_cmd0
keylp2:
mov r6,#0d
djnz r6,$
djnz r6,$
jnb key2,keylp2
mov r6,#0d
djnz r6,$
djnz r6,$
jnb key2,keylp2
ljmp act_cmd1
keylp3:
mov r6,#0d
jnb key3,keylp3
mov r6,#0d
jnb key3,keylp3
ljmp act_cmd2
nxt0:
clr new
mov a,cmd_data
cjne a,#cmd0,nxtc1
ljmp act_cmd0
nxtc1:
cjne a,#cmd1,nxtc2
ljmp act_cmd1
nxtc2:
cjne a,#cmd2,skipc
ljmp act_cmd2
skipc:
jmp main_loop
act_cmd0:
jnb fan1,skp_cmd01
ljmp main_loop
skp_cmd01:
mov a,delay1
cjne a,#09d,skp_cmd02
ljmp main_loop
skp_cmd02:
inc delay1
mov a,delay1
movc a,@a+dptr
mov FND_DATA,a
ljmp main_loop
act_cmd1:
cpl fan_led1
ljmp main_loop
act_cmd2:
jnb fan1,skp_cmd21
mov a,delay1
jnz skp_cmd21
dec delay1
mov a,delay1
movc a,@a+dptr
mov FND_DATA,a
skp_cmd21:
ljmp main_loop
; .gfedcba
MSG1:
db 10010000b ;9
db 10000000b ;8
db 11111000b ;7
db 10000010b ;6
db 10110010b ;5
db 10011001b ;4
db 10110000b ;3
db 10100100b ;2
db 11011001b ;1
db 11000000b ;0
db 10001000b ;A
db 11111111b ;b
db 11111111b ;C
db 11111111b ;d
db 11011111b ;E
db 11111111b ;F
db 11111111b ;bk
end
9. REFRENCE:
http://en.wikipedia.org
https://www.google.co.in/
http://sciencehobbycentre.com/