P. 1
Acionamento de Triacs_2

Acionamento de Triacs_2

|Views: 1.136|Likes:
Publicado pormartinbra

More info:

Published by: martinbra on Jun 20, 2011
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/17/2012

pdf

text

original

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.

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. a escolha recaiu sobre um TRIAC do tipo TIC263 D. Assim.TRIAC controlando resistência de carga. Como necessita-se controlar tensão alternada. só desligando ao final de um ciclo da senóide. Figura 2 . disparado pelo sinal PPM Os Triacs (Tiristores para Corrente Alternada) e os SCR (Retificadores Controlados de Silício).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. . basta apenas um breve pulso de disparo no gate do TRIAC para que este comece a conduzir.

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

faz uso de um acoplador óptico do tipo TIL111 da National Semiconductors.A solução encontrada.com) por ser um dispositivo de tecnologia RISC de última geração na data em que este trabalho foi desenvolvido. 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. 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. servindo como ótima referência para o momento de disparo do Triac.microchip. 3. 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. O circuito acima produz uma onda muito próxima de retangular nos instantes exatos em que a senóide da rede atravessa o zero.

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

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

Senóide recortada pela ação do tiristor . que ao osciloscópio se assemelha à figura abaixo: Figura 6 . 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.

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

7 e resolvendo a integral para o intervalo To< t <Ta.t ) e [Eq. resulta: Pmedia A2 = 2T0  (T0 − TA ) + sen(240. que é a variável de saída do controlador proposto. 6] A: amplitude da senóide em volts (V) ω = 120π que resulta.t )dt ∫ To T T [Eq. substituindo na Eq. 8] Substituindo na Eq. 5: Pmédia A2 o = sen 2 (120π . 9 dá a Potência Média por semi-ciclo da senóide.TA )    240π   [Eq.π . em função do tempo de acionamento Ta . próprio para acionamento de triacs) através do seguinte algoritmo: .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. 6 .sen(ω.Onde : v(t ) = A. 9] A Eq.

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

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). // define a largura do pulso // do disparo } } } } //TRATA_ZC Com o triac. a tensão eficaz aplicada à resistência em função do ângulo “alfa” de disparo é. Pstate=1. − / R 4π   2 2π Eq. 2. a potência eficaz aplicada na resistência será:  1 α sen 2α  + P = 2. para rede de 127 volts. dada por: Veficaz = 127. sendo o ângulo de disparo igual nos dois semi-ciclos.{ if(TMR3IF==1) { TMR3IF=0.(127) 2 . TMR3ON=0. set_timer3(65535-pulso). [11] . 1 α sen 2α − + 2 2π 4π Eq. } // desliga a contagem do TMR3 else { output_high(PWM). // limpa o flag de interrupção do TIMER3 if (Pstate==1) { Pstate=0. [10] Pela Equação (2).

provocadas pelas rápidas comutações do triac. como mostrado na figura abaixo: Figura 7 -Filtro contra EMI sugerido . 7 .onde R é o valor da resistência de carga em ohms. Um filtro LC mais elaborado pode ser implementado com esta finalidade.Filtro “Snubber” Como melhoria adicional a este circuito. 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. com a finalidade de se reduzir a emissão de harmônicas na rede de energia. é necessário proteger o circuito e a rede de energia dos surtos de tensão gerados pela rápida comutação do triac. 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. conforme é também mostrado na figura acima. 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. 8 .Filtro contra EMI (Eletromagnetic Interference) : Em aplicações onde uma carga indutiva necessite ser controlada pelo triac.

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. 9 . . entrega-se à carga semi-ciclos inteiros de senóide. As equações que descrevem o filtro acima sugerido. ao invés de ter sua luminosidade variando continuamente. Este método tem a desvantangem de produzir um controle nada suave de energia na carga: uma lâmpada. [12] Este filtro tem um pólo duplo na frequência de 35 kHz. e uma resolução de Controle de 0. como no caso em estudo. 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.2 seg (200 ms). estipula-se um periodo de controle total de 20 segundos. Por exemplo: Deseja-se um Controle de 30% da Potencia Total. este efeito é irrelevante se a finalidade desejada for apenas o controle da temperatura de uma resistência.6kHz LC 2π LC Eq. por exemplo. são : H (s) = 1 ⇒ ωo = s LC + 1 2 1 1 1 ⇒ fo = × = 35. passaria a piscar. onde “fo” é a frequência central de sintonia. Ao invés de se disparar o triac continuamente em ângulo de fase variável. Entretanto.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.

Figura 8 . de acordo com o Algoritmo proposto. este algoritmo. mantemos o triac disparado durante 30 x 0. a cada 20 segundos não ocorrerá primeiro 10 segundos de condução do triac (ON) e 10 segundos desligado (OFF) depois. 16). 0. para que tenhamos 30% da Potência total na carga. permite distribuir N ciclos de senóide igualmente dentro de um periodo M de tempo de maneira a equiparticionar a energia (Ref.Distribuição dos pulsos do triac ao longo do tempo. 0. repetindo-se sempre este ciclo. . este algoritmo possibilitará um controle de 0.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. 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).2 Seg ON. Se a potência for ajustada para 50% do total. OFF e assim por diante.2 Seg. 0. Pelo contrário.Assim.2 = 6 segundos a cada 20 segundos. 10 .2 Seg ON.2 Seg OFF.

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

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

ainda que acenda com pouco brilho. o LED1 acenderá em diversas intensidades enquanto o triac estiver operando normalmente. . Esse segundo método é recomendável apenas para resistências de aquecimento. é 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. tais como motores AC monofásicos e lâmpadas de iluminação incandescentes. ambos os métodos são válidos e é a aplicação e o elemento a ser controlado que definem qual será o escolhido. 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. mas tem a desvantagem de ser pouco linear no que se refere ao controle da carga. que faz uso do sistema PPM. O primeiro método. Entretanto. 12 . em caso de queima do triac por curto-circuito.No circuito da figura acima.CONCLUSÃO: Os dois métodos estudados são efetivos no Controle do disparo de triacs usando-se microcontrolador. O filtro LC não é mostrado nesta figura. O segundo método. Destarte. porquanto não existirá diferença de potencial entre os terminais do resistor R1 e do diodo D2. este led irá se apagar definitivamente. R3 e C1 compõe o circuito de filtro “snubber” já discutido acima. por uma questão de simplicidade no entendimento.

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

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

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

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

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->