Você está na página 1de 22

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.

que dentro de um período de tempo T, apenas um pulso é gerado. O que muda

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.

alternada, a escolha recaiu sobre um TRIAC do tipo TIC263 D. Figura 2 - TRIAC controlando

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 ):

da senóide de 60 Hz (período aproximado de 16,666 ms ): Figura 3 – Efeito do

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)

127 VAC

+5V

Ponte Retificadora R1 TIL 111 A C 22K K E R2
Ponte Retificadora
R1
TIL 111
A
C
22K
K
E
R2

É 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.

Figura 4- Pinagem do Microcontrolador usado na implementação . Algumas características deste dispositivo são: -

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-

fazer este tipo de comunicação serial.

para conexão ao conector USB, caso se desejasse

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
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

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:

que ao osciloscópio se assemelha à figura abaixo: Figura 6 - Senóide recortada pela ação do

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:

p(t) = v(t).i(t)

[Eq. 1]

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:

p(t)

=

2

v (t)/ R

Definindo-se a Função X(t) como:

X

v t ( ) ( ) = t R
v t
( )
( ) =
t
R

[Eq. 2]

[Eq. 3]

E lembrando-se da definição de Potência Média ao longo de um semi-ciclo de

período pi:

Onde

P

media

=

1

0

(

p wt

).

d wt

(

)

[Eq. 4]

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.

P t

( ) =

1

T

0

T

0

0

X

2

t dt

( )

[Eq. 5]

Por outro lado, a tensão instantânea v(t) pode ser expressa por:

v(t) = A.sen(

Onde :

A: amplitude da senóide em volts (V)

e

.t)

=120

que resulta, substituindo na Eq. 5:

P

média

=

A

2

T

o

T

o

T

sen

2

(

120

)

. t dt

Usando-se a identidade trigonométrica:

sen

2

(

wt

)

=

1

2

(1

cos(2

wt

))

[Eq. 6]

[Eq. 7]

[Eq. 8]

Substituindo na Eq. 7 e resolvendo a integral para o intervalo To< t <Ta, resulta:

A Eq. 9

P media

=

A

2

2 T

0

(

T

0

T

A

)

+

T

A

)

240

[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:

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

código fonte do programa;

no

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

software;

limpos manualmente pelo

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

#INT_EXT FAST

void TRATA_ZC (void ) {

(Ref. 1):

//caso seja interrupção no pino RB0, interrupção de Zero_Cross if (INT0IF==1)

{ INT0IF=0;

Pstate=0;

output_low(PWM);

set_timer3(65535 - T_Low); TMR3ON =1;

}

else

//

limpa Flag da interrupção

// inibe o triac

// define o angulo de disparo do TRIAC

//

Habilita a contagem do TIMER_3

{

if(TMR3IF==1)

{ TMR3IF=0;

if (Pstate==1) { Pstate=0;

TMR3ON=0;

}

else { output_high(PWM);

// limpa o flag de interrupção do TIMER3

// desliga a contagem do TMR3

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

volts, dada por:

“alfa” de disparo é, para rede de 127

V eficaz

 
2.
2.

1

sen 2

= 127.

+

 

2

2

4

Eq. [10]

Pela Equação (2), a potência eficaz aplicada na resistência será:

P

=

2.(127) .   1

2

2

sen 2

+

2

4

/ R

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:

elaborado pode ser implementado com esta finalidade, como mostrado na figura abaixo: Figura 7 -Filtro contra

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 :

H

(

s

)

=

1

s

2

LC + 1

o

=

1 LC
1
LC

fo

=

1 1 2 LC
1
1
2
LC

=

35.6 kHz

Eq. [12]

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).

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,

OFF, 0.2 Seg ON,

0.2 Seg. OFF e assim por diante.

0.2 Seg

OFF, 0.2 Seg ON, 0.2 Seg. OFF e assim por diante. 0.2 Seg Figura 8 -

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.

harmônicos na rede.

Essa segunda idéia é melhor quando se deseja menor produção de

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, sem controle.

aquecimento

exagerado

da

resistência

de

Para monitorar este eventual curto-circuito no triac, sugere-se acrescentar o seguinte

circuito:

monitorar este eventual curto-circuito no triac, sugere-se acrescentar o seguinte circuito: Circuito monitor de falhas

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

//----------------------------------------------------------------------------

//

//

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>

PPM

#DEVICE HIGH_INTS=TRUE //

// 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)

Use this option for

//------------------------------------------------

#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;

float A10, A11, A12, A13, A14, A15;

//informa o valor da Potencia normalizada

//---------------------------------------------------------------

#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

6150 = metade do ciclo

min:200

T_Low =6150; //

X=6150;

tempo em que a saida do PWM fica nivel baixo

limpa_display ;

lcd_pos_xy(1,1);

printf(lcd_escreve,"V=%05lu

lcd_pos_xy(1,2);

printf(lcd_escreve,"Ajuste Manual

",X) ;

") ;

//----------------------------

// 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 -

A15 = (float) PN = (float)

A13 + A12 ) ;

sqrt( A14) ; 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;