Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
CURSO DE GRADUAÇÃO EM ENGENHARIA ELÉTRICA
FORTALEZA
2014
___________________________________________________________________________
Página reservada para ficha catalográfica que deve ser confeccionada após apresentação e
alterações sugeridas pela banca examinadora.
Para solicitar a ficha catalográfica de seu trabalho, acesse o site: www.biblioteca.ufc.br, clique
no banner Catalogação na Publicação (Solicitação de ficha catalográfica)
___________________________________________________________________________
JOSÉ FELIPE GALLI GELEILATE
FORTALEZA
2014
JOSÉ FELIPE GALLI GELEILATE
Aprovado em _____/_____/________.
________________________________________
José Felipe Galli Geleilate
BANCA EXAMINADORA
________________________________________
Prof. Tobias Rafael Fernandes Neto, Dr.–Ing.
Universidade Federal do Ceará (UFC)
_________________________________________
Prof. Paulo Peixoto Praça, Dr.
Universidade Federal do Ceará (UFC)
_________________________________________
Davi Rabelo Joca, MSc.
Universidade Federal do Ceará (UFC)
AGRADECIMENTOS
Home automation systems are important supporting tools in daily domestic tasks and present
a steady growth due to the fast acceleration of technological development. The cost reduction
of these equipments increases the market demand, boosting competition in launching new
ideas, such as the control of electrical loads from a distance. Among the protocols of wireless
communication, the Bluetooth presents a great option for its low power dissipation, the
plausible transfer rate and the satisfactory range for home automation applications. This work
presents the development a prototype for an embedded PIC microcontroller system that can
interact with the user via Bluetooth to control three distinct electrical loads. Two possible
methods of operating are proposed. The first consists in enabling the first and second load in
traditional on-off mode, and the third consists in controlling one load through gradual transfer
of power. The user interface with the system is made by cell phone, device available in most
homes that propose to implement an automation system, and in which is developed an
application for Android operating system to enable control of loads remotely.
1 INTRODUÇÃO ......................................................................................................... 01
1.1 Microcontroladores PIC............................................................................................ 01
1.2 Comunicação wireless................................................................................................. 03
1.3 Projeto proposto......................................................................................................... 04
2 METODOLOGIA....................................................................................................... 06
2.1 Metodologia de controle wireless via bluetooth........................................................ 07
2.2 Metodologia de acionamento no modo liga-desliga................................................. 08
2.3 Metodologia de acionamento por transferência gradativa de potência................. 08
3 TOPOLOGIA E DIMENSIONAMENTO ELÉTRICO…...…………….………. 11
3.1 Circuito da fonte de alimentação do sistema............................................................ 11
3.2 Circuito de acionamento da Carga 1 e Carga 2....................................................... 13
3.3 Circuito de acionamento da Carga 3........................................................................ 15
3.4 Circuito para detecção de zero.................................................................................. 18
4 LÓGICA DE CONTROLE........................................................................................ 20
4.1 Lógica de acionamento da Carga 1 e Carga 2.......................................................... 20
4.2 Lógica de acionamento da Carga 3........................................................................... 21
5 INTERFACE WIRELESS.......................................................................................... 25
5.1 Módulo para comunicação via bluetooth.................................................................. 25
5.2 Desenvolvimento do aplicativo para SO Android.................................................... 26
6 IMPLEMENTAÇÃO E RESULTADOS.................................................................. 33
CONCLUSÕES........................................................................................................... 37
REFERÊNCIAS.......................................................................................................... 38
APÊNDICES............................................................................................................... 39
.
LISTA DE FIGURAS
CI Circuito Integrado
CPU Core Processing Unity
IEEE Institute of Electrical and Electronic Engineers
LED Light-Emitting Diode
MCU Microcontroller Unity
PCB Printed Circuit Board
PIC Programmable Interface Controller
RMS Root-mean-square
SO Sistema Operacional
Vca Volts em tensão alternada
Vcc Volts em tensão contínua
1
1. INTRODUÇÃO
Nesse trabalho, optou-se usar o PIC 16F877A devido a sua maior disponibilidade
no momento e a presença do conversor A/D (analógico-digital) interno, que possibilitou a
aplicação de testes iniciais no sistema através de um potenciômetro. Entretanto, esse modelo
possui características robustas que puderam ser dispensadas para esse tipo de aplicação. Outro
modelo com características mais simples, como por exemplo o 16F628A, poderia atender as
especificações desse projeto sem implicações prejudiciais.
A programação do set de instruções que um microcontrolador PIC irá realizar
pode ser feita em linguagem de programação tais como C, Pascal, Assembly, entre outras,
podendo ser gravado milhares de vezes (MICROCHIP, 2012). A fim de evitar o contato com
linguagem de programação de baixo nível como Assembly, foi utilizado o compilador CCS, a
afim de proporcionar maior facilidade no desenvolvimento do programa.
O processo de criação de um programa eficiente, que possa adequadamente
atribuir ao microcontrolador as tarefas a serem executadas, pode ser descrito resumidamente
pelos sete passos ilustrados na Figura 2.
Para aplicação desse trabalho, a comunicação via bluetooth foi optada por
apresentar grande acessibilidade em relação aos aspectos apresentados, além da presença
marcante em celulares. Todavia, o sistema desenvolvido dispõe da flexibilidade de alteração
na interface wireless, sendo que para que isso ocorra é necessário reprogramar o
microcontrolador e verificar a compatibilidade do dispositivo em questão.
Fonte: Própria
2. METODOLOGIA
Fonte: Própria.
Fonte: Própria.
Considerando que o sinal em vermelho seja aquele enviado pelo PIC, verifica-se
que o nível lógico 1 ocorre somente quando se pretende ativar o triac para garantir uma
determinada transferência de potência, ou seja, imediatamente após cada intervalo igual a ,
valor esse que deve ter sido previamente estabelecido em uma aplicação controlada. Pode-se
observar que o sinal enviado para gatilho apresenta comportamento similar ao de um PWM
(Pulse-width modulation – Modulação por Largura de Pulso), embora esse projeto não se
baseará em tal método para a modulação desse sinal.
A melhor forma de garantir o sincronismo entre o sinal enviado pelo PIC e a
senóide da rede é desenvolver uma metodologia para detecção do ponto zero. Essa aplicação
significa, para esse trabalho, um circuito combinado com a lógica do microcontrolador para
detectar toda as vezes que a senóide da rede passar pelo ponto zero, para que então o PIC
possa gatilhar o triac no instante devidamente de acordo com as instruções do recebidas pelo
sistema usuário do sistema.
11
Fonte: Própria.
do capacitor C1 que irá reter a tensão de pico em cada período, que permanece retilínea ao
invés de diminuir ao alternar entre cada pico. Este comportamento (ripple) é diminuído com
um valor de C1 suficientemente alto, proporcionando um tensão constante, que será em
seguida recebida pelo regulador. O valor de pico dessa tensão ( ) é dada por:
√ (1)
√ (2)
permitindo que a energia da rede seja entregue à carga em 220 Vca. A tensão aplicada de
11,5Vcc na bobina do relé provém da fonte de alimentação geral do sistema, conforme
explicado anteriormente na seção 3.1.
O diodo 1N4007, apresentado em antiparalelo com a bobina do relé, funciona
como um diodo de roda livre, e serve para circular a corrente quando a chave é aberta.
Quando a bobina é energizada e depois bruscamente desligada surge um elevado pico de
tensão que pode danificar os componentes próximos. Para descartar esse problema foi
especificado um diodo em antiparalelo ligado na forma apresentada.
Quanto ao resistor R, seu dimensionamento é realizado de acordo com a corrente
de base no transistor BC547 para um pior caso. Considerando um ganho mínimo de 110
para o transistor, conforme a folha de dados do fabricante (FAIRCHILD, 2002), é possível
calcular a corrente de base a partir da corrente no coletor. Como a resistência da bobina do
relé é em torno de (SONGLE, 2008), e a mesma está em série com o coletor, tem-se
que:
(3)
(4)
(5)
(6)
Fonte: Própria.
(7)
16
√
(8)
(9)
Sendo:
: Tensão sobre o resistor R2;
: Tensão sobre triac interno ao optoacoplador;
: Tensão de acionamento do terminal gate do triac.
é obtido em FAIRCHILD (2006). é dado por , sendo a corrente
que flui no terminal gate. e são ambos obtidos no datasheet do triac utilizado (NXP,
2014). Aplicando-se as devidas substituições, obtém-se :
17
(10)
Esse valor não apresenta implicações problemáticas para o sistema, visto que as
cargas-alvo do mesmo muito provavelmente não possuirão tensão nominal de operação
abaixo desse limite.
O terceiro e último parâmetro a ser averiguado para a determinação apropriada de
R2 é a dissipação de potência máxima que o resistor especificado deverá suportar. Para tanto,
deve-se considerar as perdas sobre o mesmo nas piores condições.
A potência P sobre o resistor a ser calculada depende do tempo que o triac
permancerá em condução e a corrente máxima de gate . Assim, é preciso calcular
primeiramente o valor de :
√ (11)
√ (12)
(13)
O circuito para detecção do ponto zero da tensão da rede foi construído sem
auxílio de CI’s, utilizando somente diodos e resistores, a fim atuar em conjunto com a lógica
interna do microcontrolador. O design desse circuito é apresentado na Figura 11.
O transformador abaixador dessa aplicação é o mesmo utilizado para a fonte
auxiliar do sistema. Entretanto, a ponte de diodos aqui designada não pode ser a mesma
utilizada na fonte auxiliar, visto que a primeira sofreu ajuste na tensão de saída pelo capacitor
C1 (ver Figura 8). Para esse caso, o comportamento variante do sinal de saída da ponte é
crucial para a metodologia de detecção de zero, conforme é apresentado na seção 4.2.
Fonte: Própria.
√
(14)
Sendo:
: Tensão de pico sobre o resistor R2;
: Tensão RMS no secundário do transformador;
: Queda de tensão em um diodo da ponte retificadora.
Obtém-se em seguida , de acordo com os valores conhecidos:
√
(15)
√
(16)
√
(17)
4. LÓGICA DE CONTROLE
Fonte: Própria.
Os dados conferidos pelo programa ao receber os dados (bytes) pela porta serial
para execução das operações de liga-desliga estão conferidos na Tabela 2. Esses bytes a serem
recebidos devem, obviamente, casar com os enviados pelo celular através do app
desenvolvido.
Fonte: Própria.
Fonte: Própria.
O sinal de 0,2 V, provindo do módulo Vref, foi configurado para tal nas linhas de
código do programa. Esse valor é o mínimo acima de 0 V disponível, e é suficiente para os
fins dessa metodologia. Como 0,2 V é muito próximo de 0 V, o comparador possuirá saída
igual 1 somente em intervalos iguais a t1. Em todos os outros momentos, o mesmo estará com
0 na saída. Sendo assim, o PIC tomará parte dessa afirmação para avaliar caso a forma de
onda da rede está no ponto zero ou não.
Vale notar que a tensão 0 V poderia ser facilmente obtida aterrando o pino de
entrada analógica desejado para uso no comparador, dispensando o módulo tensão de
referência. Entretanto, o sinal de 0 V seria inviável, pois com ele o comparador não seria
capaz de detectar quando o sinal pulsante no pino A3 seria maior ou menor. Sendo assim, 0,2
V é suficientemente acima de 0 V para garantir a mudança de estado na saída do comparador.
24
Nas linhas de código, essa verificação do zero é feita analisando o bit 7 (C1OUT)
do registrador CMCON, relativo ao comparador 1 analógico interno. O programa fica em laço
infinito (ver APÊNDICE B) até que C1OUT seja igual 1. Logo que o programa é liberado, e
em seguida é enviado um pulso de 300 µs, após determinado atraso, através do pino B1. Esse
atraso, conforme já comentado, é estabelecido pelo usuário do sistema, e pode ser obtido tanto
via comunicação via bluetooth como manualmente pelo potenciômetro, sendo essas duas
opções determinadas pelo estado da chave S (Figura 5).
Embora o intervalo t1 possa parecer um problema para a precisão do sinal de
gatilho, não há necessidade de implementar uma correção. Isso se deve ao fato de que o
microcontrolador estará sempre enviando sinal de gatilho nesse intervalo antes do zero. Ou
seja, não importa se o programa verifique o zero da função um pouco antes de onde realmente
deveria ser, o triac sempre será gatilhado a partir do zero até que o sinal atrase por um
intervalo de tempo maior que t1/2.
É importante notar que as avaliações de tempo acima descritas são feitas
desprezando-se a perdas realizadas nos processos internos do PIC, como por exemplo, o
tempo de conversão A/D ou as execução das instruções programadas.
Conforme já mencionado, o acionamento manual consiste em realizar a leitura do
valor digital obtido pela conversão A/D no divisor de tensão do potenciômetro POT (Figura
5). O canal utilizado para conversão foi o pino A0. O conversor A/D do PIC 16F877A possui
resolução de até 10 bits, sendo todos eles usados afim de obter maior precisão.
O acionamento remoto é realizado pelo PIC quando este recebe dados pelo porta
serial que se comunica com o módulo bluetooth. Para o PIC importa apenas receber os dados
e tratá-los para o devido acionamento da Carga 3. Conforme apresentado na Tabela 2, o
valores 252 à 255 da faixa de possíveis valores em um byte já estão reservados, restando o
intervalo de 0 251 para ser usado como valor proporcional ao atraso do sinal de gatilho.
25
5. INTERFACE WIRELESS
Fonte: reprap.org.
Esse módulo possui alcance de sinal máximo de 10 m, valor pequeno para fins de
automação residencial. Todavia, o mesmo foi escolhido por ser prático e acessível, visando a
princípio desenvolver esse sistema (protótipo) de forma garantida com a metodologia
proposta até o momento. Caso se deseje aplicar de fato o sistema, bastaria buscar no mercado
entre a grande variedade disponível de módulos, atendendo aos requisitos de diferentes áreas.
Fonte: Própria.
Fonte: Própria.
O layout do programa consiste numa tela inicial única, onde é possível acessar os
dispositivos disponíveis para conexão via bluetooth no botão “DISPOSITIVOS”, controlar o
acionamento da Carga 1 e Carga 2 com os botões “LIGA” e “DESLIGA”, ou então transferir
potência à Carga 3 de maneira gradativa com os botões “+” e “-“. O programa também exibe
a quantidade de potência disponível para a terceira carga.
A maioria dos blocos do programa dá sequência à um rotina que não possui ordem
estabelecida para ser executada. Isso ocorre porque o usuário pode apertar primeiro, por
exemplo, um botão em vez de outro, ou interagir com um certo elemento à qualquer momento
e em qualquer ordem. Essa característica de execução em ordem aleatória dos blocos torna
mais simples o desenvolvimento e a explicação do programa.
Entretanto, há blocos que são executados a partir de um critério que define a
ordem do programa. Portanto, sempre são chamadas em um momento específico. O primeiro
a bloco a ser explicado (Figura 19) é um exemplo desse tipo.
28
Fonte: Própria.
Fonte: Própria.
29
Fonte: Própria.
Fonte: Própria.
O objeto ListPicker1, citado nos dois blocos da Figura 22, é referente ao botão
“DISPOSITIVOS”, indicando que este, ao ser pressionado, gera a lista descrita. Após o
usuário definir a qual dispositivo irá se emparelhar, o programa gera a rotina para estabelecer
a conexão (operação realizada no segundo bloco).
O código de blocos da Figura 23 mostra a sequência de operações para o evento
de clique nos botões liga/ desliga referentes às duas primeiras cargas. Conforme já
apresentado na Tabela 2, os valores de 252 à 255 de um byte representam uma respectiva
atitude do microcontrolador em relação às cargas.
A rotina realizada após cada clique consiste em verificar se há conexão bluetooth
estabelecida, e em seguida, enviar o respectivo dado ao módulo JY-MCU conectado ao PIC.
30
Fonte:Própria.
Para que o aplicativo alterne entre entre os estágio propostos, foi necessário criar
o código conforme os blocos da Figura 24. A partir de um variável global VAL foi possível
armazenar posição atual do estágio estabelecido pelo usuário. Essa variável é acrescida ou
decrescida no passo de 15 unidades, de acordo com o acionamento dos botões “+” e “-“
apresentados. A fim de garantir maior confiabilidade, a variável VAL só é manuseada
somente quando há conexão via bluetooth estabelecida, e portanto, não tem seu valor alterado
caso o usuário a pressione indevidamente.
A rotina interligada pela seta preta é inserida a fim apresentar a porcentagem de
potência entregue à Carga 3 conforme a Tabela 3. O texto que exibe esse valor também só
alterado de acordo com a variável VAL, e portanto só varia caso haja conexão estabelecida.
Nas linhas de código do programa no microcontrolador, o atraso realizado a partir
da detecão de cada zero de cada semiciclo de onda é realizado de acordo com os possíveis 17
estágios de potência propostos.
32
Fonte: Própria.
33
6. IMPLEMENTAÇÃO E RESULTADOS
Fonte: Própria.
34
Após a criação virtual da placa, foram gerados os arquivos gerber, que contém as
informações em linguagem de máquina necessárias para que a fresa confeccione a placa. A
Figura 26 apresenta a placa construída logo após a operação da fresa no laboratório GPEC
(Grupo de Processamento de Energia e Controle) da UFC.
Fonte: Própria.
Fonte: Própria.
CONCLUSÕES
REFERÊNCIAS
1. #include <16F877A.h>
2. #device adc=10
3. #use delay (clock=4000000)
4. #fuses XT,NOWDT,PUT,NOBROWNOUT,NOLVP
5. #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
6. void main(){
7. int1 aux;
8. int8 info;
9. int16 temp1=240, temp2=0;
10. set_tris_b(0x04);
11. port_b_pullups(true);
12. output_high(pin_b0);
13. output_low(pin_b1);
14. setup_adc_ports(ALL_ANALOG);
15. setup_adc(ADC_CLOCK_INTERNAL);
16. set_adc_channel(0);
17. setup_comparator(A3_VR_A2_VR);
18. setup_vref(VREF_LOW|1);
19. while(true){
20. if(kbhit()==1){
21. info=getc();
22. if(info<=240) temp1=info;
23. }
24. switch(info){
25. case 252:
26. output_high(pin_b3);
27. break;
28. case 253:
29. output_low(pin_b3);
30. break;
31. case 254:
32. output_high(pin_b4);
33. break;
34. case 255:
35. output_low(pin_b4);
36. break;
37. }
41
38. while(C1OUT==0);
39. aux=input(pin_b2);
40. if(aux==0){
41. temp2=read_adc();
42. while(adc_done()==0);
43. if(temp2<=950){
44. delay_us(temp2*8);
45. output_high(pin_b1);
46. delay_us(300);
47. output_low(pin_b1);
48. }
49. }
50. else{
51. delay_us(temp1*33);
52. output_high(pin_b1);
53. delay_us(300);
54. output_low(pin_b1);
55. }
56. }
57. }