Uso de Microcontrolador para acionamento de

Tiristores
Prof. Francisco Fambrini
Faculdade de Engenharia
Universidade Anhanguera – Pólo Santa Bárbara do Oeste
Keywords:
Triac, SCR, microcontroller, Pulse Position Modulation, PPM, digital control, PIC, CCS
Compiler, Bresenham Algorithm
Palavras-chave:
Triac, SCR, Microcontroladores, Modulação por Posição de Pulsos, PPM, controle digital,
PIC, Compilador CCS, Algoritmo de Bresenham
Resumo:
Neste artigo, o autor descreve duas técnicas para controle de potência em Sistemas
Monofásicos A .C., através do uso de tiristores para Corrente Alternada (Triacs), partindo
de Microcontroladores PIC.
De fato, o uso de microcontrolador no controle do disparo dos triacs é assunto discutido
com interesse e pouca literatura tem sido escrita a respeito, porque tal envolve
temporizações precisas no controle do ângulo de disparo dos semicondutores.
O primeiro método descreve o controle angular da senóide e faz uso do timer do
Microcontrolador e de rotinas de interrupção escritas em Linguagem C.
Este método é também chamado PPM ( Modulação por Posição de Pulso ).
O segundo método envolve o conceito de ciclos completos de onda e é baseado no
Algoritmo de Bresenham visando a equipartição da Energia dentro de um período de tempo
pré-fixado.
Ambas as técnicas foram testadas pelo autor em laboratório e os códigos gravados no
microcontrolador foram escritos em linguagem C, utilizando-se o compilador PCWH
fabricado pela CCS.
Sistemas de filtros (snubber, LC ) são também discutidos como necessidade a ser
implementada devido à emissão de harmônicas e EMI ocasionadas pelo rápido
chaveamento dos triacs.
Abstract:
In this paper, the author describes two techniques for power control in the AC single phase
system, through the use of thyristors for AC (Triacs), from PIC Microcontrollers.
In fact, the use of microcontroller to control the shot of the triacs are subject discussed with
interest and little literature has been written about it, because it involves precise timing in
controlling the shot angle of the semiconductor.
The first method describes the angular control of the sinusoid and makes use of the
microcontroller and timer interrupt routines written in language C.
This method is also called PPM (Pulse Position Modulation).
The second method involves the concept of complete cycles of the wave and is based on the
Bresenham algorithm.
Both techniques were tested by the author in the laboratory and the codes written to the
microcontroller was written in C language, using the compiler PCWH manufactured by
CCS.
Filter systems (snubber, LC) are also discussed as a need to be implemented due to the
emission of harmonics and EMI caused by the rapid switching of the triacs.
INTRODUÇÃO:
1. PPM
É uma sigla que significa Pulse Position Modulation, ou Modulação por Posição de
Pulso. É a forma de modulação de sinal na qual os M bits de uma mensagem são
codificados transmitindo-se um único pulso em uma das 2^M trocas de tempo possíveis.
Isto é repetido a cada T segundos, tal que a taxa de bits transmitidos seja M/T bits por
segundo. A característica de um sistema do tipo PPM é que dentro de um período de tempo
T, apenas um pulso é gerado. O que muda é o instante no qual tal pulso é produzido.
Figura 1 – Gráfico ilustrando o sistema PPM
O sistema PPM foi o adotado nesse Controlador porque o elemento resistivo de
aquecimento funciona diretamente na rede AC de 127 volts.
Como necessita-se controlar tensão alternada, a escolha recaiu sobre um TRIAC do
tipo TIC263 D.
Figura 2 - TRIAC controlando resistência de carga, disparado pelo sinal PPM
Os Triacs (Tiristores para Corrente Alternada) e os SCR (Retificadores Controlados
de Silício), uma vez que recebem um pulso de disparo no seu terminal G (gate)
permanecem na condição de “disparo” (conduzindo a corrente) até que a senóide da rede
cruze novamente o zero.
Assim, basta apenas um breve pulso de disparo no gate do TRIAC para que este comece a
conduzir, só desligando ao final de um ciclo da senóide.
A figura abaixo ilustra o uso do PPM para controle do ângulo de disparo do TRIAC em
função da senóide de 60 Hz (período aproximado de 16,666 ms ):
Figura 3 – Efeito do PPM sobre o momento de disparo do triac
2. Detetor de Passagem pelo Zero (Zero-Crossing)
A função desta etapa do circuito é produzir uma onda retangular a cada vez que a
senóide da rede passar pelo zero, para proporcionar o adequado sincronismo no disparo do
Triac. Fornece uma amostra da senóide da rede para que o Microcontrolador decida o
momento adequado de iniciar o timer que controlará o PPM.
A solução encontrada, levando-se em conta a segurança no isolamento do circuito
do controlador da rede de energia, faz uso de um acoplador óptico do tipo TIL111 da
National Semiconductors, conforme mostrada no esquema abaixo
Figura 1 - Circuito detetor de passagem pelo zero (zero-crossing)
É importante frisar que existe isolamento galvânico entre a rede de 127 volts e o circuito
digital, observando que os terras de um lado e de outro do opto-acoplador são diferentes.
Tal isolamento torna o sistema seguro e robusto com relação aos picos de energia que
eventualmente podem ser originados a partir da rede.
O circuito acima produz uma onda muito próxima de retangular nos instantes exatos
em que a senóide da rede atravessa o zero, servindo como ótima referência para o momento
de disparo do Triac.
3. Microcontrolador
A escolha recaiu para o modelo PIC18F4550 do fabricante Microchip
(www.microchip.com) por ser um dispositivo de tecnologia RISC de última geração na data
em que este trabalho foi desenvolvido.
Ponte Retificadora
A C
K E
TIL 111
22K
R1
127 VAC
R
2
+5V
Figura 4- Pinagem do Microcontrolador usado na implementação.
Algumas características deste dispositivo são:
- 40 pinos em encapsulamento DIP, com 35 I/Os (entradas/saídas);
- Alta Performance, com tecnologia Nanowatt ® para baixo consumo de energia;
- Hardware preparado para comunicação USB 2.0
- Memória Flash avançada, com mais de 100.000 ciclos de leitura e apagamento;
- Arquitetura otimizada para compilador C;
- 32 Kbytes de Memória de programa interna;
- 2048 bytes de memória RAM embutida;
- 256 bytes de memória para dados não voláteis;
- clock máximo de até 48 MHz, com velocidade de até 12 MIPs;
- Conversor AD interno com resolução de 8 ou 10 bits, multiplexado com até 13
canais de leitura;
- WatchDogTimer, 2 canais de PWM por hardware, 3 timers independentes;
Existem muitos pinos que possuem funções múltiplas (compartilhadas).
Por exemplo: os pinos 23 e 24, além de serem pinos normais de I/O (entrada ou
saida) também são os pinos D+ e D- para conexão ao conector USB, caso se desejasse
fazer este tipo de comunicação serial.
A foto abaixo ilustra o aspecto físico deste Microcontrolador, que pode ser
encontrado em encapsulamento dip, facilitando a construção de protótipos artesanais:
Figura 2 - Aspecto físico
Este micrococontrolador admite várias opções de clock. Nessa implementação, foi
escolhido um oscilador interno com cristal de quartzo externo de frequência 20 MHz, com
a opção PLL habilitada, o que faz com que o clock interno deste microcontrolador seja de
48 MHz.
4. Acionamento do Triac e módulo de Potência
Para controlar a resistência de aquecimento AC foi implementado um controle
digital do ângulo de disparo do TRIAC, entre 0 e 180 graus.
O momento do disparo é determinado pelo microcontrolador PIC.
O circuito de acionamento da parte de potência é mostrado abaixo:
Foi utilizado no protótipo um triac modelo TIC263-D, capaz de suportar correntes
de até 25 ampéres e tensões de até 600 volts.
Figura 5 – Circuito de acionamento do Triac com opto-diac MOC3020
5. Controle da Potência na carga AC
O circuito com o tiristor TIC263D entrega à carga uma senóide “recortada”, que ao
osciloscópio se assemelha à figura abaixo:

