Sei sulla pagina 1di 68

BACHARELADO EM ENGENHARIA DE CONTROLE E

AUTOMAÇÃO

LÉDIO DE CARVALHO GONÇALVES JUNIOR


WELLINGTON RODRIGUES DE FREITAS

IMPLEMENTAÇÃO DE CONTROLE PID EM UM


MICROCONTROLADOR PARA CONTROLE DE TEMPERATURA
COM INTERFACE GRÁFICA

Campos dos Goytacazes/RJ


Abril/2013
II

LÉDIO DE CARVALHO GONÇALVES JUNIOR


WELLINGTON RODRIGUES DE FREITAS

IMPLEMENTAÇÃO DE CONTROLE PID EM UM


MICROCONTROLADOR PARA CONTROLE DE TEMPERATURA
COM INTERFACE GRÁFICA

Trabalho de conclusão de curso apresentado ao


Instituto Federal de Educação, Ciência e
Tecnologia Fluminense como requisito parcial
para conclusão do curso de Bacharelado em
Engenharia de Controle e Automação.

Orientador: Prof. MSc. Helder Siqueira

Campos dos Goytacazes/RJ


Abril/2013
III

LÉDIO DE CARVALHO GONÇALVES JUNIOR


WELLINGTON RODRIGUES DE FREITAS

IMPLEMENTAÇÃO DE CONTROLE PID EM UM


MICROCONTROLADOR PARA CONTROLE DE TEMPERATURA
COM INTERFACE GRÁFICA

Trabalho de conclusão de curso apresentado ao


Instituto Federal de Educação, Ciência e
Tecnologia Fluminense como requisito parcial
para conclusão do curso de Bacharelado em
Engenharia de Controle e Automação.

Aprovada em 09 de Abril de 2013

Banca Avaliadora:

.................................................................................................................................
Prof. Alexandre Carvalho Leite
Dr. Engenharia e Tecnologia Espaciais/ Mecânica Espacial e Controle/INPE
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos

...........................................................................................................................................
Prof. Sergio Assis Galito de Araujo
MSc. Engenharia Mecânica /UFF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos

.................................................................................................................................
Prof. Helder Siqueira Carvalho (orientador)
MSc. Computação Aplicada e Automação/UFF
Instituto Federal de Educação, Ciência e Tecnologia Fluminense/Campos
IV

AGRADECIMENTOS

Agradecemos primeiramente a Deus, pela vida e por permitir que chegássemos até aqui.

Agradecemos também aos nossos familiares por nos apoiarem em todos os momentos de

nossas vidas, nos dando uma segurança para seguir em frente.

Aos professores da instituição pela dedicação e o pelo o amor de repassar o conhecimento

deles para podermos dar continuidade.

Aos amigos e colegas que fizemos e que nos ajudaram durante todo o decorrer da nossa vida

acadêmica.

Ao Prof. Helder Siqueira Carvalho pela orientação do trabalho.

Por fim ao Instituto Federal de Educação, Ciência e Tecnologia Fluminense por disponibilizar

recursos da instituição para elaboração deste trabalho, além de todo amparo e do

conhecimento adquirido, desde o ensino médio e técnico ao ensino superior, seremos gratos

para sempre.
V

RESUMO

O controle Proporcional Integral e Derivativo (PID) implementado em controladores


industriais é uma técnica bastante utilizada em controles de variáveis de processos industriais.
Porém em um pequeno microcontrolador esta forma de realizar controle também pode ser
utilizada. Com isso o presente trabalho visa a implementação deste tipo de controle no
microcontrolador e a criação de uma interface gráfica de modo que o dispositivo venha se
comunicar com o PC utilizando o protocolo RS-232. Possibilitando o monitoramento do
sistema de forma remota. Para o desenvolvimento do trabalho foi criado um protótipo de
modo que seja possível realizar o controle PID microcontrolado e com uma interface gráfica.
Foram construídos circuitos de medição, comunicação e interface de potência. Utilizou-se
softwares grátis e assim minimizou-se as despesas com o projeto com o intuito de torná-lo
mais atrativo e viável no uso acadêmico. O objetivo é manter a variável temperatura
controlada no set-point. Aplicou-se o controle de malha fechada, na qual utiliza-se o
microcontrolador PIC-18F4550, da Microchip, para efetuar leitura de informações, processá-
las e tomar a ação de controle para correção do erro entre o valor desejado e o valor lido. O
controle se dá através de um algoritmo Proporcional Integral e Derivativo (PID). Através do
método de tentativa e erro encontrou-se os valores adequados das ações proporcional, integral
e derivativa no processo. Ao término do presente trabalho todos os objetivos foram
alcançados de forma satisfatória, sendo realizada com sucesso a monitoração da temperatura
utilizando o protocolo estudado através das técnicas estudas.

Palavras-chave: Microcontrolador. Controle PID. Comunicação. Interface gráfica.


VI

ABSTRACT

The Proporcional Integral e Derivativo (PID) control implemented in factory controllers is a


very used technician in variable controls the industrialized process. However in a small
microcontroller this is a possible way of control. This task is done to implement this kind of
control in a microcontroller and the breeding of a graphic interface to make the device and the
PC communicate themselves using the RS-232 protocol, facilitating the system in a remote
way. A prototype in which the microcontrol PID control can be used was developed because
of this task with a graphic interface. Measurement switch, communication and power
interface were created. Free softwares were used in order to decrease the expenses with the
project to make it more attractive and practicable in a university. The aim is to keep the
variable temperature controlled at the set-point. We used the feedback control in which is
used the PIC-18F4550 microcontroller, from Microchip, to read and process the information
and the self action to correct the mistake between the desirable and the read value. The control
is done by a Proporcional Integral and Derivativo (PID) algorithm. Throughout the trial and
error method was found the real values for the proportional, complete and derivative actions
in the process. At the end of this task all the aims were reached in a satisfactory way. The
monitoring of the temperature was successfully realized using the studied protocol through
the studied technicians.

Keywords: microcontroller. Microcontroller. PID Control. Communication. Graphic interface.


VII

LISTA DE FIGURAS

FIGURA 1 - Desenho esquemático de um microcontrolador .................................................. 17

FIGURA 2 - Arquitetura de Von-Neumann.............................................................................. 18

FIGURA 3 - Arquitetura de Harvard ....................................................................................... 18

FIGURA 4 - Pinos do PIC18F4550.......................................................................................... 21

FIGURA 5 - Registradores TRIS, PORT e LAT...................................................................... 22

FIGURA 6 - Conversor Analógico-Digital .............................................................................. 23

FIGURA 7 - Conector DB-9 Macho e Fêmea .......................................................................... 25

FIGURA 8 - Pacote de dados de 11bits.................................................................................... 25

FIGURA 9 - Sinal de saída PWM ............................................................................................ 28

FIGURA 10 - Diagrama de blocos da malha aberta................................................................. 31

FIGURA 11 - Diagrama de blocos que representa a malha fechada ........................................ 32

FIGURA 12 - Diagrama de blocos do controlador proporcional ............................................. 33

FIGURA 13 - Diagrama de blocos para o controlador integral ............................................... 34

FIGURA 14 - Resposta de um controlador integral a uma perturbação em degrau ................. 34

FIGURA 15 - Resposta da ação derivativa para as condições de erro da figura...................... 35


VIII

FIGURA 16 - Controlador PID paralelo .................................................................................. 36

FIGURA 17- Diagrama com as relações de compilação .......................................................... 38

FIGURA 18 - Criação de um novo projeto .............................................................................. 39

FIGURA 19 – Tela TERMINAL SERIAL .............................................................................. 40

FIGURA 20 – Tela MONITORAÇÃO .................................................................................... 41

FIGURA 21 - Projeto implementado ....................................................................................... 42

FIGURA 22 - Pinos do sensor de temperatura ......................................................................... 43

FIGURA 23 - Foto do sensor utilizado .................................................................................... 43

FIGURA 24 - Kit E-P18 ........................................................................................................... 44

FIGURA 25 - Placa de desenvolvimento ................................................................................. 45

FIGURA 26 - Display LCD ..................................................................................................... 45

FIGURA 27 - Resistência de aquecimento .............................................................................. 46

FIGURA 28 - Placa com o circuito de potência ....................................................................... 46

FIGURA 29 - Circuito da placa ................................................................................................ 47

FIGURA 30 - Circuito de comunicação ................................................................................... 48

FIGURA 31 - Circuito montado na protoboard ....................................................................... 48

FIGURA 32 - Ligação protoboard com o computador ............................................................ 49


IX

FIGURA 33 - Gráfico com SP de 35°C ................................................................................... 52

FIGURA 34 - Gráfico com SP de 40°C ................................................................................... 53

FIGURA 35 - Gráfico com SP de 45°C ................................................................................... 54

FIGURA 36 - Gráfico com SP de 50°C ................................................................................... 54

FIGURA 37 - Gráfico com SP de 55°C ................................................................................... 55

FIGURA 38 - Gráfico com SP de 60°C ................................................................................... 56

FIGURA 39 - Gráfico com a visão geral da monitoração ........................................................ 56


