Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ENGENHARIA ELÉTRICA
São Paulo
2016
NILDO CÁSSIO DE SOUZA
São Paulo
2016
Dados Internacionais de Catalogação-na-Publicação (CIP)
BANCA EXAMINADORA:
__________________________________
DEDICATÓRIA
Aos colegas de turma do curso, que estiveram juntos nesta caminhada pelo
conhecimento ao longo destes cinco anos.
A toda nossa família pela compreensão das longas horas ausentes que foram
necessárias para a realização deste sonho que foi plantado em nossos corações
ainda na infância e que somente agora pode ser realizado.
RESUMO
Figura 36 – Visão frontal dos conectores DB9 (9 pinos) e DB25 (25 pinos) ............. 70
Figura 44 – Comunicação Serial com erro nas medições de corrente e tensão ....... 79
Tabela 7 – Função dos pinos de uma interface serial (DB9 e DB25) padrão RS232 71
A Ampère
AT Alta Tensão
BT Baixa Tensão
CA Corrente Alternada
CC Corrente Contínua
CI Circuito Integrado
EA Energia Ativa
ER Energia Reativa
FD Fator de Desequilíbrio
GND Ground
Hz Hertz
kg Quilo
kV Quilovolt
kVA Quilovoltampère
kW Quilowatt
L Litros
m mili
M Mega
μ micro
mm milímetro
NA Normalmente Aberto
NF Normalmente Fechado
PC Personal Computer
P Potência Ativa
Q Potência Reativa
RC Circuito RC (Resistor-Capacitor)
s Segundo
SEL Schweitzer Engineering Laboratories
V Volt
W Watt
SUMÁRIO
1 Introdução ............................................................................................... 15
2 Referencial teórico................................................................................... 18
3 METODOLOGIA ...................................................................................... 37
5 PROCEDIMENTO ................................................................................... 42
6 Testes e validação................................................................................... 78
8 Conclusão ............................................................................................... 93
REFERÊNCIAS .............................................................................................. 95
1 INTRODUÇÃO
1.1 Objetivos
2 REFERENCIAL TEÓRICO
Fonte: http://engenharianodiaadia.blogspot.com.br/2012/02/o-desenvolvimento-dos-
sistemas.html (2016)
2.1.1 Demanda
for menor, que a tensão nominal que alimenta e, inversamente se a tensão for maior
que a nominal, com isso o valor da carga solicitado poderá ser diferente que o valor
nominal.
V a = V m × sin( w + θ )
Vb = Vm × sin( w + θ − 120)
Vc = V m × sin( w + θ + 120)
Onde:
Vm = Tensão de pico
θ = Ângulo de referência
• harmônicas;
• fator de potência;
• desequilíbrio de fases.
2.3 PRODIST
Qualidade do produto
b) fator de potência;
24
c) harmônicos;
d) desequilíbrio de tensão;
e) flutuação de tensão;
g) variação de frequência.
Sendo que o sistema destacar os quatro primeiros itens desta lista como foco
da atuação do sistema proposto neste trabalho.
2.3.1 Harmônicas
Uma vez que cada uma dessas cargas têm suas características elétricas
específicas, incluindo as correntes harmônicas. Entende-se por cargas não-lineares
toda carga conectada à rede elétrica, que gere como resposta do seu
funcionamento adequado ou não, uma corrente dotada de perturbação na sua forma
de onda. Algumas destas cargas são:
TENSÃO NOMINAL DO
DISTORÇÃO HARMÔNICA TOTAL DE TENSÃO
BARRAMENTO
(DHT V ) [%]
VN ≤1KV 10
Ordem
Harmônica
VN ≤ 1 kV 1 kV < VN ≤ 13,8 kV 13,8 kV < VN ≤ 69 kV 69 kV < 230 kV
5 7,5 6 4 2,5
7 6,5 5 4 2
11 4,5 3,5 3 1,5
Impares 13 4 3 2,5 1,5
não
17 2,5 2 1,5 1
multíplos
de 3 19 2 1,5 1,5 1
23 2 1,5 1,5 1
25 2 1,5 1 1
>25 1,5 1 4 0,5
3 6,5 5 1,5 2
Ímpares 9 2 1,5 0,5 1
não
múltiplos 15 1 0,5 0,5 0,5
de 3 21 1 0,5 0,5 0,5
>21 1 0,5 1,5 0,5
2 2,5 2 1,5 1
4 1,5 1 1 0,5
6 1 0,5 0,5 0,5
Pares 8 1 0,5 0,5 0,5
10 1 0,5 0,5 0,5
12 1 0,5 0,5 0,5
>12 1 0,5 0,5 0,5
Com relação as harmônicas, Pomilio (2014) afirma que o grau com que
harmônicas podem ser toleradas em um sistema de alimentação depende da
susceptibilidade da carga (ou da fonte de potência). Verifica-se também que os
equipamentos menos sensíveis, geralmente, são os de aquecimento (carga
resistiva), para os quais a forma de onda não é relevante.
o cosseno do ângulo formado por estas duas grandezas, conforme Figura 6. O Fator
de Potência representa, na razão direta, a eficiência do uso da energia.
Fonte: https://www.aeseletropaulo.com.br/poder-publico/sobre-
energia/conteudo/energia-reativa (2016)
P EA
fp = ou
P2 + Q2 EA2 + ER 2
Ou
P EA
fp ou
P2 + Q2 EA2 + ER 2
A potência ativa é que efetivamente gera trabalho, tais como luz, calor,
movimento etc. e é medida em kW. A potência reativa é a potência usada apenas
para criar e manter os campos eletromagnéticos das cargas indutivas e é medida em
quilovoltampère reativo (kVAr). Sendo assim a potência ativa é sempre consumida
30
Basicamente:
- sistema trifásico;
- sistema trifásico;
- sistema trifásico;
V−
FD % = 100
V+
Ou também por:
1 − 3 − 6β
FD% = 100
1 + 3 − 6β
Sendo:
V ab 4 + Vbc 4 + V ca 4
β =
(V ab 2 + Vbc 2 + V ca 2 ) 2
Onde:
3 METODOLOGIA
4 FUNCIONAMENTO DO CIRCUITO
COMANDO
FUNÇÃO
(Hexadecimal)
Habilita a operação automática do balanceamento de
0x00
cargas pelo circuito
0x11 Transfere todas as cargas para a fase 1
0x22 Transfere todas as cargas para a fase 2
0x33 Transfere 4 cargas entre as duas fases
0x44 Transfere 2 cargas entre as duas fases
0x55 Transfere metade das cargas de forma alternada
entre as duas fases
Fonte: dos autores (2016)
42
5 PROCEDIMENTO
5.1.1 ISIS
5.1.2 ARES
5.1.3 MPLAB
Este software foi planejado para operar com diversos tipos de micro chips
para aplicação de linguagem de programação simples do tipo hexadecimal, pois este
código pode ser gravado em dispositivo conhecido como memória flash também
chamada de memória EPROM (Erasable Programmable Read-Only Memory). Muito
utilizado para o desenvolvimento e análise de programas.
Figura 15 – MPLAB
5.1.4 RealTerm
5.1.5 Fluxograma
Vide APÊNDICE B.
Materiais utilizados:
A placa de fenolite deve estar limpa e sem marca de digitais, para garantir
que o processo de transferência seja realizado com êxito, as placas foram lixadas e
limpas com esponja de aço, depois foram lavadas com água corrida. Não precisou
secar, pois a água auxilia para o posicionamento do papel na placa. Após dispor na
placa, prendeu-se o papel com fita crepe para que ao passar o ferro não
52
Com o ferro de passar ligado e meio litro de água fria, começou o processo
para transferência térmica da imagem do papel para a placa de cobre, alternando-se
água e ferro de passar com o intervalo de dois minutos. Foi necessário aquecer
muito a placa, coberta por um pano para não danificar o ferro de passar e não
aquecer demasiadamente a placa. E após aquecer, foi resfriado com água fria, este
processo foi repetido por cinco vezes, pois durante as tentativas, observou-se que
seria a quantidade necessária para que a transferência fosse realizada com êxito.
Assim após aproximadamente dez minutos a transferência térmica estava completa.
Após a corrosão e limpeza das placas foi feita a furação das ilhas e
passagens de parafusos para fixação da placa na maquete com uma furadeira
elétrica e broca adequada com os diâmetros necessários a cada um dos
componentes.
56
5.2.2 Serigrafia
A serigrafia das placas foi gerada com o software ARES, para a impressão foi
necessário gerar um arquivo da serigrafia espelhado, conforme observado na Figura
26, a serigrafia da placa de controle. A serigrafia facilita a identificação da posição
de montagem dos componentes, diminuindo a possibilidade de contagem errada dos
componentes na placa e dá um aspecto mais profissional ao protótipo.
58
1) LED’s; 2) Borne de 2 vias; 3) Conectores barra pino; 4) Cristal oscilador; 5) Botão Reset; 6)
Transistores; 7) Diodos; 8) Resistores; 9) Capacitores; 10) Soquete do microcontrolador.
• 15 interrupções disponíveis;
5.3.3 Sensores
que produz um campo magnético, ou até mesmo a presença estática, onde fornece
na saída um sinal de acordo com o campo magnético detectado. Possui vantagem
quanto à resposta rápida, pelo tamanho compacto e pelo preço acessível.
Sem paridade (No parity) significa que não existe bit de paridade sendo
enviado ou recebido. Os bits restantes são bits de parada, podem ser 1 ou 2 bits de
parada.
Segundo o padrão RS232 cada pino de um conector serial tem uma função
específica, que deve ser seguida para a correta montagem de um cabo de
comunicação. Observando na Figura 36 a vista frontal dos conectores DB9 ou DB25,
em alguns casos é possível identificar os números de cada pino marcados na parte
plástica interna, isto irá depender de cada fabricante.
Figura 36 – Visão frontal dos conectores DB9 (9 pinos) e DB25 (25 pinos)
Tabela 7 – Função dos pinos de uma interface serial (DB9 e DB25) padrão
RS232
5.6.1 Maquete
6 TESTES E VALIDAÇÃO
Instrumentos de Medição
Amostra FASE 1 (A) FASE 2 (A)
1 2,45 2,10
2 2,45 2,10
3 2,43 2,10
4 2,44 2,10
5 2,14 2,30
6 2,13 2,30
7 2,13 2,30
8 2,13 2,30
9 2,13 2,30
10 2,11 2,30
11 2,13 2,40
12 2,14 2,40
13 2,13 2,30
14 2,13 2,40
15 2,13 2,40
16 2,14 2,40
17 2,14 2,40
18 2,14 2,40
19 2,14 2,40
20 2,15 2,40
21 2,15 2,40
22 2,15 2,40
23 2,15 2,40
24 2,14 2,40
25 2,14 2,30
26 2,14 2,30
27 2,14 2,40
28 2,14 2,40
29 2,15 2,40
30 2,12 2,20
31 2,42 2,20
32 2,41 2,20
33 2,43 2,20
34 2,40 2,20
35 2,40 2,20
Fonte: dos autores (2016)
Quantidade de amostras: 35
84
Protótipo
FASE 1 FASE 2
Amostra (A) (A)
1 2,40 2,00
2 2,40 2,00
3 2,40 2,00
4 2,30 2,10
5 2,30 2,20
6 2,30 2,20
7 2,30 2,30
8 2,30 2,30
9 2,30 2,30
10 2,30 2,40
11 2,30 2,40
12 2,30 2,40
13 2,30 2,40
14 2,30 2,40
15 2,30 2,40
16 2,30 2,40
17 2,30 2,40
18 2,30 2,30
19 2,30 2,40
20 2,40 2,40
21 2,30 2,30
22 2,30 2,40
23 2,30 2,40
24 2,30 2,40
25 2,30 2,40
26 2,30 2,40
27 2,30 2,40
28 2,30 2,40
29 2,30 2,20
30 2,40 2,20
31 2,40 2,20
32 2,40 2,20
33 2,40 2,20
34 2,40 2,20
35 2,40 2,10
Fonte: dos autores (2016)
85
Quantidade de amostras: 35
Instrumentos de Medição
Fase 1 (A) Fase 2 (A)
Média 2,21 2,31
Variância 0,02 0,01
D. Padrão 0,13 0,11
Fonte: dos autores (2016)
O mesmo procedimento foi aplicado para obter a Tabela 11, para o protótipo.
Protótipo
Fase 1 (A) Fase 2 (A)
Média 2,33 2,29
Variância 0,00 0,02
D. Padrão 0,05 0,13
Fonte: dos autores (2016)
86
32 7,00 13,50
33 4,50 13,50
34 13,50 13,50
35 13,50 13,50
Fonte: dos autores (2016)
para as fases 1 e 2. Assim para preenchimento das tabelas e obtenção dos valores.
Na Tabela 14 a somatória dos intervalos dos valores obtidos da fase 2.
8 CONCLUSÃO
REFERÊNCIAS
Dois divisores de tensão forneecm 10V para dois canais ADC channel 0.
The PIC continually samples the voltage and displays the
value on the 7-segment displays. Values are displayed are in hexadecimal
and, as the PIC's ADC is 10-bit, range from 0x0000 to 0x03FF (1023 decimal).
To experiment with the design, press the "Play" button to run the simulation
and then click on the up/down controls next to the potentiometer to adjust
its value.
VDD
1 1
J7 U5
1 4 1
IP+ VCC
2 J2
3 3 1
VIOUT
2
Corrente Fase1 TBLOCK-I3 5
IP- GND
2
TBLOCK-M2
ACS755XCB-050
J3
1
2
VDD
TBLOCK-M2
VDD VDD
VDD VDD VDD
2 2
NTE-R40-5
D1 D2 D3 D4 D5 D6
LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED
2
1
2
1
2
1
2
1
2
1
2
1
U6
J8 4
IP+ VCC
1
1
2 3
3
VIOUT J11 J12 J13 J14 J15 J16
TBLOCK-M2 TBLOCK-M2 TBLOCK-M2 TBLOCK-M2 TBLOCK-M2 TBLOCK-M2
5 2
Tensao Fase1 TBLOCK-I3
IP- GND
ACS755XCB-050
3 3
Q1 Q2 Q3 Q4 Q5 Q6
BC548 BC548 BC548 BC548 BC548 BC548
VDD
VSS
R3 R4 R5 R6 R7 R8
4k7 4k7 4k7 4k7 4k7 4k7
R1
4k7
C5
4 C7 4
22p
U? 22p
J9 4
IP+ VCC
1 X1
1 CRYSTAL
U1
2
VIOUT
3 C6 13
OSC1/CLKIN RB0/INT
33
3 14 34
OSC2/CLKOUT RB1
5 2 1 35
Corrente Fase2 TBLOCK-I3
IP- GND
22p
MCLR/Vpp/THV RB2
RB3/PGM
36
ACS755XCB-050 2 37
RA0/AN0 RB4
3 38
RA1/AN1 RB5
4 39
RA2/AN2/VREF- RB6/PGC
5 40
RA3/AN3/VREF+ RB7/PGD
6
RA4/T0CKI
7 15
RA5/AN4/SS RC0/T1OSO/T1CKI
16
RC1/T1OSI/CCP2
8 17
RE0/AN5/RD RC2/CCP1
9 18
RE1/AN6/WR RC3/SCK/SCL
10 23
RE2/AN7/CS RC4/SDI/SDA
24
RC5/SDO
25
5 RC6/TX/CK 5
26
RC7/RX/DT
19
RD0/PSP0
20
RD1/PSP1
RD2/PSP2
21 J4
22 1
RD3/PSP3
27 2
U8 RD4/PSP4
28
RD5/PSP5
J10 4
IP+ VCC
1
RD6/PSP6
29 TBLOCK-M2
1 30
RD7/PSP7
2 3
VIOUT
3 PIC16877 SRCFILE=ADC.ASM
Tensão Fase2 5
IP- GND
2 J5
TBLOCK-I3 1
ACS755XCB-050 2
TBLOCK-M2
RL8 RL11
R21 RL7 NTE-R40-5 RL9 RL10 NTE-R40-5 RL12
VDD 1k D20 NTE-R40-5 R22 D21 D22 NTE-R40-5 R24 NTE-R40-5 D24 NTE-R40-5
C1 1N4148 1k 1N4148 R23 1N4148 1k D23 R25 1N4148 R26
1k 1N4148 1k 1k D25
1N4148
10u
2
1
2
1
2
1
2
1
C4 LED-RED LED-RED LED-RED LED-RED LED-RED LED-RED
2
1
10u C1- C1+
14 11 J17 J18 J19 J20 J21
T1OUT T1IN
7 13 12 J22 7
R1IN R1OUT TBLOCK-M2 TBLOCK-M2 TBLOCK-M2 TBLOCK-M2 TBLOCK-M2
7 10
T2OUT T2IN TBLOCK-M2
8 9
R2IN R2OUT
2
VS+
6
VS-
J1 Q7 Q8 Q9 Q10 Q11 Q12
C2- C2+
1 BC548 BC548 BC548 BC548 BC548 BC548
6
2 5 4 MAX232
7
3
8 C3 C2
4 10u
9
5
10u
CONN-D9F
8 8
VDD
U9
7805
D13
1 3
VI VO
GND
J6 1N4004
1
2
2
C9
9 TBLOCK-M2 C8 10u 9
1000u
DESIGN TITLE:
19/9/2016
C:\Documents and Settings\Priscila\Desktop\TC
PAGE:
PATH: C:\Documents and Settings\Priscila\Desktop\TCC
1 of BACKUP
1 1\TCC_3
A B C D E F G H J K
APÊNDICE B
Início
Sim
Contador
Comando de Sim
= 166 Escreve o valor de
fixação de portas
comando nas portas
Não na SERIAL?
do PIC
Lê corrente
Lê tensão Não
Calcula a diferença Calcula a diferença
entre as correntes entre as correntes
Calcula corrente
e tensão RMS (1)
I1 (+/- 10%)
Sim
Somatória de =
corrente e tensão I2 (+/- 10%)
Não
Comando para
converter para
Calcula a HEXA
Sim I1 (+/- 10%)
quantidade de
>
carga a ser I2 (+/- 10%)
transferida Não Sim
Escreve Escreve
dado em dado em
Não formato de formato
texto HEXA
(1) Não I2 (+/- 10%)
>
P1 mínimo I1 (+/- 10%)
transferido e P2
com transferência
Início
Sim Sim
Atua em P2
Atua em P1 Atua reduzindo P1
P2 máximo
Atua reduzindo P2 transferido e P1 Sim
________________________________
Atua apenas em
Atua apenas em
P2 para transferir
P1 para transferir
carga para Fase 1
carga para Fase 2
(1)
APÊNDICE C - PROGRAMAÇÃO
#ifndef _XTAL_FREQ
// A menos que seja especificado diferente, a frequência de operação de 20MHz será assumida
#define _XTAL_FREQ 20000000
#endif
//
void UART_Write_Text(register const char *text);
//void UART_Write_dec(unsigned char c);
void UART_Write_dec(unsigned int c);
void UART_Write(unsigned char data);
void clear_usart_errors(void);
char UART_Data_Ready(void);
unsigned char UART_Read(void);
void interrupt ISR(void);
char UART_Init(const long int baudrate);
char UART_TX_Empty();
void EscreveSerial(int a,int b,int c,int d,int e,int f,int g, int h);
void Escreve_Hexa(int a,int b,int c,int d,int e,int f,int g, int h);
unsigned int Valor_RMS(unsigned int amostra, unsigned int contador, unsigned int media);
unsigned int calc_pot(unsigned int tensao,unsigned int corrente);
void sel_saida_pri(unsigned int relat);
void sel_saida_sec(unsigned int relat);
void _delay_s(unsigned int tempo);
unsigned int ADC_Read(unsigned char canalADC);
unsigned int Le_tensao(unsigned int canalV);
unsigned int Le_corrente(unsigned int canalI);
unsigned int convertV8bits(unsigned int Va);
unsigned int convertI8bits(unsigned int Ia);
unsigned int convertP8bits(unsigned int Pa);
////// FUNÇÃO CALCULA POTÊNCIA A PARTIR DO VALOR RMS DE TENSÃO E CORRENTE //////
//
unsigned int calc_pot(unsigned int tensao,unsigned int corrente){
unsigned int potencia;
tensao = tensao * 135/255;
potencia = (int)((long)(tensao * (corrente/10)));
return potencia;
}
}
INDEX_SAIDAD = index_temp; //index da principal
}
if (INDEX_SAIDAC > 6){
INDEX_SAIDAC = 6;
}
if (INDEX_SAIDAC <= 0){
INDEX_SAIDAC = 0;
} //Verifica e limitas os indices
if (INDEX_SAIDAD > 6){
INDEX_SAIDAD = 6;
}
if (INDEX_SAIDAD <= 0){
INDEX_SAIDAD = 0;
}
INDEX_SAIDAC_ANT = INDEX_SAIDAC;
INDEX_SAIDAD_ANT = INDEX_SAIDAD; //Salva para a proxima
PORTC = BYTE_SAIDA[INDEX_SAIDAC];
PORTD = BYTE_SAIDA[INDEX_SAIDAD]; //Comanda as saídas
return 0; //Retorna 0
ADRESH=0;
ADRESL=0;
ADCON0 &= 0xC1; //Limpa os bits de Channel Selection Bits
ADCON0 |= canalADC<<3; //Seta os bits de seleção do canal
__delay_us(100); //Tempo de Aquisição para carregar o capacitor de Hold
GODONE = 1; //Inicializa a conversão A/D
while(GODONE); //Espera a conversão A/D terminar
//return ((ADRESH<<8)+ADRESL); //Retorna Resultado
return ADRESH; //Retorna Resultado 8 bits
}
///////////////////////////////// FUNÇÃO LE CANAIS DE CONVERSÃO ANALÓGICA ////////////////////////////////////
//
unsigned int Le_tensao(unsigned int canalV){
int a ;
while(GODONE); //Certifica-se e Espera uma conversão A/D terminar
a= ADC_Read(canalV); //Lê o canal dado em 10 bits
return a;
}
return Va;
}
}
/////////////////////////////////// FUNÇÃO INICIA A PORTA SERIAL RS-232 //////////////////////////////////////////////////
//
char UART_Init(const long int baudrate){
unsigned int x;
if (baudrate == 19200) {
x = 64; //Seta BAUDRATE 19200bps em 20MHz
} else {
x = 129; //Seta BAUDRATE 9600bps em 20MHz
}
BRGH = 1; // Seta High Baud Rate
if(x<256)
{
TRISC7 = 1;
TRISC6 = 1;
SPBRG = x; //Escreve no registrador SPBRG
SYNC = 0; //Seleciona o Modo Assincrono
SPEN = 1; //Habilita porta serial
CREN = 1; //Habilita Recepção Continua
SREN=0; //sem efeito
TXIE=0; //desabilita interrupção de TX
RCIE=1; //desabilita interrupção de RX
TX9=0; //8-bit transmissao
RX9=0; //8-bit recepção
GIE=1;
PEIE=1;
TXEN=0; //reset transmissor
TXEN=1; //Habilita a Transmissão
CREN=0;
CREN=1;
return 1;
}
return 0;
}
APÊNDICE C - PROGRAMAÇÃO
void clear_usart_errors(void){
unsigned char dummy;
if (OERR)
{
TXEN=0;
TXEN=1;
CREN=0;
CREN=1;
}
if (FERR)
{
dummy=RCREG;
dummy=RCREG;
dummy=RCREG;
TXEN=0;
TXEN=1;
}
}
temp=c;
//milhar
if ((c/1000)>0) UART_Write((c/1000)+'0');
c-=(c/1000)*1000;
//centenas
if ((c/100)>0) UART_Write((c/100)+'0');
c-=(c/100)*100;
//dezenas
if (((temp/10)>0) || ((temp/100)>0) || ((temp/1000)>0)) UART_Write((c/10)+'0');
c-=(c/10)*10;
//unidades
UART_Write((c/1)+'0');
}
char UART_Data_Ready(void){
return RCIF;
}
UART_Write_dec(b);
NLINHA;
UART_Write_Text("Potencia Fase1 (W): ");
UART_Write_dec(c);
NLINHA;
UART_Write_Text("Tensao Fase2 (V): ");
d = convertV8bits(d);
UART_Write_dec(d);
NLINHA;
UART_Write_Text("Corrente Fase2 x10 (A): ");
UART_Write_dec(e);
NLINHA;
UART_Write_Text("Potencia Fase2 (W): ");
UART_Write_dec(f);
NLINHA;
UART_Write_Text("Desbalanc. Fases (A): ");
UART_Write_dec(g);
NLINHA;
UART_Write_Text("Qtde. Transferencias: ");
UART_Write_dec(h);
NLINHA;
}
/////////////////////////////////////////////// FINAL DE PORTA SERIAL RS232 //////////////////////////////////////////////////////
//
/////////////////////////// FUNÇÃO PARA INICIALIZAR AS CONFIGURAÇÕES DO PIC /////////////////////////////
void init(void){
// Inicialização de variáveis de configuração do hardware do PIC
// port directions: 1=input, 0 = output
PORTA = 0x00; //Escreve valor 0 nas portas
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;
PORTE = 0x00;
TRISA = 0b11111111; //porta A definida como entrada
TRISB = 0b11000000; //porta B definida como saída, apenas RB7 e RB6 como entrada
TRISC = 0b11000000; //porta C definida como saída
TRISD = 0b00000000; //porta D definida como saída
TRISE = 0b00000111; //porta E definida como saída
APÊNDICE C - PROGRAMAÇÃO
INDEX_SAIDAC_ANT = 0;
INDEX_SAIDAD_ANT = 0;
BYTE_SAIDA[0]=0x00;
BYTE_SAIDA[1]=0x01;
BYTE_SAIDA[2]=0x03;
BYTE_SAIDA[3]=0x07;
BYTE_SAIDA[4]=0x0F;
BYTE_SAIDA[5]=0x1F;
BYTE_SAIDA[6]=0x3F;
///////////////////////////////////////////////// LOOP DO PROGRAMA PRINCIPAL ////////////////////////////////////////////////
//
while (1){
// Le os valores das tensões e das correntes para calcular as potencias em cada uma das fases
// Zera dados do ciclo anterior
V1_RMS_anterior = 0;
I1_RMS_anterior = 0;
V2_RMS_anterior = 0;
I2_RMS_anterior = 0;
PWR1 = 0;
PWR2 = 0;
clear_usart_errors();
m_fase = 3;
I1pp = 127;
I1pn = 127;
I2pp = 127;
I2pn = 127;
}
if (I1 > I1pp) {
I1pp = I1;
}
if ( I1 < I1pn) {
I1pn = I1;
}
if (I2 > I2pp) {
I2pp = I2;
}
if ( I2 < I2pn) {
I2pn = I2;
}
if (counter == 166) {
flag = 1;
// o calculo correto é dividio por 100, mas para poder enviar o caractere
// decimal pela serial em 8 bits é feita apenas a divisão por 10.
I1_RMS = ((I1pp - I1pn )- 5) * 5 / 10;
I2_RMS = ((I2pp - I2pn ) - 5) * 5 / 10;
}
//Incrementa contador de laço de quantidade de medição
counter+=1;
__delay_ms(10);
//Verifica se há comando de fixação das portas de saída pela serial
comando = dadorx;
PORTD = 0xAA;
INDEX_SAIDAC_ANT = 4;
INDEX_SAIDAD_ANT = 4;
}
// Determina o valor absoluto da diferença de corrente
Z = abs(I1_RMS - I2_RMS ) * 10;
DIFFPWR = Z;
// Verifica comando de inicialização, ou comando de liberação de controle automático pela serial.
if ((comando == 0x00) || (comando == 0x66) ) {
// Verifica a Potência de cada Fase e faz a tranferência se necessário
if (Z <= DESBALANCE ) //Se balanceado
{ //mantém o valor das portas
DIFFPWR = Z;
m_fase = 0;
__delay_ms(5);
} else if (I1_RMS > I2_RMS) { //Se desbalanceado com fase 1 maior do que fase 2
//transfere da fase 1 para a fase 2
DIFFPWR = I1_RMS - I2_RMS;
m_fase = 1;
sel_saida_pri(DIFFPWR);
}
else if (I1_RMS < I2_RMS) { //Se desbalanceado com fase 2 maior do que
fase 1
//transfere da fase 2 para a fase 1
DIFFPWR = I2_RMS - I1_RMS;
m_fase = 2;
sel_saida_sec(DIFFPWR);
}
}
// Reinicia FLAG e contador para realizar novas medições
if (flag == 1) {
flag = 0;
counter = 1;
}
// Calcula quantidade de transferencias, apenas para mostrar e enviar na serial
NNPWR = NPWR/10;
// Verifica se Comando para enviar dados em Hexa para uso no Labview - NA
if (comando == 0x66) {
Escreve_Hexa_Serial(V1_RMS,I1_RMS,PWR1,V2_RMS,I2_RMS,PWR2,DIFFPWR);
APÊNDICE C - PROGRAMAÇÃO
} else {
// Caso não tenha Comando para enviar dados em Hexa para uso no LAbview, envia em modo
texto - NA
// Faz a transmissão para a serial = a corrente está sendo mostrada multiplicada por 10
if (m_fase == 0) {
mensagem2="=> SISTEMA BALANCEADO OU DIF. < 10% (0,4A)\n";
} else if (m_fase == 1) {
mensagem2="=> FASE 1 > FASE 2\n";
} else if (m_fase == 2) {
mensagem2="=> FASE 2 > FASE 1\n";
} else if (m_fase == 3) {
mensagem2="=> CONDICOES DE FASES E CARGAS FORCADAS\n";
}
//Cabeçalho de mensagens do Sistema
mensagem="=> SISTEMA DIVISOR E BALANCEADOR DE CARGAS\n";
UART_Write_Text(mensagem);
mensagem="=> TCC - ESTACIO - 2016.2\n";
UART_Write_Text(mensagem);
mensagem="=> NILDO, OZINILDA E PRISCILA\n";
UART_Write_Text(mensagem);
UART_Write_Text(mensagem2);
NLINHA;
EscreveSerial(V1_RMS,I1_RMS,PWR1,V2_RMS,I2_RMS,PWR2,DIFFPWR,NNPWR);
mensagem = "COMANDO RECEBIDO: ";
UART_Write_Text(mensagem);
UART_Write(comando);
NLINHA;
}
// Aguarda para realizar próximo ciclo
_delay_s(5);
if (RCIF) {
dadorx = UART_Read();
__delay_ms(10);
}
// Fim do laço principal
}
TOTAL 527,77
Relé miniatura / Miniature relay
• Ideal para uso em telecomunicações ML
• 2 contatos reversíveis bifurcados
• Comutação de cargas a partir de 10 A Chave de código / How to order
• Montagem direta em circuito impresso
•
•
Selado
Homologado UL ML2R C2
• Suitable for telecom applications Tensão nominal da bobina
• DPDT bifurcated contats Coil nominal voltage
• Direct PC mounting C-5V - 5VCC / VDC
• Sealed C1 - 6VCC / VDC
• UL recognized C2 - 12VCC / VDC
C3 - 24VCC / VDC
C4 - 48VCC / VDC
1 4 6 8
11,5
2,54
3,0
0,25
0,5
7,62
7,62 5,08 5,08 16 13 11 9
1,2 8x Ø 0,9
Tolerâncias não indicadas / Not indicated tolerance : ± 0,1 mm Todas as dimensões em milímetros / All dimensions in milimeters
01