Figura 6 - Senóide recortada pela ação do tiristor
A potência instantânea fornecida pelo Triac à resistência do aquecedor, cuja unidade
é o watt (W), é dada pelo produto da tensão aplicada pela corrente que flui no aquecedor:
onde v(t) e i(t) são respectivamente a tensão e a intensidade de corrente no instante t.
A potência instântanea pode também ser escrita como:
Definindo-se a Função X(t) como:
E lembrando-se da definição de Potência Média ao longo de um semi-ciclo de
período pi:
Onde w = 2 .pi .F é a frequência angular da senóide, dada em radianos/segundo
A Potência Média entregue à carga pode ser calculada, no intervalo entre 0 e To,
por :
no domínio do tempo.
Por outro lado, a tensão instantânea v(t) pode ser expressa por:

=
0
0
2
0
) (
1
) (
T
dt t X
T
t P
) ( ). ( ) ( t i t v t p =
[Eq. 1]
R t v t p / ) ( ) (
2
=
R
t v
t X
) (
) ( =

=
π
π
0
) ( ). (
1
wt d wt p P
media
[Eq. 2]
[Eq. 3]
[Eq. 4]
[Eq. 5]
( )

=
o
T
T
o
média
dt t
T
A
P . 120 sen
2
2
π
[Eq. 7]
Onde :
A: amplitude da senóide em volts (V) e
que resulta, substituindo na Eq. 5:
Usando-se a identidade trigonométrica:
Substituindo na Eq. 7 e resolvendo a integral para o intervalo To< t <Ta, resulta:
A Eq. 9 dá a Potência Média por semi-ciclo da senóide, em função do tempo de
acionamento Ta , que é a variável de saída do controlador proposto.
6 - Firmware de Controle
O Microcontrolador determina o momento de disparo do optoisolador MOC3020
(trata-se na verdade de um opto-diac, próprio para acionamento de triacs) através do
seguinte algoritmo:
) . sen( . ) ( t A t v ω =
[Eq. 6]
π ω 120 =
( ) ) 2 cos( 1
2
1
) ( sen
2
wt wt − = [Eq. 8]
( )

+ − =
π
π
240
) . . 240 sen(
2
0
0
2
A
A media
T
T T
T
A
P
[Eq. 9]
1 – detecta o momento de passagem da senóide da rede pelo zero (zero-crossing);
Neste momento, o fluxo do programa desvia para a rotina de interrupção INT_EXT no
código fonte do programa;
2 – dispara o Timer3 do PIC, de modo a determinar um tempo entre 0 e 8,33 ms,
que corresponde a meio-ciclo da senóide (0 até 180 graus);
3 – Os flags de interrupção INT0IF e TMR3IF são limpos manualmente pelo
software;
4 – após o tempo determinado pelo TMR3, ocorre o disparo do triac, através do
nível lógico aplicado ao led do opto-isolador.
Essa rotina foi implementada usando-se a interrupção gerada pelos pulsos do detector de
zero-crossing e foi selecionado o modo rápido (FAST) de atendimento da interrupção, para
evitar atrasos no tratamento e chamada dessa rotina.
O trecho do código-fonte que efetua o controle do ângulo de disparo do Triac é
mostrado abaixo, escrito para o compilador PCHW da CCS (Ref. 1):
#INT_EXT FAST
void TRATA_ZC (void ) {
//caso seja interrupção no pino RB0, interrupção de Zero_Cross
if (INT0IF==1)
{ INT0IF=0; // limpa Flag da interrupção
Pstate=0;
output_low(PWM); // inibe o triac
set_timer3(65535 - T_Low); // define o angulo de disparo do TRIAC
TMR3ON =1; // Habilita a contagem do TIMER_3
}
else
{
if(TMR3IF==1)
{ TMR3IF=0; // limpa o flag de interrupção do TIMER3
if (Pstate==1)
{ Pstate=0;
TMR3ON=0; // desliga a contagem do TMR3
}
else
{ output_high(PWM);
Pstate=1;
set_timer3(65535-pulso); // define a largura do pulso
// do disparo
}
}
} } //TRATA_ZC
Com o triac, sendo o ângulo de disparo igual nos dois semi-ciclos, a forma de onda da
tensão na carga é simétrica e portanto seu valor médio é nulo.
Conforme demonstrado anteriormente (e simplificando-se a equação), a tensão
eficaz aplicada à resistência em função do ângulo “alfa” de disparo é, para rede de 127
volts, dada por:
Pela Equação (2), a potência eficaz aplicada na resistência será:
π
α
π
α
4
2 sen
2 2
1
. 2 . 127 + − =
eficaz
V
Eq. [10]
R P /
4
2 sen
2 2
1
. ) 127 .( 2
2
|
¹
|

\
|
+ − =
π
α
π
α
Eq. [11]
onde R é o valor da resistência de carga em ohms.
7 - Filtro “Snubber”
Como melhoria adicional a este circuito, recomenda-se acrescentar um resistor de
100 ohms em série com um capacitor de 10 nF em paralelo com os terminais T1 e T2 do
Triac, com a finalidade de se reduzir a emissão de harmônicas na rede de energia, conforme
é também mostrado na figura acima. Este filtro RC série é conhecido na literatura como
“snubber” e tem por função atenuar harmônicas e deformações na senóide da rede,
provocadas pelas rápidas comutações do triac.
8 - Filtro contra EMI (Eletromagnetic Interference) :
Em aplicações onde uma carga indutiva necessite ser controlada pelo triac, é
necessário proteger o circuito e a rede de energia dos surtos de tensão gerados pela rápida
comutação do triac, os quais podem causar interferências em frequências de rádio de ondas
médias e baixas, tipicamente entre 100 KHz e 5 MHz.
Um filtro LC mais elaborado pode ser implementado com esta finalidade, como
mostrado na figura abaixo:
Figura 7 -Filtro contra EMI sugerido
São utilizados um indutor de 200 uH (com fator de mérito Q > 100) e um capacitor
de 100 nF com isolação mínima de 400 volts.
As equações que descrevem o filtro acima sugerido, onde “fo” é a frequência central
de sintonia, são :
Este filtro tem um pólo duplo na frequência de 35 kHz, que é suficientemente mais
alto do que a frequência da rede AC (60 Hz) para prevenir algum desvio de fase adicional
ou alguma atenuação da tensão da linha.
9 - Outra forma de controle de Potência:
Uma outra maneira para prevenir distorções na senóide da linha de energia AC é
usar pacotes de ondas. Ao invés de se disparar o triac continuamente em ângulo de fase
variável, entrega-se à carga semi-ciclos inteiros de senóide.
Este método tem a desvantangem de produzir um controle nada suave de energia na
carga: uma lâmpada, por exemplo, ao invés de ter sua luminosidade variando
continuamente, passaria a piscar. Entretanto, este efeito é irrelevante se a finalidade
desejada for apenas o controle da temperatura de uma resistência, como no caso em estudo.
Por exemplo: Deseja-se um Controle de 30% da Potencia Total; estipula-se um
periodo de controle total de 20 segundos, e uma resolução de Controle de 0,2 seg (200 ms).
kHz
LC
fo
LC
o
LC s
s H 6 . 35
1
2
1 1
1
1
) (
2
= × = ⇒ = ⇒
+
=
π
ω
Eq. [12]
Assim, para que tenhamos 30% da Potência total na carga, mantemos o triac
disparado durante 30 x 0,2 = 6 segundos a cada 20 segundos, repetindo-se sempre este
ciclo. Para evitar um acionamento “aos trancos” da carga (distribuição desigual da potência
no tempo) poder-se-ia utilizar o Algoritmo de Bresenham para distribuir igualmente estes
6 segundos dentro do período total de 20 segundos (por exemplo).
10 - Algoritmo de Bresenham:
Embora originalmente desenvolvido para aplicações em Computação Gráfica (trata-
se de um algoritmo matemático que foi originalmente desenvolvido para otimizar o traçado
de retas em diagonais e otimizar desenhos de texturas), este algoritmo, quando aplicado ao
programa do Microcontrolador, permite distribuir N ciclos de senóide igualmente dentro de
um periodo M de tempo de maneira a equiparticionar a energia (Ref. 16).
Se a potência for ajustada para 50% do total, a cada 20 segundos não ocorrerá
primeiro 10 segundos de condução do triac (ON) e 10 segundos desligado (OFF) depois.
Pelo contrário, este algoritmo possibilitará um controle de 0.2 Seg ON, 0.2 Seg
OFF, 0.2 Seg ON, 0.2 Seg. OFF e assim por diante.
Figura 8 - Distribuição dos pulsos do triac ao longo do tempo, de acordo com o Algoritmo proposto.
Para testar este algoritmo, foi escrito uma rotina no PC utilizando-se o compilador
DevC++, a qual é listada abaixo:
------------------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int M,N,E,I,D ;
while (1)
{
printf("\n Algoritmo de Bresenham – distribui igualmente N ciclos dentro de M
segundos");
printf("\n ");
printf("\n Enter M: ");
scanf("%d",&M);
printf(" Enter N: ");
scanf("%d",&N);
printf("\n ");
E= 2*N - M;
for(I=0 ; I<M ; I++)
{
if (E>=0)
{
E=E + 2*(N-M);
printf("1 ");
}
else
{
E=E + 2*N;
printf("0 ");
}
}
printf("\n ");
}
// system("PARADO");
return 0;
}
-----------------------------------------------------------------------------------------
Alguns testes foram feitos com o Algoritmo de Bresenham e com esta forma de
Controle do Triac.
Entretanto, optou-se aqui neste projeto pela forma de controle de ângulo de disparo
proposta anteriormente, por possibilitar um controle mais preciso e mais suave da potência
aplicada na carga. Essa segunda idéia é melhor quando se deseja menor produção de
harmônicos na rede.
11 - Circuito monitor de falhas no Triac:
Ainda como outra idéia interessante a ser acrescentada, sugere-se o uso de um LED
(diodo emissor de luz) em paralelo com o triac, com a finalidade de indicar a queima deste
componente.
Quando o triac é danificado irremediavelmente, geralmente tal dano manifesta-se
por um curto-circuito definitivo entre seus terminais T1 e T2.
Um triac em curto provocará um aquecimento exagerado da resistência de
aquecimento, sem controle.
Para monitorar este eventual curto-circuito no triac, sugere-se acrescentar o seguinte
circuito:
Circuito monitor de falhas
No circuito da figura acima, o LED1 acenderá em diversas intensidades enquanto o
triac estiver operando normalmente, ainda que acenda com pouco brilho.
Entretanto, em caso de queima do triac por curto-circuito, este led irá se apagar
definitivamente, porquanto não existirá diferença de potencial entre os terminais do resistor
R1 e do diodo D2.
A função dos diodos D1 e D2 é proteger o próprio led contra tensões reversas da
rede AC e os resistores R1 e R2 limitam as correntes que circulam pelos diodos a um valor
seguro.
R3 e C1 compõe o circuito de filtro “snubber” já discutido acima.
O filtro LC não é mostrado nesta figura, por uma questão de simplicidade no
entendimento.
12 - CONCLUSÃO:
Os dois métodos estudados são efetivos no Controle do disparo de triacs usando-se
microcontrolador.
O primeiro método, que faz uso do sistema PPM, é recomendado para cargas que exigem
linearidade no controle, tais como motores AC monofásicos e lâmpadas de iluminação
incandescentes.
O segundo método, baseado no controle de pacotes de períodos completos da senóide e no
algoritmo de Bresenham tem a vantagem de produzir menor quantidade de harmonicas e
EMI, mas tem a desvantagem de ser pouco linear no que se refere ao controle da carga.
Esse segundo método é recomendável apenas para resistências de aquecimento.
Destarte, ambos os métodos são válidos e é a aplicação e o elemento a ser controlado que
definem qual será o escolhido.
APÊNDICE 1 – FIRMWARE PARA O CONTROLE DO TIPO PPM
//----------------------------------------------------------------------------
//
// CONTROLE DE DISPARO DO TRIAC
// PROGRAMA TESTE ESCRITO EM 10/5/2009
// vers. 2.0
//----------------------------------------------------------------------------
#include <18F4550.h>
#DEVICE ADC=10
#include <regs_18fxx2.h>
#DEVICE HIGH_INTS=TRUE // Use this option for
// high or low priority interrupts on the PIC18.
#DEVICE *=16
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN, nomclr
#use delay(clock=48000000)
//------------------------------------------------
#define limpa_display lcd_escreve('\f');
#define bt1 pin_D1
#define bt2 pin_D0
#define bt3 pin_D2
#define PWM pin_c2
//-------------------------------------------------
//-------------------------------------------------------------
// Variaveis Globais
int16 T_Low=0; //angulo de disparo do TRIAC em us
int16 pulso=0;
short int Pstate=0, led=0;
int16 x=0;
float alfa; // angulo de disparo do triac, em graus
float alfa_rad; // angulo de disp triac em readianos
float PN; //informa o valor da Potencia normalizada
float A10, A11, A12, A13, A14, A15;
//---------------------------------------------------------------
#include <lcd_unisal.c>
#include <math.h>
//-----------------------------------------------------------------------------
#INT_EXT FAST
void TRATA_ZC(void ){
//caso seja interrupção no pino RB0, interrupção de Zero_Cross
if (INT0IF==1)
{ INT0IF=0; // limpa Flag da interrupção
Pstate=0;
output_low(PWM); // inibe o triac
set_timer3(65535-T_Low); //define o angulo de disparo do TRIAC
TMR3ON =1; //Habilita a contagem do TIMER_3
}
else
{
if(TMR3IF==1)
{ TMR3IF=0; //limpa o flag de interrupção do TIMER3
if (Pstate==1)
{ Pstate=0;
TMR3ON=0; //desliga a contagem do TMR3
}
else
{ output_high(PWM);
Pstate=1;
set_timer3(65535-pulso); //define a largura do pulso
// do disparo
}
}
}
} //TRATA_ZC
//-----------------------------------------------------------------------------
void main(void) {
SETUP_TIMER_3( T3_INTERNAL| T3_DIV_BY_8 );
SET_TIMER3(65535-T_Low);
EXT_INT_EDGE( L_TO_H );
//Inicializa o LCD e mostra as telas de apresentação no LCD
lcd_ini( );
delay_ms(300);
ENABLE_INTERRUPTS(INT_EXT );
ENABLE_INTERRUPTS( INT_TIMER3 );
ENABLE_INTERRUPTS ( GLOBAL );
pulso =500;
// limites para T_Low:
// max: 12300 min:200
// 6150 = metade do ciclo
T_Low =6150; // tempo em que a saida do PWM fica nivel baixo
X=6150;
limpa_display ;
lcd_pos_xy(1,1);
printf(lcd_escreve,"V=%05lu ",X) ;
lcd_pos_xy(1,2);
printf(lcd_escreve,"Ajuste Manual ") ;
//----------------------------
// LOOP PRINCIPAL
while(TRUE){
led=!led ;
OUTPUT_BIT(PIN_B7, led); //APAGA O led
//calculo do angulo de disparo do TRIAC:
alfa = (float) (0.007438*(x-200)); //alfa é dado em GRAUS)
//calculo da Potência Normalizada, de 0 até 100%
// 1- tranforma a Potencia para radianos
alfa_rad = (float) (3.1416*alfa)/180 ;
// 2- calcula a Potência Normalizada e entrega o resultado entre 0 e 100%
A10 = (float) 2*alfa_rad ;
A11 = (float) sin( A10 ) ;
A12 = (float) A11 / 12.5664 ;
A13 = (float) alfa_rad/2;
A14 = (float) ( 0.5 - A13 + A12 ) ;
A15 = (float) sqrt( A14) ;
PN = (float) 115.66 * A15 ;
//PN = (float) 141.42* sqrt( 0.5 - (alfa_rad/2) + (sin(2*alfa_rad)/12.566));
if (!input(bt1)) { if(x>200) x=x-10 ;
lcd_pos_xy(1,1);
printf(lcd_escreve,"V=%05lu ",X) ;
lcd_pos_xy(9,1);
printf(lcd_escreve,"A=%2.2F ",alfa) ;
lcd_pos_xy(1,2);
printf(lcd_escreve,"Power=%2.2F",PN) ;
lcd_pos_xy(12,2);
lcd_escreve(37) ; // imprime caractere % no final da linha
lcd_pos_xy(13,2);
printf(lcd_escreve," ");
delay_ms(50);
}
if (!input(bt2)) { if(x<12300) x=x+10 ;
lcd_pos_xy(1,1);
printf(lcd_escreve,"V=%05lu ",x) ;
lcd_pos_xy(9,1);
printf(lcd_escreve,"A=%2.2F ",alfa) ;
lcd_pos_xy(1,2);
printf(lcd_escreve,"Power=%2.2F",PN) ;
lcd_pos_xy(12,2);
lcd_escreve(37) ; // imprime caractere % no final da linha
lcd_pos_xy(13,2);
printf(lcd_escreve," ");
delay_ms(50); }
if (!input(bt3)) {delay_us(10); }
T_Low = x;
delay_ms(50);
}//while(true)
}//main
REFERÊNCIAS BIBLBIOGRÁFICAS:
1 - CCS PIC C C COMPILER - Manual de Referência do Compilador, www.ccsinfo.com
2 - BURIAN JR, Yaro: (1997): Circuitos Elétricos, Editora da Unicamp.
3- CARVALHO, J. L. Martins (2000): Sistemas de Controle Automático, Editora LTC,
cap. 1.
4 - CASTRO, TANAKA, Carlos A., Márcia (1994) : Circuitos de Corrente Alternada – um
curso introdutório, Editora da Unicamp.
5 - DESBOROUGH, L.; NORDH, P.N e MILLER, R. (2001): Control System Reliability -
Process Out of Control. In Tech with Industrial Computing, August.
6 - FAMBRINI, Francisco (2006): Uma Solução por Software para implementar pwm em
qualquer microcontrolador PIC, Revista Saber Eletrônica n. 402, pp.17,18,19.
7 - LJUNG, L. (1987): System Identification, Theory for the User. New Jersey. Prentice
Hall.
8 - MICROCHIP Semiconductores (2008) : Datasheet do Microcontrolador PIC18F4550,
site do fabricante.
9 - MOHAN, Undeland and Robins (1994) : Power Electronics: Converters, Applications
and Desing, 2
a
Edição, John Wiley.
10 - NATIONAL Semiconductores (1992): Datasheet do componente MOC3020, opto-
isolador para disparo de triac;
11 - PEREIRA, Fabio (2001): Microcontroladores PIC – Linguagem C, Ed. Érica, 2
a
Edição.
12 - PHILLIPS, C. L. e NÄGLE, H. T. (1995): Digital Control System Analysis and
Design, 3rd Edition, Prenctice-Hall.
13 - S. BUSO (1995): Digital Control of Power Converters, FEEC, Editora da Unicamp.
14 - SILVESTRE, Fernando (2008): Notas de Aula da Disciplina “Identificação de
Sistemas” , Unisal, Campinas.
15 - RASHID, M. H. (1993): Power Electronics, Circuits, Devices and Applications, 2
a
Edição, Prentice-Hall, 1993.
16 - Zero-error 1 second Timer - www.romanblack.com/one_sec.htm, site na internet;

Abstract: In this paper, the author describes two techniques for power control in the AC single phase system, through the use of thyristors for AC (Triacs), from PIC Microcontrollers. In fact, the use of microcontroller to control the shot of the triacs are subject discussed with interest and little literature has been written about it, because it involves precise timing in controlling the shot angle of the semiconductor. The first method describes the angular control of the sinusoid and makes use of the microcontroller and timer interrupt routines written in language C. This method is also called PPM (Pulse Position Modulation). The second method involves the concept of complete cycles of the wave and is based on the Bresenham algorithm. Both techniques were tested by the author in the laboratory and the codes written to the microcontroller was written in C language, using the compiler PCWH manufactured by CCS. Filter systems (snubber, LC) are also discussed as a need to be implemented due to the emission of harmonics and EMI caused by the rapid switching of the triacs.

INTRODUÇÃO: 1. PPM É uma sigla que significa Pulse Position Modulation, ou Modulação por Posição de Pulso. É a forma de modulação de sinal na qual os M bits de uma mensagem são

codificados transmitindo-se um único pulso em uma das 2^M trocas de tempo possíveis. Isto é repetido a cada T segundos, tal que a taxa de bits transmitidos seja M/T bits por segundo. A característica de um sistema do tipo PPM é que dentro de um período de tempo T, apenas um pulso é gerado. O que muda é o instante no qual tal pulso é produzido.

só desligando ao final de um ciclo da senóide. . basta apenas um breve pulso de disparo no gate do TRIAC para que este comece a conduzir. Como necessita-se controlar tensão alternada. disparado pelo sinal PPM Os Triacs (Tiristores para Corrente Alternada) e os SCR (Retificadores Controlados de Silício). a escolha recaiu sobre um TRIAC do tipo TIC263 D.TRIAC controlando resistência de carga. Assim. uma vez que recebem um pulso de disparo no seu terminal G (gate) permanecem na condição de “disparo” (conduzindo a corrente) até que a senóide da rede cruze novamente o zero.Figura 1 – Gráfico ilustrando o sistema PPM O sistema PPM foi o adotado nesse Controlador porque o elemento resistivo de aquecimento funciona diretamente na rede AC de 127 volts. Figura 2 .

Detetor de Passagem pelo Zero (Zero-Crossing) A função desta etapa do circuito é produzir uma onda retangular a cada vez que a senóide da rede passar pelo zero. . para proporcionar o adequado sincronismo no disparo do Triac.A figura abaixo ilustra o uso do PPM para controle do ângulo de disparo do TRIAC em função da senóide de 60 Hz (período aproximado de 16.666 ms ): Figura 3 – Efeito do PPM sobre o momento de disparo do triac 2. Fornece uma amostra da senóide da rede para que o Microcontrolador decida o momento adequado de iniciar o timer que controlará o PPM.

A solução encontrada. Tal isolamento torna o sistema seguro e robusto com relação aos picos de energia que eventualmente podem ser originados a partir da rede. observando que os terras de um lado e de outro do opto-acoplador são diferentes.com) por ser um dispositivo de tecnologia RISC de última geração na data em que este trabalho foi desenvolvido. faz uso de um acoplador óptico do tipo TIL111 da National Semiconductors.microchip. servindo como ótima referência para o momento de disparo do Triac. . O circuito acima produz uma onda muito próxima de retangular nos instantes exatos em que a senóide da rede atravessa o zero. conforme mostrada no esquema abaixo Figura 1 Circuito detetor de passagem pelo zero (zero-crossing) +5V Ponte Retificadora R2 127 VAC R1 A TIL 111 C E K 22K É importante frisar que existe isolamento galvânico entre a rede de 127 volts e o circuito digital. 3. levando-se em conta a segurança no isolamento do circuito do controlador da rede de energia. Microcontrolador A escolha recaiu para o modelo PIC18F4550 do fabricante Microchip (www.

.WatchDogTimer.Figura 4- Pinagem do Microcontrolador usado na implementação.Conversor AD interno com resolução de 8 ou 10 bits.2048 bytes de memória RAM embutida. .256 bytes de memória para dados não voláteis. com tecnologia Nanowatt ® para baixo consumo de energia. . com mais de 100.32 Kbytes de Memória de programa interna. 3 timers independentes.Arquitetura otimizada para compilador C. . 2 canais de PWM por hardware.000 ciclos de leitura e apagamento. . . com 35 I/Os (entradas/saídas). Algumas características deste dispositivo são: 40 pinos em encapsulamento DIP. com velocidade de até 12 MIPs. Hardware preparado para comunicação USB 2.clock máximo de até 48 MHz.0 Memória Flash avançada. . . multiplexado com até 13 canais de leitura. Alta Performance.

Acionamento do Triac e módulo de Potência Para controlar a resistência de aquecimento AC foi implementado um controle digital do ângulo de disparo do TRIAC. O momento do disparo é determinado pelo microcontrolador PIC. A foto abaixo ilustra o aspecto físico deste Microcontrolador. Nessa implementação. com a opção PLL habilitada. . o que faz com que o clock interno deste microcontrolador seja de 48 MHz. caso se desejasse fazer este tipo de comunicação serial. que pode ser encontrado em encapsulamento dip. capaz de suportar correntes de até 25 ampéres e tensões de até 600 volts. O circuito de acionamento da parte de potência é mostrado abaixo: Foi utilizado no protótipo um triac modelo TIC263-D. Por exemplo: os pinos 23 e 24. entre 0 e 180 graus.Existem muitos pinos que possuem funções múltiplas (compartilhadas). além de serem pinos normais de I/O (entrada ou saida) também são os pinos D+ e D.para conexão ao conector USB. foi escolhido um oscilador interno com cristal de quartzo externo de frequência 20 MHz. facilitando a construção de protótipos artesanais: Figura 2 - Aspecto físico Este micrococontrolador admite várias opções de clock. 4.

Controle da Potência na carga AC O circuito com o tiristor TIC263D entrega à carga uma senóide “recortada”.Figura 5 – Circuito de acionamento do Triac com opto-diac MOC3020 5.Senóide recortada pela ação do tiristor . que ao osciloscópio se assemelha à figura abaixo: Figura 6 .

pi . T0 ∫X 0 2 (t )dt [Eq.d (wt ) π 0 1 [Eq. cuja unidade é o watt (W). 4] w = 2 .F é a frequência angular da senóide. 5] Por outro lado.i(t ) A potência instântanea pode também ser escrita como: [Eq. p(t ) = v 2 (t ) / R Definindo-se a Função X(t) como: [Eq.A potência instantânea fornecida pelo Triac à resistência do aquecedor. é dada pelo produto da tensão aplicada pela corrente que flui no aquecedor: p(t ) = v(t ). por : 1 P(t ) = T0 no domínio do tempo. 3] E lembrando-se da definição de Potência Média ao longo de um semi-ciclo de período pi: π Pmedia = Onde ∫ p(wt ). no intervalo entre 0 e To. a tensão instantânea v(t) pode ser expressa por: . 2] X (t ) = v(t ) R [Eq. dada em radianos/segundo A Potência Média entregue à carga pode ser calculada. 1] onde v(t) e i(t) são respectivamente a tensão e a intensidade de corrente no instante t.

π . substituindo na Eq. próprio para acionamento de triacs) através do seguinte algoritmo: . 7 e resolvendo a integral para o intervalo To< t <Ta.TA )    240π   [Eq. em função do tempo de acionamento Ta . 5: Pmédia A2 o = sen 2 (120π .t )dt ∫ To T T [Eq.t ) e [Eq. 9] A Eq.Firmware de Controle O Microcontrolador determina o momento de disparo do optoisolador MOC3020 (trata-se na verdade de um opto-diac. 7] Usando-se a identidade trigonométrica: sen 2 ( wt ) = 1 (1 − cos(2wt )) 2 [Eq. 8] Substituindo na Eq. 6 . 6] A: amplitude da senóide em volts (V) ω = 120π que resulta.Onde : v(t ) = A. 9 dá a Potência Média por semi-ciclo da senóide. que é a variável de saída do controlador proposto. resulta: Pmedia A2 = 2T0  (T0 − TA ) + sen(240.sen(ω.

de modo a determinar um tempo entre 0 e 8. // limpa Flag da interrupção Pstate=0. Essa rotina foi implementada usando-se a interrupção gerada pelos pulsos do detector de zero-crossing e foi selecionado o modo rápido (FAST) de atendimento da interrupção. ocorre o disparo do triac. para evitar atrasos no tratamento e chamada dessa rotina. através do nível lógico aplicado ao led do opto-isolador. 2 – dispara o Timer3 do PIC. // Habilita a contagem do TIMER_3 } else . Neste momento.T_Low).1 – detecta o momento de passagem da senóide da rede pelo zero (zero-crossing).33 ms. O trecho do código-fonte que efetua o controle do ângulo de disparo do Triac é mostrado abaixo. 4 – após o tempo determinado pelo TMR3. // inibe o triac output_low(PWM). escrito para o compilador PCHW da CCS (Ref. set_timer3(65535 . // define o angulo de disparo do TRIAC TMR3ON =1. interrupção de Zero_Cross if (INT0IF==1) { INT0IF=0. que corresponde a meio-ciclo da senóide (0 até 180 graus). 3 – Os flags de interrupção INT0IF e TMR3IF são limpos manualmente pelo software. o fluxo do programa desvia para a rotina de interrupção INT_EXT no código fonte do programa. 1): #INT_EXT FAST void TRATA_ZC (void ) { //caso seja interrupção no pino RB0.

 − / R 4π   2 2π Eq. Conforme demonstrado anteriormente (e simplificando-se a equação). a potência eficaz aplicada na resistência será:  1 α sen 2α  + P = 2. para rede de 127 volts. [11] . TMR3ON=0.{ if(TMR3IF==1) { TMR3IF=0. a forma de onda da tensão na carga é simétrica e portanto seu valor médio é nulo. // limpa o flag de interrupção do TIMER3 if (Pstate==1) { Pstate=0.(127) 2 . sendo o ângulo de disparo igual nos dois semi-ciclos. a tensão eficaz aplicada à resistência em função do ângulo “alfa” de disparo é. 1 α sen 2α − + 2 2π 4π Eq. // define a largura do pulso // do disparo } } } } //TRATA_ZC Com o triac. [10] Pela Equação (2). set_timer3(65535-pulso). Pstate=1. dada por: Veficaz = 127. } // desliga a contagem do TMR3 else { output_high(PWM). 2.

conforme é também mostrado na figura acima. recomenda-se acrescentar um resistor de 100 ohms em série com um capacitor de 10 nF em paralelo com os terminais T1 e T2 do Triac. tipicamente entre 100 KHz e 5 MHz. Este filtro RC série é conhecido na literatura como “snubber” e tem por função atenuar harmônicas e deformações na senóide da rede. os quais podem causar interferências em frequências de rádio de ondas médias e baixas. 7 . Um filtro LC mais elaborado pode ser implementado com esta finalidade.Filtro contra EMI (Eletromagnetic Interference) : Em aplicações onde uma carga indutiva necessite ser controlada pelo triac. com a finalidade de se reduzir a emissão de harmônicas na rede de energia. 8 . como mostrado na figura abaixo: Figura 7 -Filtro contra EMI sugerido .Filtro “Snubber” Como melhoria adicional a este circuito.onde R é o valor da resistência de carga em ohms. é necessário proteger o circuito e a rede de energia dos surtos de tensão gerados pela rápida comutação do triac. provocadas pelas rápidas comutações do triac.

. estipula-se um periodo de controle total de 20 segundos.Outra forma de controle de Potência: Uma outra maneira para prevenir distorções na senóide da linha de energia AC é usar pacotes de ondas.6kHz LC 2π LC Eq. este efeito é irrelevante se a finalidade desejada for apenas o controle da temperatura de uma resistência. 9 . Ao invés de se disparar o triac continuamente em ângulo de fase variável.São utilizados um indutor de 200 uH (com fator de mérito Q > 100) e um capacitor de 100 nF com isolação mínima de 400 volts. são : H (s) = 1 ⇒ ωo = s LC + 1 2 1 1 1 ⇒ fo = × = 35. e uma resolução de Controle de 0. Por exemplo: Deseja-se um Controle de 30% da Potencia Total. [12] Este filtro tem um pólo duplo na frequência de 35 kHz. ao invés de ter sua luminosidade variando continuamente. onde “fo” é a frequência central de sintonia.2 seg (200 ms). As equações que descrevem o filtro acima sugerido. passaria a piscar. por exemplo. entrega-se à carga semi-ciclos inteiros de senóide. Entretanto. Este método tem a desvantangem de produzir um controle nada suave de energia na carga: uma lâmpada. que é suficientemente mais alto do que a frequência da rede AC (60 Hz) para prevenir algum desvio de fase adicional ou alguma atenuação da tensão da linha. como no caso em estudo.

2 Seg. 0. Figura 8 . 16). Pelo contrário. para que tenhamos 30% da Potência total na carga.2 Seg ON. Para evitar um acionamento “aos trancos” da carga (distribuição desigual da potência no tempo) poder-se-ia utilizar o Algoritmo de Bresenham para distribuir igualmente estes 6 segundos dentro do período total de 20 segundos (por exemplo).Algoritmo de Bresenham: Embora originalmente desenvolvido para aplicações em Computação Gráfica (tratase de um algoritmo matemático que foi originalmente desenvolvido para otimizar o traçado de retas em diagonais e otimizar desenhos de texturas). quando aplicado ao programa do Microcontrolador.2 Seg ON.Distribuição dos pulsos do triac ao longo do tempo.2 Seg OFF. este algoritmo. este algoritmo possibilitará um controle de 0. Se a potência for ajustada para 50% do total. . permite distribuir N ciclos de senóide igualmente dentro de um periodo M de tempo de maneira a equiparticionar a energia (Ref. OFF e assim por diante. repetindo-se sempre este ciclo. de acordo com o Algoritmo proposto. 0. 10 .2 = 6 segundos a cada 20 segundos.Assim. 0. a cada 20 segundos não ocorrerá primeiro 10 segundos de condução do triac (ON) e 10 segundos desligado (OFF) depois. mantemos o triac disparado durante 30 x 0.

E. foi escrito uma rotina no PC utilizando-se o compilador DevC++. } ----------------------------------------------------------------------------------------- Alguns testes foram feitos com o Algoritmo de Bresenham e com esta forma de Controle do Triac.&M). char *argv[]) { int M. printf("0 "). } } printf("\n ").h> int main(int argc. printf("\n ").M. return 0. scanf("%d". printf("\n Enter M: "). .N. E= 2*N . I++) { if (E>=0) { E=E + 2*(N-M). while (1) { printf("\n Algoritmo de Bresenham – distribui igualmente N ciclos dentro de M segundos"). printf(" Enter N: "). a qual é listada abaixo: -----------------------------------------------------------------------------------#include <stdio. printf("1 "). for(I=0 .h> #include <stdlib.D . scanf("%d".I. I<M .Para testar este algoritmo. printf("\n "). } // system("PARADO").&N). } else { E=E + 2*N.

optou-se aqui neste projeto pela forma de controle de ângulo de disparo proposta anteriormente. Para monitorar este eventual curto-circuito no triac. sugere-se o uso de um LED (diodo emissor de luz) em paralelo com o triac. Um triac em curto provocará um aquecimento exagerado da resistência de aquecimento. sugere-se acrescentar o seguinte circuito: Circuito monitor de falhas . Essa segunda idéia é melhor quando se deseja menor produção de harmônicos na rede. Quando o triac é danificado irremediavelmente. por possibilitar um controle mais preciso e mais suave da potência aplicada na carga.Entretanto. com a finalidade de indicar a queima deste componente. 11 . sem controle.Circuito monitor de falhas no Triac: Ainda como outra idéia interessante a ser acrescentada. geralmente tal dano manifesta-se por um curto-circuito definitivo entre seus terminais T1 e T2.

O primeiro método. este led irá se apagar definitivamente. por uma questão de simplicidade no entendimento. O segundo método. o LED1 acenderá em diversas intensidades enquanto o triac estiver operando normalmente. Destarte.No circuito da figura acima.CONCLUSÃO: Os dois métodos estudados são efetivos no Controle do disparo de triacs usando-se microcontrolador. Entretanto. em caso de queima do triac por curto-circuito. mas tem a desvantagem de ser pouco linear no que se refere ao controle da carga. tais como motores AC monofásicos e lâmpadas de iluminação incandescentes. O filtro LC não é mostrado nesta figura. que faz uso do sistema PPM. é recomendado para cargas que exigem linearidade no controle. baseado no controle de pacotes de períodos completos da senóide e no algoritmo de Bresenham tem a vantagem de produzir menor quantidade de harmonicas e EMI. ainda que acenda com pouco brilho. A função dos diodos D1 e D2 é proteger o próprio led contra tensões reversas da rede AC e os resistores R1 e R2 limitam as correntes que circulam pelos diodos a um valor seguro. ambos os métodos são válidos e é a aplicação e o elemento a ser controlado que definem qual será o escolhido. . R3 e C1 compõe o circuito de filtro “snubber” já discutido acima. Esse segundo método é recomendável apenas para resistências de aquecimento. 12 . porquanto não existirá diferença de potencial entre os terminais do resistor R1 e do diodo D2.

#define bt1 pin_D1 #define bt2 pin_D0 #define bt3 pin_D2 #define PWM pin_c2 //------------------------------------------------- //------------------------------------------------------------// Variaveis Globais int16 T_Low=0.h> #DEVICE HIGH_INTS=TRUE // Use this option for // high or low priority interrupts on the PIC18. float alfa.h> //----------------------------------------------------------------------------#INT_EXT FAST void TRATA_ZC(void ){ //caso seja interrupção no pino RB0. A14. //--------------------------------------------------------------#include <lcd_unisal. led=0. nomclr #use delay(clock=48000000) //-----------------------------------------------#define limpa_display lcd_escreve('\f').APÊNDICE 1 – FIRMWARE PARA O CONTROLE DO TIPO PPM //---------------------------------------------------------------------------// // CONTROLE DE DISPARO DO TRIAC // PROGRAMA TESTE ESCRITO EM 10/5/2009 // vers. //Habilita a contagem do TIMER_3 } else { if(TMR3IF==1) { TMR3IF=0.PLL5.NOWDT. //angulo de disparo do TRIAC em us int16 pulso=0. A11. interrupção de Zero_Cross if (INT0IF==1) { INT0IF=0. 2. //define o angulo de disparo do TRIAC TMR3ON =1. // inibe o triac set_timer3(65535-T_Low). #DEVICE *=16 #fuses HSPLL.VREGEN. A15. em graus float alfa_rad.c> #include <math. // angulo de disp triac em readianos float PN. //limpa o flag de interrupção do TIMER3 if (Pstate==1) { Pstate=0. // angulo de disparo do triac. A12.h> #DEVICE ADC=10 #include <regs_18fxx2. int16 x=0.0 //---------------------------------------------------------------------------#include <18F4550. A13. . short int Pstate=0.NODEBUG.USBDIV. //informa o valor da Potencia normalizada float A10. output_low(PWM).NOPROTECT. // limpa Flag da interrupção Pstate=0.CPUDIV1.NOLVP.

if (!input(bt1)) { if(x>200) x=x-10 . led). de 0 até 100% // 1. // tempo em que a saida do PWM fica nivel baixo X=6150.566)).X) . // 2.1). printf(lcd_escreve.42* sqrt( 0.TMR3ON=0. PN = (float) 115. printf(lcd_escreve.1). lcd_pos_xy(9. A14 = (float) ( 0. Pstate=1. printf(lcd_escreve. lcd_pos_xy(1.007438*(x-200)). //Inicializa o LCD e mostra as telas de apresentação no LCD lcd_ini( ). ENABLE_INTERRUPTS ( GLOBAL ). //APAGA O led //calculo do angulo de disparo do TRIAC: alfa = (float) (0. //PN = (float) 141.(alfa_rad/2) + (sin(2*alfa_rad)/12.A13 + A12 ) . set_timer3(65535-pulso). A12 = (float) A11 / 12. A13 = (float) alfa_rad/2. pulso =500. // limites para T_Low: // max: 12300 min:200 // 6150 = metade do ciclo T_Low =6150. lcd_pos_xy(1. OUTPUT_BIT(PIN_B7. //alfa é dado em GRAUS) //calculo da Potência Normalizada. ."Ajuste Manual ") . //define a largura do pulso // do disparo } } } } //TRATA_ZC //----------------------------------------------------------------------------void main(void) { SETUP_TIMER_3( T3_INTERNAL| T3_DIV_BY_8 ).5664 . //---------------------------// LOOP PRINCIPAL while(TRUE){ led=!led . limpa_display . A15 = (float) sqrt( A14) .1). lcd_pos_xy(1.66 * A15 .1416*alfa)/180 . SET_TIMER3(65535-T_Low). EXT_INT_EDGE( L_TO_H ). delay_ms(300). ENABLE_INTERRUPTS( INT_TIMER3 ).5 .calcula a Potência Normalizada e entrega o resultado entre 0 e 100% A10 = (float) 2*alfa_rad .2). //desliga a contagem do TMR3 } else { output_high(PWM).5 . A11 = (float) sin( A10 ) . ENABLE_INTERRUPTS(INT_EXT )."V=%05lu "."V=%05lu ".X) .tranforma a Potencia para radianos alfa_rad = (float) (3.

} T_Low = x. // imprime caractere % no final da linha lcd_pos_xy(13.2F". printf(lcd_escreve."A=%2.1).2). printf(lcd_escreve.2).PN) ."A=%2.alfa) .2F".alfa) ."Power=%2.2F ". lcd_escreve(37) .printf(lcd_escreve. lcd_pos_xy(9.2F ". lcd_pos_xy(12.2).2). } if (!input(bt2)) { if(x<12300) x=x+10 . lcd_pos_xy(12. delay_ms(50).2). printf(lcd_escreve.x) . // imprime caractere % no final da linha lcd_pos_xy(13. lcd_escreve(37) . printf(lcd_escreve. } if (!input(bt3)) {delay_us(10). printf(lcd_escreve." ").1)."V=%05lu ". lcd_pos_xy(1. }//while(true) }//main . delay_ms(50). lcd_pos_xy(1."Power=%2." "). printf(lcd_escreve.2). lcd_pos_xy(1.PN) . delay_ms(50).

.www. 2a Edição. H. 10 . 12 .PEREIRA..CARVALHO. 5 .MOHAN. 1993. 16 . 7 .PHILLIPS. 3rd Edition. Editora da Unicamp. 2a Edição. August. NORDH. Editora da Unicamp. BUSO (1995): Digital Control of Power Converters. 1. Undeland and Robins (1994) : Power Electronics: Converters. cap.18. site do fabricante. Prenctice-Hall.Manual de Referência do Compilador. Editora LTC. C..FAMBRINI. www.com/one_sec. R.Zero-error 1 second Timer . Francisco (2006): Uma Solução por Software para implementar pwm em qualquer microcontrolador PIC.19. 14 . J. (2001): Control System Reliability Process Out of Control. optoisolador para disparo de triac. 2a Edição. Revista Saber Eletrônica n. 3. Theory for the User. L. FEEC. Applications and Desing. Fabio (2001): Microcontroladores PIC – Linguagem C.htm.com 2 . 13 . Prentice Hall. 9 . pp. Márcia (1994) : Circuitos de Corrente Alternada – um curso introdutório. 6 .MICROCHIP Semiconductores (2008) : Datasheet do Microcontrolador PIC18F4550. TANAKA.CASTRO.LJUNG.CCS PIC C C COMPILER . 8 .romanblack. Ed. L.ccsinfo. Carlos A. (1993): Power Electronics. (1987): System Identification. Prentice-Hall.NATIONAL Semiconductores (1992): Datasheet do componente MOC3020.N e MILLER. 4 . 402. Unisal. Érica. John Wiley. L. Editora da Unicamp. 15 . 11 . Circuits. (1995): Digital Control System Analysis and Design.S. Fernando (2008): Notas de Aula da Disciplina “Identificação de Sistemas” . e NÄGLE. In Tech with Industrial Computing. P. site na internet. Devices and Applications.REFERÊNCIAS BIBLBIOGRÁFICAS: 1 . T.17. Yaro: (1997): Circuitos Elétricos. L. M. Campinas.BURIAN JR.RASHID.DESBOROUGH. New Jersey.SILVESTRE. H. Martins (2000): Sistemas de Controle Automático.

Sign up to vote on this title
UsefulNot useful