X

LISTA DE ABREVIATURAS, SIGLAS E SÍMBOLOS

A/D - Analógico/Digital
CCP - Capture, Compare e PWM
CI’s - Circuito Integrados
CK - Clock
CLP - Controlador lógico programável
CLR - Common Language Runtime
CPU - Central Processing Unit
D - Controlador derivativo
DCE - Comunicador de Dados
DT - Dado
DTE - Terminal de Dados
E - Erro
EIA - Eletronic Industries Association
HLDV - Módulo de detecção de alta/baixa voltagem
I - Controlador Integral
I/O - Input / Output
IHM - Interface Homem Máquina
IL - linguagem intermediária
KD - Ganho do Controlador Derivativo
KI - Ganho do Controlador Integral
KP - Ganho do Controlador Proporcional
MCU ou µC - Microcontroladores
MV - Variável Manipulada
P - Controlador Proporcional
PC - Personal Computer
PID - Controlador Proporcional Integra Derivativo
PV - Variável de Processo
PWM - Modulação Por Largura de Pulso
RISC - Computador com Conjunto Reduzido de Instruções
RX - Recepção
SFRs - Special Function Registers (Registradores de Função Especial)
XI

SP - Setpoint
TD - Tempo derivativo
TI - Tempo Integral
TX - Transmissão
USART - Universal Synchronous Asynchronous Receiver Transmitter
VP - Variável de Processo
XII

SUMÁRIO

LISTA DE FIGURAS........................................................................................................... VII

LISTA DE ABREVIATURAS, SIGLAS E SÍMBOLOS ..................................................... X

1 INTRODUÇÃO ................................................................................................................... 14
1.1 Apresentação ..................................................................................................................... 14
1.2 Objetivo ............................................................................................................................. 14
1.3 Justificativa ....................................................................................................................... 15
1.4 Estrutura do Trabalho ..................................................................................................... 15

2 MICROCONTROLADORES ............................................................................................ 17
2.1 Definição ............................................................................................................................ 17
2.2 Arquitetura ....................................................................................................................... 18
2.3 Unidade Central de Processamento ................................................................................ 19
2.4 PIC18F4550 ....................................................................................................................... 20
2.4.1 Memórias ........................................................................................................................ 21
2.4.2 Portas I/O Digitais ......................................................................................................... 22
2.4.3 Conversor Analógico/Digital ........................................................................................ 23
2.4.4 USART............................................................................................................................ 24
2.4.5 Protocolo RS-232 ........................................................................................................... 24
2.4.6 Modulação por Largura de Pulso ................................................................................ 27

3 CONTROLE ........................................................................................................................ 29
3.1 Introdução ......................................................................................................................... 29
3.2 Definições........................................................................................................................... 29
3.2.1 Variável Controlada e Variável Manipulada.............................................................. 30
3.2.2 Sistemas a Controlar ou Plantas .................................................................................. 30
3.2.3 Processos ......................................................................................................................... 30
3.2.4 Sistemas .......................................................................................................................... 30
3.2.5 Distúrbios ....................................................................................................................... 31
3.3 Sistemas de Controle de Malha Aberta .......................................................................... 31
XIII

3.4 Sistemas de Controle de Malha Fechada........................................................................ 31


3.5 Malha Fechada Versus Malha Aberta ............................................................................ 32
3.6 Controlador Proporcional (P) ......................................................................................... 32
3.7 Controlador Integral (I) ................................................................................................... 33
3.8 Controlador Derivativo (D) ............................................................................................. 35
3.9 Controlador Proporcional Integral Derivativo (PID) ................................................... 36

4 INTERFACE GRÁFICA COM O USUÁRIO .................................................................. 37


4.1 Visual C# ........................................................................................................................... 37
4.2 Arquitetura da Plataforma Net Framework .................................................................. 37
4.3 Linguagem C# ................................................................................................................... 38
4.4 Telas Criadas .................................................................................................................... 39

5 METODOLOGIA ............................................................................................................... 42
5.1 Aplicação Prática ............................................................................................................. 42
5.2 Medição de Temperatura ................................................................................................ 43
5.3 Kit Didático de Desenvolvimento .................................................................................... 44
5.4 Interface de Potência ........................................................................................................ 46
5.5 Circuito de Comunicação ................................................................................................. 47
5.6 Protocolo Criado ............................................................................................................... 50
5.7 Algoritmo de Controle...................................................................................................... 50

6 RESULTADOS .................................................................................................................... 52

7 CONCLUSÃO...................................................................................................................... 57
7.1 Sugestões para Trabalhos Futuros.................................................................................. 57

REFERÊNCIAS ..................................................................................................................... 58
ANEXO .................................................................................................................................... 60
ANEXO A: Tabela de Códigos ASCII .................................................................................. 61
APÊNCICE ............................................................................................................................. 62
APÊNDICE A: Código Gravado no PIC18F4550 ............................................................... 63
14

1 INTRODUÇÃO

1.1 Apresentação

A automação de processos industriais é uma realidade nos dias de hoje, pois possui
vantagens consideráveis como, aumento de confiabilidade e produção, eficiência, redução de
custos e melhorias na qualidade do produto. A crescente necessidade de se controlar
processos industriais faz com que diferentes estratégias sejam proposta com o mesmo
objetivo.
Nos processos industriais existe um conjunto de variáveis que precisam ser
controladas, para que se obtenha um produto de qualidade. Respeitando as normas de
segurança. O objetivo geralmente é manter a variável controlada em um valor pré-fixado
(desejado) que é denominado setpoint. Um dos meios para que se consiga tal feito é
implementar um controle de malha fechada, na qual utiliza-se o microcontrolador PIC-
18F4550, da Microchip, para efetuar leitura de informações, processá-las e realizar o controle
para que se possa atuar de modo a conseguir a correção devida.
Técnicas de controle como, Proporcional Integral e Derivativo (PID), utilizadas com
Controladores Lógicos Programáveis (CLP) já se encontram bem consolidadas, por isso são
muito aplicadas em diversos processos industriais. Com microcontroladores essa técnica de
controle também pode ser implementada construindo-se um algoritmo PID de controle, de
modo que se consiga aproveitar dos benefícios desta técnica em um pequeno
microcontrolador.
A utilização de microcontroladores e um programa de interface gratuito tornam o
projeto de controle mais barato, quebrando o paradigma de que automatizar requer custos
elevados. A ferramenta usada para interface é recomendada para usuários iniciantes com a
programação na linguagem C#, cuja interface torna o desenvolvimento das aplicações mais
rápido. Podemos assim implementar um projeto com baixo custo e atraente para o mercado.

1.2 Objetivo

Este trabalho tem como objetivo principal construir um protótipo para realizar o
controle PID microcontrolado da variável temperatura e fazer comunicação entre o
microcontrolador e o PC (personal computer em inglês ou computador pessoal em
15

português), realizando um estudo do protocolo de comunicação utilizado, de forma que se


consiga fazer o monitoramento do sistema controlado a distância.

1.3 Justificativa

A utilização de sistemas microcontrolados para realizar controle de processos


industriais tem se tornado cada vez mais comum, já que o custo reduzido no projeto e a
facilidade de modificação por se tratar de um software interno e o tamanho reduzido justifica
o seu uso.
A maioria dos projetos eletrônicos, onde se utiliza microcontrolador necessita de
interface com o usuário, a ferramenta de desenvolvimento Visual C# Express é uma forma de
resolver esta necessidade de interface homem-máquina. A linguagem C e o controle realizado
por microcontroladores PIC são matérias do curso de Engenharia de Controle e Automação,
sendo assim facilita-se o planejamento do projeto e diminui-se o custo de futuras
implementações. O uso de software grátis na interface homem maquina torna-se mais atrativo
e acessível à realização de um sistema supervisório.

1.4 Estrutura do Trabalho

Este trabalho está organizado em sete capítulos.


O capítulo 1, o capítulo de introdução, tem o papel de apresentar o tema, os objetivos e
justificativas para a realização deste trabalho, bem como a forma em que ele está organizado.
Os capítulos 2 e 3 fornecem o aporte teórico para que o leitor entenda a metodologia
proposta no trabalho.
Sendo que no capítulo 2 é apresentado o principal dispositivo utilizado no trabalho, o
Microcontrolador, nele contém uma base teórica da sua estrutura, bem como o funcionamento
dos seus principais periféricos utilizados no trabalho.
Já no capítulo 3 são apresentadas as fundamentações teóricas da área de controle, que
serve como base para o entendimento da técnica aplicada e de suas definições.
O capítulo 4 aborda a interface gráfica com o usuário, bem como o software utilizado,
sua linguagem de programação, arquitetura e as telas criadas para a monitoração.
O capítulo 5 discorre sobre a metodologia do trabalho, apresentando a construção do
protótipo para realizar controle e o funcionamento de cada parte integrante do protótipo, bem
como suas principais características.
16

O capítulo 6 apresenta os resultados da experimentação prática do trabalho,


evidenciando os gráficos gerados na monitoração da variável medida, temperatura.
O capítulo 7 traz as conclusões pertinentes deste trabalho e apresenta as sugestões para
trabalhos futuros.
17

2 MICROCONTROLADORES

Este capítulo apresenta a estrutura de um microcontrolador bem como os seus


principais periféricos utilizados no trabalho.

2.1 Definição

Os microcontroladores (µC ou MCU) são pequenos dispositivos dotados de


“inteligência”, basicamente constituídos de CPU (Central Processing Unit
em inglês, ou Unidade Central de Processamento em português),
memória(dados e programas) e periféricos (portas E/S, I²C, SPI, USART
etc.). Suas dimensões reduzidas são resultantes da alta capacidade de
integração, em que milhões de componentes são inseridos em uma única
pastilhas de silício pela técnica de circuitos integrados(CI‟s). Eles estão
presentes na maioria dos equipamentos digitais, como celulares, MP3 player,
impressoras, robótica, instrumentação, entre outros. (MIYADAIRA,
2011,p.21).

A Figura 1 apresenta o desenho esquemático de um microcontrolador, evidenciando o


seu principal componente, o microprocessador, e os seus periféricos.

Figura 1 - Desenho esquemático de um microcontrolador.


18

2.2 Arquitetura

Harvard e Von-Neumann são as duas principais arquiteturas utilizadas em projetos de


microcontroladores (MIYADAIRA, 2011).
Na arquitetura de Von-Neumann, como mostrada na Figura 2, o mesmo barramento é
compartilhado pelas memórias de dados e programa, limitando a banda de operação.

Figura 2 - Arquitetura de Von-Neumann.

A Figura 3 representa a arquitetura de Harvard, onde existem dois barramentos, sendo


um para acesso à memória de programa e outro para a memória de dados, proporcionando um
maior fluxo de dados.

Figura 3 - Arquitetura de Harvard.


19

2.3 Unidade Central de Processamento

Os microcontroladores possuem uma Unidade Central de Processamento - UCP que é


o componente vital deste sistema, na verdade a UCP é a principal responsável pelas operações
no microcontrolador. Ela tem a função de realizar operações com os dados, na maioria das
vezes numéricos. Para efetuar essas operações, a UCP precisa em primeiro lugar interpretar
que tipo de operação ela terá que realizar (pode ser subtração de dois valores, soma, divisão,
multiplicação, operação lógica e assim por diante). Depois antes da realização da operação de
processamento é necessário que os dados estejam armazenados no dispositivo que irá efetuar
a operação.
Pode-se perceber que a UCP não realiza processamento apenas, mas é capaz de
controlar todo o funcionamento do sistema (busca a descrição da tarefa a ser realizada,
chamada instrução, interpreta que tipo de operação terá que efetuar, procura e busca os dados
que serão processados).
Segundo MONTEIRO(2002) todas as operações de manipulação de dados tem que
estar representada de uma única forma, que seja possível de ser entendido pelo sistema, que é
uma sequência de sinais elétricos, cuja intensidade corresponde a 0 e 1 em uma sequência
bits.
A sequência de bits, provenientes dos sinais elétricos, identifica uma determinada
operação que tem que ser realizada pelo processador, que chamamos de instrução de máquina.
O programa que necessita ser executado é um conjunto de instruções de máquinas
sequencialmente organizadas, para que estas instruções sejam realizadas é preciso realizar as
seguintes etapas:

 As instruções que irão ser realizadas tem que estar armazenadas na memória principal.
 Buscar os dados armazenados para trazer até a UCP.
 Executar a operação com os dados e guardar o resultado no local definido na
instrução.
 Efetuar todo o processo localizando outra instrução.

Estas etapas descritas acima é o que se chama de ciclo de instrução, ele se repete
infinitamente até que o sistema seja desligado, ou ocorra um erro, ou ainda, uma instrução de
20

parada. A UCP é construída com a única finalidade de realizar sucessivamente estas


operações, de modo a realizar o processamento e controle dos dados.

2.4 PIC18F4550

O microcontrolador utilizado no trabalho é fabricado pela Microchip e pertence a


família PIC18, ele é formado com base na arquitetura de Harvard com instruções do tipo
RISC (Computador com Conjunto Reduzido de Instruções). A seguir são apresentadas
algumas características do PIC18F4550:

 Memória Flash para armazenamento do programa : 32 Kbytes.


 Memória SRAM para armazenamento dos dados: 2 Kbytes.
 Memória EEPROM de dados: 256 bytes.
 Portas para serem configuradas com entradas ou saídas: 35.
 Portas para serem configuradas como canais de entradas analógicas: 13.
 Módulo CCP (Capture/Compare/PWM).
 TIMER de 8 bits e 16 bits: 4.
 Watchdog Timer.
 Frequência de operação de até 48MHZ.
 Periféricos avançados de comunicação: Porta de comunicação serial, porta de
comunicação USB 2.0.
 Dois comparadores analógicos.
 Módulo de detecção de alta/baixa voltagem (HLDV).

Na Figura 4 seus pinos podem ser observados, uma descrição detalhada de cada pino,
bem como de cada periférico poderá ser vista no datasheet do PIC18F4550, disponível no site
da Microchip, referenciado no final deste documento.
21

Figura 4 - Pinos do PIC18F4550.

2.4.1 Memórias

Nos microcontroladores da família PIC18 existem três tipos de memórias, memória de


programa, memória de dados e memória EEPROM (MIYADAIRA, 2011).
A memória de programa (do tipo não volátil) guarda o código do programa
(instruções) do microcontrolador e permiti durante a operação normal, ler, escrever e apagar
os dados. Ela pode ser adquirida no formato FLASH, ROM, OTP/EEPROM.
A memória de dados (do tipo volátil), também conhecida como arquivo de registro,
está presente em todos os dispositivos e armazena dados do SFRs (Special Function Registers
em inglês e Registradores de Funções Especiais em português). Os SFRs são destinados a
configuração, controle, status dos periféricos e portas E/S.
A EEPROM (do tipo não volátil) é o terceiro tipo de memória. Ela permite guardar e
manipular dados, entretanto caso o dispositivo não esteja sendo alimentado, o conteúdo não é
perdido.
22

2.4.2 Portas de I/O Digitais

As portas I/O (input/output) digitais são interface de entrada/saída com mundo


externo, onde os valores da porta alternam entre „0‟ e „1‟, através delas o microcontrolador
consegue ler informações externas a ele, bem como acionar diretamente dispositivos, como,
por exemplo, acionamento de relés, válvula, motor, entre outros.
O PIC18F4550 utilizado no trabalho possuí cinco portas disponíveis (A, B, C, D, E).
Os pinos destas são multiplexados com diferentes funções de periféricos. Normalmente
quando um periférico é habilitado, o pino configurado correspondente não pode ser utilizado
como I/O, e passa a realizar uma determinada função. Cada porta possuí três registradores
para realizar diferentes configurações nos pinos que se deseja trabalhar. São eles:

 Registrador TRIS: configura o sentido de fluxo de dados na porta, ou seja, configura o


pino como entrada ou saída.
 Registrador PORT: lê o nível lógico dos pinos da porta que foram configurados como
entrada.
 Registrador LAT: armazena o valor do comando de escrita.

A Figura 5 representa a estrutura dos registradores do PIC18F4550.

Figura 5 – Registradores TRIS, PORT e LAT.


23

2.4.3 Conversor Analógico/Digital

Um conversor analógico/Digital (A/D) converte um sinal analógico (seja ele de


temperatura, pressão, luminosidade, tensão etc.) em um valor digital (representado em
binário) proporcional a ele. Esse valor pode ser representado dentro de uma faixa de valores,
que fica entre 0 e ( ), isso ocorre porque o valor convertido é dependente da
resolução do conversor e da tensão de referência( ). A Figura 6 ilustra o funcionamento

de um Conversor Analógico-Digital.

Figura 6 – Conversor Analógico-Digital.

A equação 2.1 descreve o valor correspondente à variação de cada unidade:

(2.1)

O conversor A/D do microcontrolador PIC18F4550 tem 13 canais analógicos


multiplexados (AN0 a AN12), com resolução de 10bits. Para utilizar o conversor é necessário
conhecer as funções de controle que serão utilizadas na programação, as funções são:

 BusyADC( ) - Verifica se o módulo conversor está em processo de conversão ou não.


Se estiver ocupado (em processo de conversão) retorna „1‟, ou retorna‟0‟ se estiver
disponível para realizar uma nova conversão.
24

 OpenADC(configuração) - Habilita e configura o módulo conversor.


Configuração: são as configurações do conversor separadas por um „&‟.
 CloseADC( ) - Desabilita o conversor.
 ConvertADC( ) – Inicia o processo de conversão do sinal analógico.
 ReadADC( ) – Retorna o valor que foi convertido pelo conversor.
 SetChanADC(configuração) – Seleciona o canal analógico que será usado para efetuar
a conversão.
Configuração: Nome do canal que será selecionado, como por exemplo, ADC_CH1
para selecionar o canal analógico „1‟.

2.4.4 USART

A USART (Universal Synchronous Asynchronous Receiver Transmitter) ou interface


de comunicação serial como também é conhecida, pode trabalhar no modo assíncrono ou
síncrono, de acordo como é configurada. O modo assíncrono (full- duplex) na maioria das
vezes é usado quando se almeja comunicar com computadores pessoais, e o síncrono (half-
duplex) possibilita a comunicação com conversores A/D, EEPROM serial etc.
Quando programado para trabalhar como assíncrono, ele utiliza os pinos RX
(recepção) e TX (transmissão) para comunicação, já no modo síncrono utilizasse os pinos CK
(clock) e DT (dado).
A USART é um circuito eletrônico do microcontrolador que fica responsável pela
interface entre o dispositivo e a porta serial. Uma forma muito utilizada desse módulo é a
comunicação assíncrona RS-232.

2.4.5 Protocolo RS-232

Criado pela EIA (Eletronic Industries Association) para comunicação entre um DTE
(terminal de dados) e um DCE (um comunicador de dados) o protocolo RS-232 é um padrão
de comunicação serial, conhecido também por EIA-232. Na maioria das vezes o pacote de
dados enviados é formado por 10 ou 11bits, dos quais 8bits formam a mensagem, 1bit de
inicio (Start Bit), 1/1.5/2bit(s) de parada (Stop Bit) e 1bit de paridade (Parity bit) para controle
de um eventual erro na mensagem.
25

Quando se deseja usar uma porta serial, torna-se necessário escolher um tipo de
conector, normalmente utilizam do tipo DB9, DB25 e RJ45, sendo que o mais usado é o DB9.
A Figura 7 mostra o conector DB - 9 macho e fêmea com seus respectivos pinos.

Figura 7 - Conector DB-9 Macho e Fêmea.

Quando o canal serial não está transmitindo nenhuma informação, ele possui nível
lógico „1‟. Para informar ao receptor o início de uma nova comunicação, o transmissor coloca
nível lógico „0‟ (Start bit) no canal, sinalizando que iniciou a transmissão de dados. Logo em
seguida o receptor inicia à contagem de clock, internamente para receber os dados.
Depois de enviar o start bit, o transmissor manda a mensagem formada por 8bits de
acordo com a tabela ASCII (ANEXO), começando pelo bit menos significativo (LSB),
seguido do bit de paridade (opcional) e por último um Stop bit, informando para o receptor o
final da transmissão. A respeito das taxas de transmissão, normalmente as mais utilizadas são
300bps, 600bps, 1200bps, 2400bps, 4800bps, 9600 bps e 19200bps.
Na Figura 8 pode-se observar um pacote de dados de 11 bits, utilizado na transmissão
de dados serial.

Figura 8 - Pacote de dados de 11bits


26

O protocolo RS-232 é assíncrono. Isso quer dizer que para realizar com sucesso a
comunicação entre dispositivos, o receptor tem que estar configurado com a mesma taxa de
transmissão do transmissor, ou seja, se os dados estão sendo enviados a uma taxa de
19200bps e receptor tem que estar configurado para receber 19200bps. Se isso não acontecer
à informação não será interpretada de forma correta.
Para utilizar a USART de modo a conseguir implementar corretamente o protocolo é
necessário conhecer as funções de controle que serão utilizadas na programação, as funções
são:
 BusyUSART( ) - Verifica se a USART do microcontrolador está transmitindo, caso
esteja ocupada retorna „1‟, se estiver livre retorna „0‟.

 DataRdyUSART( ) - Verifica se chegou um dado no buffer de recepção, caso tenha


chegado retorna „1‟, se não tiver retorna „0‟.

 WriteUSART(dado) - Envia um caractere como informação.

Dado: é uma constante de 8bists tipo char, pertencente ao código ASCII (ANEXO I).

 ReadUSART( ) - Retorna o conteúdo do buffer de recepção.

 OpenUSART(configuração,BRG) – Configura a forma como a USART irá funcionar.

Configuração: Configura a USART de acordo com a tabela 2, separados por „&‟.

BRG: Informa a taxa de transmissão dos dispositivos, deve ser calculado de acordo
com a tabela 1.

Tabela 1 - Taxa de comunicação da USART


Modo Velocidade BRG

Modo assíncrono
(baud rate alto)

Modo assíncrono
(baud rate baixo)

Modo assíncrono
27

Tabela 2 - Constantes de configuração.


Função Constante Descrição

Interrupção na transmissão USART_TX_INT_ON Habilita


USART_TX_INT_OFF Desabilita

Interrupção na recepção USART_RX_INT_ON Habilita


USART_RX_INT_OFF Desabilita

Modo USART USART_TX_INT_ON Modo assíncrono


USART_TX_INT_OFF Modo sincrono
Quantidade de bits na USART_ASSYNCH_MODE Recebe/Tansmite 8 bits
transmissão USART_SYNCH_MODE Recebe/Tansmite 9 bits
Seleciona o dispositivo como USART_EIGHT_BIT Modo Slave
Master ou Slave USART_NINE_BIT Modo MASTER

Modo de recepção USART_SINGLE_RX Recepção de um dado


USART_CONT_RX Recepção Contínua

Baud rate USART_BRG_HIGH Baud rate alto


USART_BRG_LOW Baud rate baixo

Na interface RS-232 os níveis lógicos são representados da seguinte maneira:

 0: tensão entre +3V a +25V


 1: tensão entre -3V a -25V
 Indefinido (região de transição): tensão entre -3V a + 3V

Como os níveis de tensão utilizado na comunicação RS-232 são diferentes dos níveis
TTL, para realizar a comunicação entre microcontrolador e computador e vice-versa é
necessário utilizar conversores de nível, capazes de efetuar esta conversão. Estes conversores
serão mostrados detalhadamente mais a frente, bem como o seu circuito de comunicação.

2.4.6 Modulação por Largura de Pulso

O PIC18F4550, microcontrolador utilizado no trabalho, possuí o módulo CCP


(Capture, Compare ou PWM).
Ele pode ser configurado para trabalhar como Capture, Compare ou PWM (Pulse
Width Modulation em inglês ou Modulação por Largura de Pulso em português). Em seguida
é mostrada a descrição de cada um deles.
28

 Capture: Mede o tempo entre dois eventos.


 Compare: Dispara um determinado evento em um período predeterminado.
 PWM: Controla a tensão fornecida a uma carga, modificando a largura do pulso do
sinal, dentro de um período de tempo prefixado.

No trabalhado é utilizado o módulo CCP para operar como PWM, ele fornece através
do seu respectivo pino um sinal PWM com resolução de 10bits.
A modulação por largura de pulso (PWM) tem a função de controlar o tempo que o
sinal permanecerá em nível alto (duty cycle), como pode ser observado na Figura 9.

Figura 9 - Sinal de saída PWM.

Este sinal é muito importante para este trabalho, pois ele servirá como o sinal de
controle do processo.
29

3 CONTROLE

3.1 Introdução

O controle automático tem acompanhado o avanço da engenharia e da ciência. Este é


de grande importância e parte integrante dos modernos processos industriais e de produção. O
controle automático é essencial no controle de máquinas-ferramentas nas indústrias
manufatureiras, nos sistemas de piloto automático na indústria aeroespacial, em operações
industriais como o controle de pressão, de temperatura, de umidade, de viscosidade e de vazão
nos processos industriais.
Os avanços no controle vêm proporcionando meios para otimizar o desempenho dos
sistemas dinâmicos, melhorar a produtividade, diminuir rotinas de operações manuais
repetitivas, entre outros. A maioria dos engenheiros e dos cientistas tende a ter bons
conhecimentos nessa área.
OGATA (2003) destaca algumas aplicações clássicas do controle automático. A
primeira aplicação significativa foi o regulador centrífugo construído por James Watt para o
controle da velocidade de uma máquina a vapor, no século XVIII. Em 1922, Minorsky
utilizou controladores automáticos para pilotagem de embarcações e demonstrou como a
estabilidade poderia ser determinada a partir de equações diferenciais que descrevem o
sistema. Em 1932, Nyquist desenvolveu um procedimento relativamente simples para a
determinação da estabilidade se sistemas de malha fechada como base na resposta de malha
aberta a excitações senoidais estacionárias.
Segundo OGATA (2003) a partir de 1960, a disponibilidade dos computadores digitais
possibilitou a análise de sistemas complexos no domínio do tempo com o emprego de
variáveis de estado, foi desenvolvida para lidar com a crescente complexidade dos sistemas
modernos e seus rigorosos requisitos relativos à precisão.
Com a redução do preço dos computadores digitais torna-se viável a utilização dos
mesmos em sistemas de controle.

3.2 Definições

Ao discutirmos os sistemas de controle, é necessário que seja definido uma


terminologia básica.
30

3.2.1 Variável Controlada e Variável Manipulada

OGATA (2003) conceitua variável controlada como, a grandeza ou condição que é


medida e controlada. Essa é a grandeza ou a condição modificada pelo controlador, afetando o
valor da variável controlada. Normalmente, a variável controlada é a saída do sistema.
Controlar significa medir o valor da variável controlada do sistema e utilizar a variável
manipulada ao sistema para corrigir ou limitar os desvios do valor medido a partir de um
desejado.
No estudo da engenharia de controle, se torna necessário definir termos adicionais que
ajudarão na descrição dos sistemas de controle.

3.2.2 Sistemas a Controlar ou Plantas

Um sistema que se deseja controlar pode ser parte de equipamento ou apenas um


conjunto de componentes de um equipamento que funcione de maneira integrada, com o
objetivo de realizar determinada operação.

3.2.3 Processos

De acordo com o dicionário Merriam-Webster um processo pode ser definido como


uma operação natural de progresso contínuo ou um desenvolvimento caracterizado por uma
série de modificações graduais que se sucedem umas às outras de modo relativamente estável,
avançando em direção a determinado resultado ou objetivo; ou uma operação contínua
progressiva, artificial ou voluntária, que consiste em uma série de ações ou movimentos
controlados, sistematicamente destinados a atingir determinados fins ou resultados.

3.2.4 Sistemas

A combinação de componentes que agem em conjunto para atingir determinado


objetivo é chamado de sistemas. A ideia de sistema não fica restrita apenas a algo físico. O
conceito de sistema pode ser aplicado a fenômenos abstratos dinâmicos como aqueles
encontrados na economia. Dessa maneira, a palavra „sistema‟ pode ser empregada para se
referir a sistemas físicos, biológicos, econômicos e outros.
31

3.2.5 Distúrbios

Um sinal que tende a afetar de maneira adversa o valor da variável de saída de um


sistema é chamado de distúrbio. Se um distúrbio for gerado dentro de um sistema, ele será
chamado de distúrbio interno, enquanto um distúrbio externo é aquele gerado fora do sistema
e que se comporta como um sinal de entrada no sistema.

3.3 Sistemas de Controle de Malha Aberta

Sistemas em que o sinal de saída não exerce nenhuma ação de controle no sistema é
dito sistemas de controle de malha aberta. Com isso pode-se perceber que em um sistema de
controle de malha aberta o sinal de saída não é medido nem realimentado para comparação
com a entrada. Um bom exemplo é o da máquina de lavar roupas. Onde as operações de
colocar de molho, lavar e enxaguar em uma lavadora são executadas em uma sequência em
função do tempo. A lavadora não mede o sinal de saída, isto é, não verifica se as roupas estão
bem lavadas.
Na Figura 10 pode-se perceber que um sistema de controle em malha aberta não
possuí uma realimentação, esta é a principal diferença entre a malha aberta e malha fechada.

Figura 10 – Diagrama de blocos da malha aberta.

3.4 Sistemas de Controle de Malha Fechada

Os sistemas de controle com realimentação são, na maioria das vezes, chamados de


sistemas de controle de malha fechada. Na prática, os termos controle com realimentação e
controle de malha fechada não possui diferença. No sistema de controle de malha fechada, o
sinal de erro, que é a diferença entre o sinal de entrada e o sinal de realimentação, realimenta
o controlador, de forma que diminui o erro e coloque a saída do sistema no valor desejado.
32

A Figura 11 exemplifica o funcionamento de um sistema de controle de malha fechada


utilizando diagrama de blocos.

Figura 11 - Diagrama de blocos que representa a malha fechada.

3.5 Malha Fechada Versus Malha Aberta

Uma vantagem do sistema de controle de malha fechada é o fato de que o uso da


realimentação faz com que a resposta do sistema seja relativamente insensível a distúrbios e
variações internas nos parâmetros do sistema. Desta forma, é possível a utilização de
componentes relativamente imprecisos e baratos para obter o controle preciso de determinado
sistema, ao passo que isso não é possível nos sistemas de malha aberta.
Analisando a estabilidade, o sistema de controle de malha aberta é mais fácil de ser
construído, devido ao fato de a estabilidade ser um problema não muito importante. Já nos
sistemas de controle de malha fechada a estabilidade constitui um problema importante, que
podem apresentar uma tendência de correção de erros além do necessário, causando
oscilações de amplitude constante ou variável.

3.6 Controlador Proporcional (P)

Quando se fala em controle contínuo o controle proporcional é o mais simples modo


que pode reduzir as oscilações em uma malha de controle. Ele é mais eficaz que o controle
on-off, porém não faz que a variável de processo seja igual ao setpoint.
Analisando matematicamente, a saída do controlador (MV) é proporcional ao erro,
sendo o erro considerado como a diferença entre variável de processo (PV) e o valor desejado
(SP). O ganho do controlador (Kp) pode ser definido como a relação entre uma mudança na
saída do controlador e a mudança na variável do processo.
33

MV = Kp . E (3.1)

E = (PV – SP) (3.2)

Kp = (3.3)

Sendo:
Kp = ganho do controlador
E = erro
MV = variável manipulada

A Figura 12 exemplifica o funcionamento de um controlador proporcional.

Figura 12 – Diagrama de blocos do controlador proporcional.

3.7 Controlador Integral (I)

A ação de controle integral é capaz de remover o erro em regime permanente, pois


enquanto estiver presente, a saída do controlador continua a modificar seu valor, no intuito de
eliminar o erro. A equação para a ação integral pode ser vista na equação 3.4

(3.4)

Sendo MV0 como a saída do controlador na condição inicial. A Figura 13 mostra o


diagrama de blocos para o controlador integral.
34

Figura 13 – Diagrama de blocos para o controlador integral.

A resposta da ação de controle integral para um erro em forma de degrau é mostrada


na Figura 14.

Figura 14 – Resposta de um controlador integral a uma perturbação em degrau.

Pode-se perceber na Figura 14 que quando PV aumenta em forma de degrau no tempo


t1 e retorna ao setpoint em t2, a saída do controlador tem a forma de uma rampa no intervalo
de tempo entre t1 e t2. Quando o valor de PV é modificado em virtude da ação do controle
integral o mesmo tende a retornar para o setpoint em t = t2, a saída mantém o valor que estava
quando atingiu o setpoint.
O controlador aplica um sinal no formato de rampa para que a MV seja modificada, a
taxa desse sinal depende de dois parâmetros, sendo o tempo integral (Ti) e a magnitude do
erro (E).
O tempo integral pode ser explicado como “o tempo necessário para o integral repetir
o que faz o proporcional”. Em alguns casos o termo empregado pode ser o de uma constante
integral, Ki (inverso de Ti), e não o tempo integral como visto na equação 3.5.
35

= = (3.5)

3.8 Controlador Derivativo (D)

A função da ação derivativa é modificar a saída do controlador de modo a eliminar


atrasos na malha de controle, ele antecipa para onde o processo está indo, sempre analisando a
taxa de variação do erro dE/dt. A saída do controlador será proporcional a esta taxa.
A equação 3.6 descreve a saída do controlador derivativo, ela é o resultado da
multiplicação do tempo derivativo (TD), também chamado de ganho derivativo (KD),
multiplicado pela taxa de variação do erro.

(3.6)

A Figura 15 exemplifica diferentes situações da atuação da ação derivativa. À medida


que a taxa do erro aumenta, á saída aumenta. Como a variação da taxa é constante, a saída
também será constante para estas variações de erro.

Figura 15 – Resposta da ação derivativa para as condições de erro da figura.


36

É importante resaltar que o controle derivativo não pode ser utilizado separadamente
em um controlador, pois esta ação não identifica o setpoint atual, a ação derivativa “somente
sabe que o erro está variando”.

3.9 Controlador Proporcional Integral Derivativo (PID)

O controlador Proporcional Integral Derivativo (PID) une os três tipos de ação dos
controladores, ele pode ser arranjado na configuração série ou paralelo e ainda pode utilizar a
ação derivativa padrão ( ) ou a modificada ( ).

A equação 3.7 descreve a saída do controlador PID paralelo.

(3.7)

A Figura 16 mostra o controlador PID paralelo.

Figura 16 – Controlador PID paralelo.

O objetivo de utilizar o controlador PID é o fato de que ele apresenta um período de


resposta semelhante ao controlador proporcional, porém sem erro. A ação derivativa do
controlador aumenta a velocidade de resposta necessária para reduzir o tempo de atraso de
resposta do controlador que foi introduzida pela ação integral.
37

4 INTERFACE GRÁFICA COM O USUÁRIO

4.1 Visual C#

O programa utilizado para realizar a interface com o usuário é o Microsoft Visual C#


Express edition, ele é um programa do pacote de programas da Microsoft para
desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens
Visual Basic (VB), C, C++, C# (C Sharp) e J# (J Sharp). Também é um grande produto de
desenvolvimento na área web, usando a plataforma do ASP. NET. As linguagens com maior
frequência nessa plataforma são: VB.NET (Visual Basic.Net) e o C♯ (lê-se C Sharp). Através
dele e com a criatividade do usuário é possível criar inúmeras aplicações de desenvolvimento.

4.2 Arquitetura da Plataforma Net Framework

Programas escritos em C# utiliza o Framework .Net (lê-se dotnet), ele é um


componente do Windows chamado Common Language Runtime (CLR) e um conjunto
unificado de bibliotecas de classes, que inclui um sistema de execução virtual das aplicações
para criar um ambiente seguro e integrado para o desenvolvimento e execução.
O código escrito em C# é compilado em uma linguagem intermediária (IL), o código
compilado em IL são armazenados no disco em um arquivo executável chamado de um
assembly, normalmente com uma extensão .exe ou .dll.
Quando o programa desenvolvido em C# é executado o assembly é carregado para o
CLR, que compila o programa e transforma IL em instruções de máquinas. O CLR também
oferece outros serviços relacionados à coleta de lixo automática, tratamento de exceções e
gerenciamento de recursos. Na Figura 17 é mostrado o diagrama com essas relações.
38

Figura 17 – Diagrama com as relações de compilação.

4.3 Linguagem C#

A sintaxe do C# é uma sintaxe simples e fácil de aprender por aqueles que já estão
familiarizados com a linguagem C, C++ ou Java. Os desenvolvedores que sabem trabalhar
com uma dessas linguagens já conseguem começar a trabalhar de forma produtiva com o C#
em período de tempo muito pequeno.
Quando se desejar trabalhar com objetos deve-se criar um novo projeto e em seguida
escolher o tipo Windows Forms Application, a Figura 18 mostra a criação de um novo projeto.
39

Figura 18 – Criação de um novo projeto.

Após criar o novo projeto o usuário começa a desenvolvê-lo, de modo a escolher os


objetos que se deseja trabalhar e arrastar o mesmo para a tela de desenvolvimento. Após
montada a sua tela de desenvolvimento ele configura a ação, em linguagem C#, para cada
objeto e em seguida compila e testa o seu programa até obter êxito. Pode-se também tirar
proveito de livros e recursos da Web sobre C# para aprender as práticas de programação.

4.4 Telas Criadas

Utilizando o programa e a linguagem de programação citados acima foram criadas


duas telas para realizar a monitoração do sistema a ser controlado. A primeira, chamada de
TERMINAL SERIAL, possuí as seguintes funções: Configurar os parâmetros da porta serial,
conectar e desconectar a porta serial escolhida, enviar dados para o microcontrolador e
visualizar o protocolo que está chegando pela porta.
A Figura 19 mostra a tela TERMINAL SERIAL com estas funções que foram citadas
acima.
40

Figura 19 - Tela TERMINAL SERIAL.

A segunda tela construída, chamada de MONITORAÇÃO, também exerce grande


importância no projeto criado, pois ela tem os seguintes objetivos: Visualizar o
comportamento da variável de processo e do setpoint em um gráfico, visualizar o valor da
variável de processo e do setpoint em um campo específico e alterar o setpoint remotamente,
pois possui um campo para inserir um valor e um botão para envia-lo para o
microcontrolador. Desta forma demonstrando que o sistema não somente recebe dados, como
também envia caso seja necessário.
A Figura 20 ilustra a tela MONITORAÇÃO com suas funções que foram citadas.
41

Figura 20 - Tela MONITORAÇÃO.


42

5 METODOLOGIA

5.1 Aplicação Prática

O projeto apresentado na Figura 21 tem a finalidade de efetuar o controle de


temperatura da água, em um recipiente com aproximadamente meio litro de água. A medição
da temperatura é feita através de um sensor que envia um sinal de tensão para a entrada
analógica do PIC18F4550. O PIC18F4550 com o auxilio do seu conversor A/D realiza a
leitura do sensor e armazena o seu valor na variável PV, declarada na programação do
microcontrolador. Como o programa gravado no PIC está sendo constantemente processado, e
como a variável PV faz parte do código PID implementado, o valor de PV é mantido
atualizado e o resultado desses cálculos é dado como argumento para o duty-cycle (saída
PWM). Este último é o sinal de controle que tem a função de alterar o valor da variável.
Paralelo a tudo isso o sistema é monitorado por uma interface gráfica criada com o
programa Visual C#, que se comunica com o microcontrolador através da comunicação serial.

Figura 21 - Projeto implementado.


43

5.2 Medição de Temperatura

Para realizar a medição de temperatura da água foi utilizado o sensor MCP9700A,


produzido pela mesma empresa que fabrica o microcontrolador utilizado no trabalho, a
Microchip. Abaixo são listadas as suas características:

 Fabricante: Microchip.
 Faixa de operação: -40°C a 125° C.
 Alimentação: 2,3 a 5,5 volts.
 Precisão: +/- 1°C.
 Coeficiente de temperatura: 10mV/°C.

Na figura 22 são mostrados seus pinos com seus respectivos números, e na Figura 23 a
foto do sensor utilizado.

Figura 22 – Pinos do sensor de temperatura.

Figura 23 – Foto do sensor utilizado.


44

5.3 Kit Didático de Desenvolvimento

O Kit didático E-P18, mostrado na Figura 24, é uma placa eletrônica fabricada pela
empresa SEMPRA Tecnologia, para aprendizagem e desenvolvimento de sistemas
microcontrolados. O componente principal do kit é o microcontrolador PIC18F4550,
localizado no centro da placa, mas o kit também possuí vários componentes como: Display
LCD, Display de 7 segmentos, Relé, LEDs, LDR, Potenciômetro, sensor de temperatura,
chaves, buzzer e bornes de I/O para conectar a outros componentes externos.

Figura 24 - Kit E-P18.

A alimentação da placa, em 5 volts, e a gravação do programa é feita pela porta USB


presente na mesma, a placa também possuí um conector para que ela possa ser alimentada por
uma bateria de 12V caso ela tenha que ficar distante de um computador .
Na Figura 25 é mostrada a placa com informações da localização de todos os seus
componentes presentes.
45

Figura 25 - Placa de desenvolvimento.

Nem todos os componentes da placa foram utilizados no trabalho, mas os que foram
são de vital importância.
O display LCD foi utilizado para mostrar o valor do SP (setpoint) e MV (variável
manipulada), ele é importante para auxiliar na monitoração do sistema, já que como já foi dito
anteriormente ela é feita remotamente por um computador.
A Figura 26 mostra o display LCD sendo usado na monitoração.

Figura 26 – Display LCD.


46

5.4 Interface de Potência

A interface de potência tem a finalidade de alterar o valor de VP, ela foi construída em
uma placa de cobre com seus componentes soldados a ela, seus principais componentes são a
resistência de aquecimento e o transistor TIP 142.
O primeiro, a resistência de aquecimento, irá dissipar seu calor produzido na água, esta
quantidade de calor depende da tensão que é aplicada na mesma e consequentemente da
corrente que fluirá por ela.
O segundo, o transistor TIP 142, fará que a tensão varie na carga proporcionalmente
com o sinal de controle.
A Figura 27 apresenta a resistência de aquecimento utilizada no trabalho, e a Figura 28
mostra a placa que contem o circuito de potência.

Figura 27 - Resistência de aquecimento.

Figura 28 - Placa com o circuito de potência.


47

O transistor foi acoplado em um dissipador de calor, para que o calor produzido no


mesmo, em virtude da corrente que circula por ele, não altere a sua linearidade e nem ocorra à
queima do componente. Foram introduzidos também na placa bornes para que se possa
conectar a carga e efetuar a medição de tensão que está sendo entregue a ela.
O desenho do circuito confeccionado na placa pode ser visto na Figura 29.

Figura 29 - Circuito da placa.

5.5 Circuito de Comunicação

O circuito de comunição construído para o trabalho tem a função de realizar a


comunicação entre o microcontrolador e o computador, de modo que os valores medidos pelo
sensor de temperatura possam ser mostrados na tela do computador em tempo real, bem como
o valor de setpoint possa ser alterado a qualquer momento pelo operador.
A Figura 30 apresenta o desenho do circuito responsável por realizar esta
comunicação.
48

Figura 30 - Circuito de comunicação.

O circuito acima foi montado em uma protoboard, tem como principal componente o
CI MAX 232. Ele é responsável para converter o sinal TTL de 0 a 5V da transmissão e
recepção serial do microcontrolador, para o padrão RS-232.
A Figura 31 mostra o circuito montado na protoboard.

Figura 31 – Circuito montado na protoboard.


49

O fio da cor vermelha e o da cor azul ligados a protoboard, são o +5V e o 0V


respectivamente. Eles são responsáveis pela alimentação da placa.
Já o fio da cor verde e o da cor amarelo são o TX e RX do dispositivo,
respectivamente. Eles são responsáveis pela transmissão e recepção de dados do
microcontrolador, estes fios possuem um sinal com nível lógico TTL.
Foi montado também na placa um conector de 3 pinos que está ligado, através de um
cabo, ao conector do tipo DB-9. Este por sua vez contém o sinal no padrão RS-232 e por isso
é conectado ao computador.
A Figura 32 apresenta a ligação entre o conector ligado a protoboard e o computador.
Pode-se também perceber através da figura que foi utilizado um cabo conversor DB-9 X USB,
pois o computador utilizado na monitoração é um notebook e não possui a entrada DB-9. No
caso de se utilizar um computador que já possui a porta DB-9 o conversor não precisará ser
utilizado.

Figura 32 - Ligação protoboard com o computador.


50

5.6 Protocolo Criado

Utilizou-se o padrão RS-232 para realizar a comunicação entre microcontrolador e o


PC, mas se fez necessário a criação de um protocolo, em código no microcontrolador, para o
PC identificar os valores enviados pelo dispositivo, como também para o microcontrolador
identificar os dados recebidos.
O microcontrolador envia ciclicamente para o PC o valor da temperatura, em bits, e o
setpoint, em °C, atual. Para o envio do valor de temperatura, de 0 a 1023 bits, ele segue o
seguinte padrão: [AD0:****], onde „[„ é o caractere que indica o início do protocolo, „AD0‟
significa que esta utilizando o conversor A/D de número 0, „:‟ é um caractere de separação,
„****‟ é o valor da temperatura em bits e „]‟ é o caractere que indica o fim do protocolo. Já
para o setpoint seguiu o seguinte padrão: [SP:**], onde „[„ é o caractere que indica o início do
protocolo, „SP‟ indicada o envio do setpoint, „:‟ é um caractere de separação, „**‟ é o valor do
setpoint em °C de 0 a 99 e „]‟ é o caractere que indica o fim do protocolo.

5.7 Algoritmo de Controle

Segundo FRANCHI (2011) a expressão matemática de uma função de controle é dita


algoritmo de controle. Como mencionado anteriormente, o controle PID é implementado no
microcontrolador através de um algoritmo programado no dispositivo. O algoritmo criado
para este trabalho é obtido através da discretização da equação 5.1.

(5.1)

A equação 5.2 é a discretização da equação 5.1 e é através dela que é formada o


algoritmo de controle.

(5.2)

Onde k é o numero de amostra e T é o período de amostragem.


51

Abaixo é apresentado um trecho do programa, comentado e gravado no


microcontrolador, ele foi obtido através da equação 5.2 e representa uma aproximação da
mesma.

Eant = Ea ; // Erro (k-1) //


Ea = SP - PV ; // Erro atual é a diferença de SP e PV//
proporcional = Ea*Kp; //Ação proporcional//
soma=(soma+Ea); //Somatória do erro//
integral= Ki *soma; //Ação integral//
derivativo=Kd*(Ea- Eant); //Ação derivativa//
MV=(proporcional+integral+derivativo); //Saída do controlador//

A variável MV, saída do controlador, serve como argumento para o duty cycle do
PWM, este valor varia entre 0 a 600, o que corresponde um valor de tensão no PWM de 0 a 5
volts. Através deste sinal, sinal de controle, é que é possível realizar o controle de potência
fornecida à carga.
52

6 RESULTADOS

Neste capítulo são apresentados os resultados da implementação prática do trabalho,


com o objetivo de verificar se o sistema projetado é capaz de se comunicar de forma confiável
com o PC e de realizar o controle de temperatura da água. Antes de iniciar os testes foi
escolhido um range de temperatura de 35°C a 60 °C para o sistema controlar, pois os valores
das constantes do PID não são as mesmas para controlar outro range.
Os valores das constantes do PID foram escolhidas através de tentativa e erro, de
forma que o sistema consiga controlar a temperatura da água com um erro máximo de 1° C,
tanto para cima como para baixo, este valor de erro foi escolhido como requisito do projeto,
uma vez que o sensor possuí uma precisão de mais ou menos 1°C.
Após ter iniciada a monitoração do sistema com a temperatura da água em torno de
30°C foi alterado o setpoint para 35°C. Logo em seguida o controlador começou a atuar de
forma a chegar ao setpoint. A Figura 33 mostra a monitoração do sistema, através dela é
possível perceber que a PV conseguiu alcançar o SP, com a tolerância de 1°C. A linha azul
indica o SP, a vermelha indica PV e a linha verde indica a máxima ou a mínima temperatura
permitida.

Figura 33- Gráfico com SP de 35°C.


53

Após 150 segundos o sistema alcançou o SP e logo em seguida atingiu o regime


permanente, ficando em 35,5°C. Foi alterado o SP para 40°C, a Figura 34 ilustra a
monitoração do sistema para este SP.

Figura 34- Gráfico com SP de 40°C.

Após 150 segundos o sistema alcançou novamente o SP e logo em seguida atingiu o


regime permanente, ficando em 41°C. Foi alterado o SP novamente, agora para 45°C, a
Figura 35 ilustra a monitoração do sistema para este SP.
54

Figura 35- Gráfico com SP de 45°C.

Após 150 segundos o sistema alcançou novamente o SP e logo em seguida atingiu o


regime permanente, ficando em 45,7°C. Foi alterado o SP novamente, agora para 50°C, a
Figura 36 ilustra a monitoração do sistema para este SP.

Figura 36- Gráfico com SP de 50°C.


55

Após 140 segundos o sistema alcançou novamente o SP e após algumas oscilações


atingiu o regime permanente, ficando em 50,5°C. Foi alterado o SP novamente, agora para
55°C, a Figura 37 ilustra a monitoração do sistema para este SP.

Figura 37- Gráfico com SP de 55°C.

Após 100 segundos o sistema alcançou novamente o SP e logo em seguida atingiu o


regime permanente, ficando em 54,6°C. Foi alterado pela última vez o SP, agora para 60°C, a
Figura 38 ilustra a monitoração do sistema para este SP.
56

Figura 38- Gráfico com SP de 60°C.

Após 180 segundos o sistema alcançou pela última vez o SP e logo em seguida atingiu
o regime permanente, ficando em 59 °C. A Figura 39 ilustra a visão geral da monitoração,
com a alteração de todos os SP.

Figura 39- Gráfico com a visão geral da monitoração.


57

7 CONCLUSÃO

Foi concluída a construção do protótipo a fim de realizar o controle de temperatura da


água, e estabelecida à comunicação entre o microcontrolador e o PC, de modo que foi
possível monitorar a variável de processo e alterar o setpoint remotamente.
Concluiu-se que a comunicação entre os dispositivos é confiável, pois não apresentou
erros durante os testes e que o microcontrolador pode sim ser usado como um controlador de
processo, pois o código PID é facilmente implementado em sua programação.
O método utilizado para obter as constantes do PID, tentativa e erro, foi eficaz, pois o
controlador conseguiu trazer a variável de processo para o valor do setpoint, respeitando os
requisitos do projeto.
O software utilizado para realizar a criação das telas e fazer a monitoração do sistema
foi uma ferramenta de muita importância para o projeto, ela mostrou que possui uma interface
de fácil utilização e intuitiva, com possibilidades de recursos avançados. Também permitiu o
aprendizado de uma nova ferramenta de trabalho para nós engenheiros.

7.1. Sugestões Para Trabalhos Futuros

 Realizar o controle de outra variável, como por exemplo, o nível.


 Utilizar uma interface de potência usando IGBTs, de modo que a tensão fornecida à
carga seja uma tensão alternada.
 Utilizar um software comercial para se comunicar com o microcontrolador e monitorar
a variável.
 Realizar um estudo de sintonia para o controlador PID, implementado no
microcontrolador em linguagem C.
58

REFERÊNCIA

BARROSO, José A. de Souza. Arquitetura de aplicações distribuídas utilizando .NET.


Disponível em:<http://www.linhadecodigo.com.br/artigos.asp?id_ac=458&pag=1>. Acesso
em: 14 Mar. 2013.

Code Project. A Flexible Charting Library for .NET. Disponível em:<


http://www.codeproject.com/Articles/5431/A-flexible-charting-library-for-NET>. Acesso em:
13 Jul. 2012.

Data Sheet Microchip do PIC18F2455/2550/4455/4550. Disponível em


<http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf> Acesso em: 20 nov. 2012,
10:45.

FRANCHI, Claiton Moro. Controle de Processos Industriais: Princípios e Aplicações. 1 ed.


São Paulo: Érica, 2011. 255 p.

HEMERLY, Elder Moreira. Controle por Computador de Sistemas Dinâmicos.2 ed. São
Paulo: Edgard Blücher, 1996.

MESSIAS, Antônio Rogério. Comunicação com a porta serial. Disponível em:<


http://www.rogercom.com/>. Acesso em: 14 Nov. 2012.

MIYADAIRA, Alberto Noboru. Microcontroladores PIC 18: Aprenda e programe em


Linguagem C. São Paulo: Érica, 2011. 400 p.

MONTEIRO, Mário A.. Introdução à Organização de Computadores. 4 ed. Rio de Janeiro:


LTC. 498 p.

National Instrument. Explicando a Teoria PID. Disponível em:< http://www.ni.com/white-


paper/3782/pt>. Acesso em: 15 Mar. 2013.

OGATA, Katsuhiko. Engenharia de Controle Moderno.4 ed. São Paulo: Pearson


Education, 2003. 788 p.

TORRES, Fernando Esquírio; MARTINS, Henrique Resende. Apostila Didática PICMINAS:


Sistemas Microcontrolados, Belo Horizonte, 2012, CD-ROM.
59

Visual C#. Site oficial da Microsoft Brasil sobre o MSDN - Visual C#. Disponível em:<
http:/msdn.microsoft.com/library/vsutudio/z1zx9t92>. Acesso em: 17 Nov. 2012.
60

ANEXO
61

ANEXO A: Tabela de Códigos ASCII


62

APÊNDICE
63

APÊNDICE A: Código Gravado no PIC18F4550

/** I N C L U D E S **********************************************************/
#include <p18cxxx.h>
#include <usart.h>
#include <ADC.h>
#include <delays.h>
#include "displayLCD.h"
#include <timers.h>
#include <pwm.h>
//** D E F I N E S ************************************************************/
#define CH1 PORTEbits.RE2
#define CH2 PORTEbits.RE1
#define Resolucao 5.0/1023.0
#pragma config CCP2MX = ON
/** V A R I A V E I S G L O B A I S ****************************************/
unsigned char ucMASK[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; // Protocolo da
comunicação serial
unsigned char ucEnvia[4]; // Protocolo da comunicação serial
unsigned char ucEnvia1[2]; // Protocolo da comunicação serial
unsigned char ucMASK1[] = {'0','1','2','3','4','5','6','7','8','9'};
char a='['; // Protocolo da comunicação serial
char b='A'; // Protocolo da comunicação serial
char c='D'; // Protocolo da comunicação serial
char d='0'; // Protocolo da comunicação serial
char e=':'; // Protocolo da comunicação serial
char f=']'; // Protocolo da comunicação serial
char s='S'; // Protocolo da comunicação serial
char p='P'; // Protocolo da comunicação serial
char valor1; // Protocolo da comunicação serial
char valor2; // Protocolo da comunicação serial
char ucRecebe; // Protocolo da comunicação serial
unsigned int Valor; // Protocolo da comunicação serial
int temp; // Possui o balor de temperatura em binário
int Ea = 0;
int Eant = 0;
int soma = 0;
int SP = 15;
int SP0 = 0;
int SP1 = 0;
float PV;
int proporcional;
int integral ;
int derivativo;
int Kp = 100;
int Ki = 1;
int Kd = 30;
int MV = 0;
int flag=0;
unsigned char Texto[20]; // Protocolo da comunicação serial
unsigned char *Ponteiro; // Protocolo da comunicação serial
unsigned char dado_recebido;
64

unsigned char dado1[];

void ConfiguraSistema (void);


void ConfiguraInterrupcao(void);
void Tratamento_High_Interrupt(void);
void main(void)

{
ConfiguraSistema(); // Configura as portas e periféricos do PIC.

while(1) // Laço infinito que executa o funcionamento principal do projeto.


{
valor1=SP;
ucEnvia1[1] = ucMASK1[valor1%10]; // Protocolo da comunicação serial
valor1/=10;
ucEnvia1[0] = ucMASK1[valor1%10]; // Protocolo da comunicação serial

// Escreve no display LCD o vaor de SP e MV //


PosicaoCursorLCD(1,1);
EscreveFraseRomLCD("MV");
if(MV>99)
{
PosicaoCursorLCD(1,4);
EscreveInteiroLCD(MV);
PosicaoCursorLCD(1,7);
EscreveFraseRomLCD("");
}
if((MV<100)&&(MV>9))
{
PosicaoCursorLCD(1,4);
EscreveInteiroLCD(0);
PosicaoCursorLCD(1,5);
EscreveInteiroLCD(MV);
PosicaoCursorLCD(1,7);
EscreveFraseRomLCD("");
}
if(MV<10)
{
PosicaoCursorLCD(1,4);
EscreveInteiroLCD(0);
PosicaoCursorLCD(1,5);
EscreveInteiroLCD(0);
PosicaoCursorLCD(1,6);
EscreveInteiroLCD(MV);
PosicaoCursorLCD(1,7);
EscreveFraseRomLCD("");
}
PosicaoCursorLCD(2,1);
EscreveFraseRomLCD("SP");
PosicaoCursorLCD(2,4);
EscreveInteiroLCD(SP);
65

if(CH1)
{
flag=1;
}
if(CH2)
{
flag=0;
}
if(flag)
{
if(!BusyADC())
Valor=ReadADC(); // Lê o sensor de temperatura
temp=Valor;
PV=(temp * Resolucao)*100-50; // Converte o valor em ºC
ConvertADC();
}
ucEnvia[3] = ucMASK[Valor%10]; // Protocolo da comunicação serial
Valor/=10;
ucEnvia[2] = ucMASK[Valor%10]; // Protocolo da comunicação serial
Valor/=10;
ucEnvia[1] = ucMASK[Valor%10]; // Protocolo da comunicação serial
Valor/=10;
ucEnvia[0] = ucMASK[Valor%10]; // Protocolo da comunicação serial
Valor/=10;
if(DataRdyUSART())
{
Delay10KTCYx(120);
dado_recebido = ReadUSART();
Delay10KTCYx(120);
WriteUSART(dado_recebido);
Delay10KTCYx(120);
}
if(dado_recebido == 'S') // Condição para alterar o Setpoint
{
while(!DataRdyUSART());
dado1[0] = ReadUSART(); // Recebe a dezena
SP0 = atoi(dado1);
SP0=SP0*10;
while(!DataRdyUSART());
dado1[0] = ReadUSART(); // Recebe a unidade
SP1 = atoi(dado1);
SP = SP0 + SP1; // Soma dezena com unidade
dado_recebido = 0;
}
if(!BusyUSART()) // Envia os dados pela serial
{
WriteUSART(a); // [
Delay10KTCYx(120);
WriteUSART(b); // A
Delay10KTCYx(120);
WriteUSART(c); // D
Delay10KTCYx(120);
66

WriteUSART(d); // 0
Delay10KTCYx(120);
WriteUSART(e); // :
Delay10KTCYx(120);
WriteUSART(ucEnvia[0]); // 1
Delay10KTCYx(120);
WriteUSART(ucEnvia[1]); // 0
Delay10KTCYx(120);
WriteUSART(ucEnvia[2]); // 2
Delay10KTCYx(120);
WriteUSART(ucEnvia[3]); // 3
Delay10KTCYx(120);
WriteUSART(f); // ]
Delay10KTCYx(120);
WriteUSART(a); // [
Delay10KTCYx(120);
WriteUSART(s); // S
Delay10KTCYx(120);
WriteUSART(p); // P
Delay10KTCYx(120);
WriteUSART(e); // :
Delay10KTCYx(120);
WriteUSART(ucEnvia1[0]); // 2
Delay10KTCYx(120);
WriteUSART(ucEnvia1[1]); // 0
Delay10KTCYx(120);
WriteUSART(f); // ]
}

SetDCPWM2(MV);

}//end flag
}//end while(1)
}//end main

/******************************************************************************
* Funcao: void ConfiguraSistema(void)
* Descrição: ConfiguraSistema é a rotina de configuração principal do projeto.
*Seu objetivo é configurar as portas de I/O e os demais periféricos do microcontrolador para que
operem da maneira desejada no projeto.
*****************************************************************************
void ConfiguraSistema (void)
{
ConfiguraLCD();
TRISEbits.TRISE2=1;
TRISEbits.TRISE1=1;

OpenUSART(USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
67

USART_BRGH_LOW &
USART_ADDEN_OFF
,77);

OpenADC(ADC_FOSC_64 &
ADC_RIGHT_JUST &
ADC_2_TAD,
ADC_CH0 &
ADC_INT_OFF &
ADC_REF_VDD_VSS,
ADC_5ANA);

WriteTimer0(28036);

OpenTimer0(TIMER_INT_ON &
T0_16BIT &
T0_SOURCE_INT &
T0_PS_1_256);

OpenTimer2(TIMER_INT_OFF & T2_PS_1_4); // Timer para configuração do PWM


OpenPWM2(149);

ConfiguraInterrupcao(); // Função que configura as interrupções do sistema

}//end ConfiguraSistema

/****************************************************************************
* Funcao: void ConfiguraInterrupcao(void)
* Descrição: Função que configura a interrupções utilizada no projeto
****************************************************************************/
void ConfiguraInterrupcao(void)
{
RCONbits.IPEN = 1; // Habilita prioridades de interrupcao
INTCONbits.GIEH = 1; // Habilita vetor de alta prioridade
INTCONbits.GIEL = 0; // Desabilita vetor de baixa prioridade
INTCON2bits.TMR0IP=1;
INTCONbits.TMR0IE=1;
INTCONbits.TMR0IF=0;
}// end ConfiguraInterrupcao

/****************************************************************************
* Funcao: void Tratamento_High_Interrupt(void)
*****************************************************************************
#pragma interrupt Tratamento_High_Interrupt
void Tratamento_High_Interrupt(void)
{
if(INTCONbits.TMR0IF)
{
WriteTimer0(0);

Eant = Ea ;
68

Ea = SP - PV ;
proporcional = Ea*Kp;
soma=(soma+Ea);
if(soma>50)
{
soma=50;
}
if(soma<0)
{
soma=0;
}
integral=soma*Ki;
derivativo=Kd*(Ea- Eant);
MV=(proporcional+integral+derivativo);
if(MV>600)
{
MV=600;
}
if(MV<0)
{
MV=0;
}

INTCONbits.TMR0IF=0; // LIMPAR O FLAG

}// fecha if

}// end Tratamento_High_Interrupt

Potrebbero piacerti anche