You are on page 1of 34

1.

Introduo

Este artigo tem o interesse de mostrar como pode ser feita a integrao entre o
Arduino e o MATLAB, no controle de um processo. O processo de teste e
demonstrao criado foi um sistema de aquecimento, automatizado pelo Arduino, que
uma ferramenta prtica para reger circuitos eletrnicos, sendo este ento o meio
fsico pelo qual a automao acontece. O MATLAB, por sua vez, est sendo o guia
inteligente, que envia sua programao para o micro-controlador do Arduino que
executa os comandos criados via IDE do MATLAB.
Este processo possvel graas a porta serial inerente ao Arduino, que o faz
capaz de comunicar-se com um computador, atravs de uma entrada USB. O MATLAB
por sua vez, pode receber ou enviar dados pela comunicao serial, e assim o controle
completo. A explorao desta comunicao foi feita neste projeto para enfatizar o
que de melhor h em cada uma dessas ferramentas. O projeto deste artigo um
sistema de aquecimento, que possui uma estrutura fsica, e um controle virtual por
trs da mesma. O Arduino controla duas vlvulas e um fogareiro que sero
responsveis pela vazo de gua quente ou fria para dentro do compartimento ao qual
se deseja controlar a temperatura. Os dados poderiam ser interpretados pelo Arduino
que controlaria essa temperatura, porm ou essa temperatura teria que estar prdefinida no cdigo fonte do programa, ou ento o circuito seria muito mais complexos,
envolvendo displays, potencimetros e outros componentes para que fosse possvel
um controle dinmico da temperatura.
Neste ponto, o MATLAB entra como segunda ferramenta em nosso problema.
Atravs do ambiente de interface grfica do MATLAB. Foi criada uma interface (GUI
Graphical User Interface) onde podero ser modificados os valores bases para o
controle de temperatura, alm de uma coleta de dados muito mais elegante. Isso
porque o MATLAB possui vasta cadeia de ferramentas grficas, e assim os dados
podem ser acompanhados atravs de um grfico, que mostrar o limite inferior e
superior da faixa de controle de temperatura. Assim realizando a tarefa do sistema de
controle de temperatura com maior xito.
Nas prximas etapas deste artigo poderemos ver com mais detalhadas a
funcionalidade desse sistema e como o mesmo poderia ser expandido. Demonstrando
tambm os detalhes da comunicao entre cada ferramenta, MATLAB e Arduino.
Contudo, o leitor aps o trmino do artigo ter condio de utilizar o conjunto aqui
apresentado para criar processos diversos na automao e instrumentao como
termmetros, sensores de rudos, entre outras as diversas necessidades do ambiente
acadmico de se medio para a realizao de experimentos e atividades de extenso.

2. Metodologia e Fundamentao Terica

2.1. O MATLAB

Jack Little e Cleve Moler, so os fundadores da MathWorks, a empresa que


surgiu aps a criao do MATLAB. Este surgiu quando eles perceberam a necessidade
que engenheiros e cientistas tinham de uma ferramenta mais abrangente que as
linguagens de programao disponveis at ento, como o Fortran e o C. Criaram ento
uma ferramenta baseada nos clculos de matrizes, para realizar todo tipo de clculos
tanto da linha cientfica quanto da linha das engenharias.

Figura 2.1.1 Tela de inicializao do MARLAB da verso utilizada neste artigo.

O MATLAB uma linguagem de programao orientada a objeto com uma


vasta biblioteca, onde esto funes de uso em diversas reas, como anlise e
modelagem econmica e financeira, clculos de estruturas, estudos de sinais e ondas,
propagao e anlise de erros, grficos entre outros. Sua biblioteca possui um
comando muito importante, que interliga e mostra todos os comandos disponveis
naquela verso, o help. Com ele possvel entender como a sintaxe de uma funo
deve ser utilizada e para que esta serve, alm de mostrar exemplos de sua utilizao.
Tambm inerente ao MATLAB est o GUIDE (GUI Development Environment),
que o ambiente de desenvolvimento das interfaces grficas do MATLAB. Este

ambiente de fcil entendimento e fcil manuseio, tornando possvel o


desenvolvimento de programas em MATLAB para todo o tipo de utilizao. Os
programas criados pelo GUIDE geram um arquivo .fig que guarda o modelo visual do
programa e um arquivo .m onde est contida toda a sua codificao. Claro, que
dependendo do programa, sendo este possuidor de diversas janelas e sees, o
nmero de arquivos gerados igual a duas vezes o nmero de janelas existentes.

Figura 2.1.2 Janela de edio de uma nova GUI

Estas GUIs (Graphical User Interfaces), podem ser executadas fora do ambiente
MATLAB a partir do comando mcc m nome do arquivo.m, que gera o executvel
do programa criado no GUIDE, ou qualquer outro arquivo .m, sendo que ento ser
possvel que o arquivo seja executado em qualquer computador. Para isso no
necessrio que o programa possua a IDE do MATLAB instalada, apenas requerida a
instalao do MATLAB Compiler Runtime (MCR), disponvel no site da MathWorks, na
seguinte url: <http://www.mathworks.com/products/compiler/mcr/>. A MathWorks
permite que criadores de programas em linguagem MATLAB distribuam junto seu
programa o MCR (somente o MCR). Maiores informaes sobre os direitos autorais
encontram-se no site da MathWorks.

2.2. O Arduino

Iniciado em 2005 na cidade de Ivre, na Itlia, o Arduino foi criado como uma
nova opo em plataformas de prototipagem eletrnica, frente s plataformas no
acessveis existentes na poca. E tambm tinha o objetivo de tornar a iniciao
daquelas pessoas que no possuam conhecimentos em eletrnica mais rpida no
sentido de produo aplicvel. Em 2006, o Arduino recebeu a meno honrosa na
categoria Comunidades Eletrnicas, pela Prix Ars Eletrnica, e tambm a marca de
50.000 placas vendidas.
Com a facilidade em operar-se fisicamente a placa, e a fcil linguagem de
programao e o seu ambiente limpo de desenvolvimento, que tornou essa expanso
extremamente rpida possvel. Alm do fato de ser uma plataforma Open-Source, ou
seja, os cdigos Arduino so abertos a todos, bem como tambm todos os
componentes da placa. Devido a isso hoje existem diversas variaes do Arduino.
Qualquer um pode montar seu prprio Arduino.

Figura 2.2.1 Placa Arduino UNO correspondente com a utilizada no projeto.

Tecnicamente falando, o Arduino possui diversos modelos de placa, cada um


deles com algumas diferenas em seu hardware, como mais portas digitais e
analgicas, comunicaes atravs de serial ou wireless, entre outras. Neste artigo foi
utilizado o modelo da placa Arduino UNO Ver 3. Que contm 6 portas analgicas, 12
portas digitais sendo seis destas podendo ser configuradas como PWM (Pulse Width
Modulation), que so portas que podem ser utilizadas para sada de valores de 0 a 255,
para controle de componentes no digitais. A verso UNO uma placa bastante limpa
e com as funes principais do Arduino, sendo necessrio o uso de Shields e outros
componentes para expandi-lo a ambientes como Bluetooth.
Uma outra importante caracterstica a comunicao pela serial, que permite
que os cdigos sejam inseridos de um computador para dentro do micro-controlador
do Arduino UNO (ATMega 328), atravs da porta USB. E isso tambm permite a

comunicao do Arduino em tempo de execuo com diversos programas em diversas


plataformas. Uma delas ser abordada aqui. A comunicao entre Arduino e Matlab.
Para a aplicao deste projeto, importante o conhecimento das
caractersticas tcnicas do Arduino. Suas portas digitais suportam uma corrente de at
50 mA. Enquanto as Power Pins, que so as portas de Vcc e Ground, suportam at 500
mA. Poucas aplicaes prticas utilizaro uma corrente to baixa. Motores, vlvulas,
displays e muitos outros tendero a puxar uma corrente bem maior que essas. Neste
caso, necessrio um circuito de proteo. Que consiste em um transistor com sua
base sendo acionada pela sada digital do Arduino, assim possibilitando passagem de
corrente atravs do coletor e do emissor. Nele estar conectado um rel, que ento
abrir o circuito onde est conectado o componente a ser usado. Neste projeto, os
rels ativaro as duas vlvulas e o fogareiro.

2.3. Integrando as duas plataformas

Falando desta aplicao especfica, para controlarmos o Arduino pela


codificao em MATLAB existem duas maneiras. Uma fazendo com que o Arduino
envie valores a porta serial, que sero lidos pelo MATLAB, e vice-versa. Outra soluo
a desenvolvida pela MathWorks, para gerir a comunicao com o Arduino. Um pacote
disponibilizado no site do MathWorks, em http://www.mathworks.com/hardwaresupport/arduino-matlab.html. Esta conexo criar um servidor para o MATLAB na placa
do Arduino. Dessa forma, toda codificao feita no MATLAB e ento executada na
placa Arduino. Para isso, descompacta-se o arquivo baixado, e se abre o arquivo
adiosrv.pde na pasta adiosrv. Ento faz-se o upload do mesmo para o Arduino. A
partir da, no necessrio que mais nenhum cdigo seja enviado ao Arduino, sendo
todos os comandos feitos a partir da conexo com o MATLAB.

2.4. Eletrnica aplicada neste projeto

Para tornar este projeto possvel sem danificar o Arduino devido s altas
tenses e correntes que alguns componentes consomem so necessrios circuitos de
proteo, compostos de diodos, transistores e rels basicamente. Alm destes
tambm sero usados resistores que so longos conhecidos, desde os estudos do
ensino mdio de todos ns. Tambm analisaremos o funcionamento de um
componente essencial neste projeto, o sensor de temperatura e dos motores (mini
bombas dgua) que tornaro possvel a capitao de uma grandeza fsica levando-a

para dentro do computador atravs do Arduino e transform-la


transform la em ao sobre o meio
ao qual o sistema aplicado.

2.4.1 Resistores

Os resistores so utilizados como divisores


divisores de tenso e como barreiras para a
corrente, provocando sua reduo. Como divisores de tenso o caso onde tem-se
tem
uma fonte de tenso com um ponto de tenso de entrada Ventrada e ento tem-se
tem dois
resistores em srie terminando-se
terminando
no terra. Assim a tenso
so captvel entre o ponto
entre os dois resistores,, a tenso de sada Vsada dada pela soma das duas resistncias
dividindo
ndo a resistncia ligada terra vezes a tenso de entrada, como na frmula:

 



2.4.1.1

 

Figura 2.4.1.1 Esquema de ligao de um divisor de tenso

Alm disso, sabemos que para a corrente em um fio de resistncia R, que a


relao entre a tenso e a corrente dada pela Lei de Ohm. Assim quando precisamos
reduzir a corrente, como no caso deste projeto em que as portas digitais podem
suportar no mximo uma corrente de 50 mA e as portas de alimentao no mximo
correntes de 500 mA, dimensiona-se
dimensiona se os resistores para que com a tenso em questo
esse limite decorrente no seja ultrapassado.



2.4.1.2


2.4.2 Rels

Rels so componentes que atuam como chaves que so extremamente fceis


de serem usados. O dispositivo formado por uma bobina que ligada ao circuito
atravs de dois pinos e possui outros pinos que so completamente independentes
quanto ao circuito ao qual a bobina pertence. Quando surge uma tenso nos terminais
da bobina uma corrente gerada e esta passa atravs da bobina gerando um campo
magntico que move uma haste de metal que abre o contado entre dois pinos
(terminais) do rel e fecha um curto-circuito entre um desses terminais e outro
terminal que antes estava fechado. Dessa forma possvel controlar atravs de quais
dos pinos fluir a corrente.
Pode parecer estranho claro o uso dos rels primeira vista, pois o por qu
de fazermos a ligao para permitir ou no a corrente num circuito independente se j
controlamos a corrente no prprio circuito. A justificativa simples, em circuitos
eletrnicos as correntes so baixas sendo da ordem de miliampres, porm para
algumas existe uma corrente maior no uso, como em motores movidos a 110 V que
precisam ser acionados por um circuito eletrnico. Neste caso necessrio que apenas
o circuito independente do rel esteja conectado ao dispositivo alimentado pela
tenso de 110 V, separado do circuito. Dessa forma o rel atua como uma chave para
um circuito de proteo.

Figura 2.4.2.1 Parte interna de um rel de 5 terminais.

2.4.3 Transistores e diodos

Alguns componentes foram essenciais para o desenvolvimento da eletrnica


nos ltimos anos. Estes componentes so baseados nas propriedades dos materiais
semicondutores ( base de xidos de silcio e germnio). No cabe a este artigo

descrever o mecanismo fsico real destes dispositivos, porm de sua alada fazer
uma breve introduo ao seu funcionamento prtico.
Desta forma, inicialmente, o diodo um componente que possui polarizao,
ou seja, o seu funcionamento muda ao invertermos a tenso. Quando uma tenso
aplicada diretamente aos plos do diodo ideal ento este permitir a passagem de
corrente. Em contrapartida, quando uma tenso aplicada em seus terminais
reversamente, nenhuma corrente flui pelo diodo. Em diodos normais na verdade
quando na polarizao reversa, o diodo permite a passagem de corrente, porm de
apenas alguns nanoampres ou microampres dependendo do material do diodo.
Sendo assim ainda pode ser utilizado com a finalidade de bloquear a corrente em um
determinado sentido. Contudo, basta saber que as aplicaes de um diodo se
distribuem em todo tipo de uso, desde circuitos simples como o empregado neste
artigo at circuitos extremamente complexos como os circuitos internos de alguns
dispositivos eletrnicos.

Figura 2.4.3.1 Diodo, o plo negativo representado pelo trao em cinza.

Figura 2.4.3.2 Representao de um diodo em simbologia de circuitos

Os transistores por outro lado, apesar de serem feitos tambm de materiais


semi-condutores, devido a sua alocao no dispositivo, possuem um funcionamento
diferente. Os transistores possuem trs terminais, onde a passagem de corrente
atravs de um destes, que a base, permite a passagem de corrente atravs dos
outros dois, o emissor e o coletor. Com isso, os transistores atuam como j chaves no
sentido de um circuito controlar o outro. Por exemplo, tem-se um circuito onde est
ligado um LDR (Resistor dependente de luz), no escuro este resistor tem uma alta
resistncia, porm na presena de luz sua resistncia abaixa drasticamente. Desta
forma se um LDR estivesse ligado base de um transistor, cujos terminais emissor e
coletor esto ligados a uma lmpada, ao receber luz o LDR diminuiria sua resistncia e
assim permitiria a passagem de corrente atravs do mesmo, fazendo assim com que a
lmpada fosse ligada. Como concluso vemos que seu uso pode ser expandido a
diversas aplicaes onde haja a necessidade de controlar o funcionamento de partes

de um determinado circuito, tornando-as em alguns momentos ativado e em outros


desativado.

Figura 2.4.3.3 Representao de um transistor em um modelo de circuito

Figura 2.4.3.3 Transistor 2n-3904

2.4.4 O sensor de temperatura LM35

Neste projeto foi utilizado o sensor de temperatura LM35, por possuir um


funcionamento muito simples e uma boa preciso. O LM35 possui o formato de um
transistor, e um equipamento que precisa de uma alimentao de at 5 V corrente
contnua. Desta forma os pinos laterais so a alimentao, sendo o da esquerda
olhando pela parte achatada, o do positivo +5V e o da direita o terra. O pino do centro
o responsvel pelo sinal que identifica a temperatura. Para cada 1 C o pino do
centro libera uma tenso de 10 mV. Dessa forma fcil obter a temperatura ambiente.
Basta pegar o valor da tenso e multiplic-la por 100. Porm a entrada analgica do
Arduino no fornece diretamente a tenso, mas sim um valor analgico que vai de 0 a
1023 numa faixa de 0 V a 5 V. Assim para efetuar a converso basta aplicar-se uma
regra de trs simples para se descobrir o valor da tenso lida a partir do valor entregue
pelo Arduino.

Figura 2.4.4.1 - Sensor de temperatura LM35.

2.4.5 Amplificadores operacionais e o LM324

Amplificadores operacionais so dispositivos com inmeras aplicaes, sendo


usados em microfones, sensores, e diversos casos onde necessrio aumentar-se a
amplitude do sinal para torn-lo mais claro. O que eles fazem simplesmente criar um
ganho para uma tenso de entrada, que depender da forma com que se monta o
circuito do amplificador, j que existem vrios tipos, e das resistncias utilizadas nesta
forma. Os amplificadores so dispositivos de trs terminais principais, sendo estes,
entrada inversora, entrada no-inversora e sada. Alm disso, se tem os dois terminais
de alimentao do amplificador, j que a amplificao s possvel se existe tenso
suficiente para aquela amplificao.
Neste projeto a montagem do amplificador utilizada foi a de amplificador noinversor. Ele recebe este nome pois o sinal recebido com uma fase e amplificado
nesta mesma fase, ou seja, se a entrada do amplificador de uma tenso positiva, sua
sada tambm ser positiva, proporcional a entrada vezes o ganho de acordo com as
resistncias. A Montagem consiste no sinal que se deseja amplificar, conectado a
entrada positiva (no-inversora) e a realimentao negativa, que consiste em um
resistor Rf que ligado a sada e a entrada negativa (inversora). Alm disso, um
resistor Ri ligado a entrada negativa e conectado ao terra. A representao abaixo
mostra a montagem.

Figura 2.4.5.1 Circuito de um amplificador operacional no-inversor

O ganho da tenso de sada Vo dado pela relao a seguir:

  1 +


  (2.4.5.1)


O LM324 nada mais que um circuito integrado de 4 amplificadores. Circuitos


integrados so dispositivos que possuem a montagem de vrios circuitos teis dentro
dos mesmos, e assim facilitam o uso de vrias ferramentas. O LM324 neste caso,
permitiu que fosse usado um amplificador operacional neste projeto. Os pinos 4 e 11
do CI (Circuito Integrado) LM324 so o +V e V respectivamente. E os pinos laterais e
das pontas so as sadas e entradas de cada um dos quatro amplificadores internos.
Neste projeto usamos o gate B, que especifica o uso do amplificador inferior esquerdo
olhando o CI de cima onde a contagem dos pinos comea encima esquerda. Como
mostrado na figura abaixo.

Figura 2.4.5.2 Esquema de um LM 324, visto de cima.

Figura 2.4.5.2 LM 324N, empacotado com plstico, como o usado neste projeto.

2.4.6 Capacitores

O uso de capacitores circuitos pode ter vrios objetivos, mas em muitos deles o
objetivo de colocar um capacitor o de filtrar o sinal. Num circuito de corrente
contnua o capacitor permite a passagem de corrente at que sua capacidade de
armazenar carga eltrica se esgote e ento ele impede a passagem de corrente, e
ento como se o circuito estivesse aberto. Este basicamente seu funcionamento
num circuito de corrente contnua.
Ao colocarmos um capacitor em srie com uma fonte de tenso V, ele ser
carregado at esta tenso, com uma carga qualquer prpria dependente de sua
capacitncia. Se essa fonte de corrente contnua no for constante, ou seja, for
oscilante entre valores positivos, o capacitor no momento que a tenso da fonte for
menor que a tenso j alcanada pelo capacitor, fornecer tenso ao circuito. Como
mostrado na figura abaixo.

Figura 2.4.6.1 Grfico da tenso de uma fonte em paralelo com um capacitor.

Figura 2.4.6.2 Esquema de ligao em paralelo Fonte-Capacitor.

Na figura 2.4.6.1 acima, as linhas pontilhadas em forma de sino seriam a tenso


fornecida pela fonte em paralelo com o capacitor como mostrado na figura 2.4.6.1,
onde o capacitor o smbolo com um C ao lado esquerdo e r a resistncia
interna da fonte. Vemos que quando a tenso vai cair o capacitor comea a fornecer
tenso, que dessa forma fica mais constante. Isso pode ser feito em circuitos quando

no se tem muita constncia da tenso fornecida pela fonte, ento se coloca


capacitores em paralelo para que a tenso seja mais constante.

Figura 2.4.6.3 Capacitor eletroltico como o utilizado no projeto, o terminal com a faixa cinza o
negativo.

2.5 Alguns pontos importantes sobre eletromagnetismo e blindagem

Muitos foram os fsicos que tiveram grande impacto no mundo graas s suas
descobertas. No ramo do eletromagnetismo podemos citar Faraday, Lenz, Maxwell,
Ohm, Gauss e muitos outros. Durante a resoluo deste projeto, alguns obstculos
surgiram e possvel perceber a aplicao de leis de alguns destes cientistas. Ento
nada mais justo que fazer uma breve passagem sobre o conceito destas leis, a Lei de
Faraday da induo e a lei de Biot-Savart.
A Lei de Faraday diz o seguinte: A fem induzida em uma espira fechada dada
pela taxa de variao do fluxo magntico, com sinal negativo, atravs da rea
delimitada pela espira. Esta lei pode ser representada por:



!

Isso quer dizer que se um circuito fechado estiver na presena, por exemplo, de
um campo magntico gerado por fios que transportam corrente alternada. O efeito
deste campo magntico pode ser altamente prejudicial ao funcionamento do circuito.
Uma vez que a corrente alternada, quer dizer que ela varia, chamando-se a
amplitude de 2A, entre +A e A na forma de uma, senide que a convencional
fornecida pelas redes eltricas, como mostrado no grfico a seguir.

Figura 2.5.1 LM 324N, empacotado com plstico, como o usado neste projeto.

Este grfico mostra que a corrente varia bastante ao longo do tempo. A relao
entre a corrente neste fio de c.a. com a campo magntico gerado dada pela lei de
Biot-Savart:
#$ 
"

% ( )$ * +
'
4&
+

E como h uma relao entre o campo e a corrente, e como a corrente varia ao


longo do tempo, sabemos que o campo tambm o faz. Neste sentido sabemos que
haver uma fem induzida no circuito fechado prximo ao fio de c.a. Alm disso, essa
fem induzida gera uma fem induzida, que igual a /R, onde R a resistncia do
circuito no pedao onde o campo est agindo.
Dessa maneira, a corrente no circuito no ser aquela prevista nos clculos,
mas sim a prevista mais a corrente induzida, sendo assim, ter-se-ia, a partir das leis
mostradas e da discusso feita:
(  - = (. /0  + (0 120 = (. /0 

1  % ( )$ * +
. 3 '
4
 ! 4&
+

Com isso, as leituras de um sensor, por exemplo, que dependeriam da corrente


que recebida no mesmo, seriam alteradas j que no mais apenas a corrente
alternada est presente. E mais, alm disso, como a corrente varia entre valores
positivos e negativos, o sentido do campo magntico gerado varia e assim o sentido da
corrente induzida tambm, gerando grandes alteraes nas leituras, com grandes
oscilaes.
Para contornar o problema de correntes induzidas em um fio eltrico
necessrio o uso da blindagem. Em termos prticos muito se houve falar da gaiola de
Faraday, famoso experimento do cientista ingls Michael Faraday, que ficou dentro de
uma gaiola metlica fechada e mandou que seus assistentes a eletrizassem com altas
descargas eltricas, o cientista porm em seu interior no se feriu. Isso porque no

interior de um condutor metlico o campo eltrico nulo. Sem campo eltrico no h


d.d.p. e sem esta no h corrente. Porm este um fato eletrosttico, que no
continua sendo satisfeito no caso descrito acima. A blindagem metlica por si s no
protege fios eltricos de campos magnticos indutores de corrente. Para este fim
preciso fazer o aterramento da estrutura metlica que envolve o cabo, permitindo que
a corrente seja induzida na superfcie metlica externa e flua atravs dela at o
aterramento, que possui potencial nulo.
Isso aplicado ao problema do projeto tornou-se a soluo, visto que o campo
gerado pelo fio de c.a. flui atravs da blindagem metlica externa, no havendo fem
induzida sobre o fio interno, e assim sobre o circuito (ou sobre o sensor caso o
envolvamos em material condutor) e assim a corrente induzida no existe, logo a
corrente real aquela prevista para aquele circuito.
Muitos dispositivos utilizam este tipo de blindagem para justamente evitar os
campos magnticos ao redor, comuns em aparelhos eletrnicos e mesmo nas paredes
por onde passa a corrente alternada atravs dos fios. Cabos de telefone, de fontes, de
rede e muitos outros possuem uma blindagem metlica, que nos equipamentos
ligada ao aterramento, muitas vezes a prpria estrutura metlica do equipamento.

Figura 2.5.2 Representao de um cabo com sua blindagem exposta: o condutor o cabo de cobre no
centro, o metal externo a blindagem.

3. Montagem experimental

3.1 Material Utilizado

- Duas vlvulas de gua, de 110 V, da marca Emicol.


- 2 joelhos 90% de 3/4 de polegada, com rosca.
- Uma protoboard.
- 3 latas de tinta vazias.

- 3 rels CF413005, fabricante NCR.


- 3 transistores modelo 2N 3904-H36.
- 3 diodos modelo 11001N1.
- 4 resistores de 1 K e 1 resistor de 8,2 K.
- Arduino UNO Rev 3.
- 2 capacitores de 1 mF.
- Um sensor de temperatura LM35.
- 4 m de cabo paralelo de 2,5 mm de dimetro.
- 2 m de fio de cobre isolado de 0,5 mm de dimetro.
- 6 conectores RCA macho.
- 6 conectores RCA fmea.
- 1 fogareiro de 110 V.
- 1 m de tubo de borracha mvel de 5 mm de dimetro.
- 50 cm de tubo de plstico transparente de 1 cm de dimetro.
- Um circuito integrado LM324N.
- Um computador com MATLAB ou MCR instalados.

3.2 Montagem Mecnica do Sistema

A montagem desses componentes consiste em um recipiente central (uma


lata), onde se permite controlar a temperatura. Nela haver um furo para quando o
nvel de gua chegar a certo nvel ele escorra pelo ladro e caia no recipiente
posicionado seu lado. Outro recipiente estar posicionado em um nvel mais alto. Um
fogareiro estar posicionado abaixo do recipiente de controle (central). O outro
recipiente ter gua a temperatura ambiente. Um furo feito na base do recipiente
que est a um nvel elevado. Nele est conectada a vlvula, que ento ligada ao
recipiente central por uma tubulao. Dentro do tubo central existe um sensor que
est conectado com o Arduino.
A vlvula do recipiente a nvel elevado e o fogareiro so conectados a tomada
de 110 V e aos rels que fecharo os circuitos quando acionados pelo circuito de
proteo do Arduino. Mais frente veremos como o funcionamento do circuito.

A partir das leituras deste sensor, e dos valores fornecidos pelo usurio do
sistema pelo programa desenvolvido no ambiente MATLAB, o controle ser ativado.
Um grfico mostra em tempo real as leituras de temperatura dentro do recipiente
central. Quando esta temperatura est abaixo da temperatura mnima da faixa de
temperatura fornecida ao programa pelo usurio, ativado o fogareiro. A ativao se
dar atravs do sinal digital enviado pelo Arduino ao circuito de proteo, que o
ativar. Da mesma forma, se a temperatura passa da mxima estabelecida, o sistema
passa o sinal digital ao circuito de ativao pelo Arduino, que ativa a vlvula de gua
fria. Dentro da faixa estabelecida, ambos os mecanismos ficam desligados dentro da
faixa de controle.

Figura 3.2.1 Esquema de montagem da parte mecnica do sistema, excluindo conexes com o circuito.

3.3 Montagem do circuito

Existem dois circuitos neste projeto. Um o circuito de entrada, que fornecer


dados da leitura do sensor ao Arduino, que por sua vez passar os dados ao MATLAB.
O segundo o circuito de proteo que ativa os dispositivos de controle de
temperatura (Vlvula e fogareiro), tambm ligado ao Arduino, pois dependendo da
leitura feita no primeiro circuito, o Arduino liberar os sinais necessrios para ativao
dos equipamentos necessrios naquele momento.
Comeando pelo circuito de proteo, temos abaixo o esquema da montagem
do circuito.

Figura 3.3.1 Esquema do circuito de sada do sistema de controle de temperatura.

O funcionamento de cada uma das sadas, ou seja, dos pinos digitais 8 e 12


exatamente o mesmo, pois podemos ver que os circuitos so idnticos em cada uma
dessas sadas, portanto entendendo uma, entendemos todas.
Inicialmente, temos que entender o por qu do sistema de proteo. O Arduino
como dito anteriormente, s pode suportar uma corrente mxima de 50 mA. Como o
rel tende a consumir uma corrente maior que essa, cerca de 500 mA, para a tenso
fornecida nas sadas digitais que de cerca de 5 V, h a necessidade de haver
transistores entre ambos. Assim quando o sinal liberado pelo Arduino, a base de
transistor o recebe, permitindo assim a passagem de corrente atravs do mesmo, uma
vez que este est sendo alimentado por uma bateria de 9 V. O ganho de corrente do
transistor de 10, logo precisamos de dois transistores. O primeiro por estar com sua
base diretamente ligada ao Arduino, recebe a corrente mxima que o mesmo fornece,
quase 50 mA, porm se fosse s isto, teramos uma sobrecarga. Assim o coletor do
primeiro transistor fica ligado a base do segundo, e como h um resistor de 270 , a
corrente fica limitada a 9 V/270 = 33 mA. Com isso, a corrente da base do primeiro
transistor fica dez vezes menor que isso, logo 3,3 mA. E a corrente no coletor do
segundo transistor fica sendo 330 mA, j sendo o suficiente para ativar o rel. Assim,
ao ativar a sada em um dos pinos de sada digital, o circuito permite a passagem de
corrente pelo rel que por sua vez ativa o circuito dos dispositivos de controle. Este o
funcionamento do circuito.
Porm, se notarmos bem, ainda no se tem uma explicao para o motivo de
haver um diodo com polaridade revertida em paralelo com a bobina do rel. Sabemos
que o ativador do circuito individual do rel o campo magntico gerado pela bobina

do rel que liga a chave, fechando o circuito separado. sabido tambm que bobinas
ao serem descarregadas, tm uma variao em seu fluxo magntico, ou seja, uma
f.e.m. induzida como prev a lei de Faraday. E Como diz a lei de Lenz, essa f.e.m.
induzida surge de tal forma que ela se ope a fora que cria a variao no fluxo
magntico, desta forma uma corrente no sentido contrrio ao da corrente existente
criada, podendo essa corrente em sentido oposto danificar o transistor. Por isso ento,
colocado um diodo em paralelo ao rel, pois ele s permite que a corrente passe no
sentido de ida, no no de volta e assim o transistor fica protegido.
Olhemos agora para o circuito de entrada de dados. Que fornece tenso do
sensor para a porta analgica 0 do Arduino.

Figura 3.3.2 Circuito de entrada do sistema de controle de temperatura.

Ao analisar o fato de que as leituras deste sistema devem ser de no mximo


100 C, pois acima disso no haveria mais gua e sim vapor, percebemos uma
deficincia no sinal do sensor. A faixa de sinal de entrada do Arduino varia de 0 a 1023
quando o a tenso de entrada vai de 0 V a 5 V. Porm, se prestarmos ateno, o LM35
confere 10 mV para cada 1 C, desta forma, para 100 C a tenso fornecida igual a
100x10 mV = 1 V, logo no se aproveita toda a faixa de leitura do Arduino. Sendo que o
menor intervalo entre uma leitura j convertida no Arduino e outra, por exemplo,
entre 104 e 105, tem-se que este 1 est para a tenso x assim como 1023 est para 5
V, logo a a tenso x igual a 5 mV, que equivale a 0,5 C, ou seja, a leitura de
temperaturas correria variando 0,5 C entre uma e outra.
Para melhorar esta leitura, precisamos multiplicar a tenso vinda por um
determinado ganho, pois, por exemplo, multiplicando por 10 a tenso do sensor,
teramos que agora a tenso lida no arduino estaria no mais equivalente 10 mV para
cada 1 C, mas sim 100 mV para 1 C, e assim a menor variao na leitura do Arduino

passaria a ser 0,05 C. Para conseguir este ganho de 10 vezes a tenso utilizamos o
amplificador operacional LM 324. No caso deste circuito, ele fornece um ganho de 9,2
vezes a tenso de sada do sensor. Pois aplicando as resistncias utilizadas na frmula
2.4.5.1, temos que a tenso na sada do amplificador operacional 8,2/1 + 1 = 9,2.
Para alimentar o amplificador operacional usamos a montagem de fonte de
alimentao simtrica, onde com duas baterias de 9 V, conectadas em srie com um
fio entre elas ligado ao terra, para que se possa fornecer +9 V e -9V ao circuito. Alm
disso, com o objetivo de tornar a d.d.p. vinda da sada 5 V do Arduino ainda mais
constante, fez-se necessrio o uso de dois capacitores de 1000 F em paralelo com a
alimentao do sensor. Desta forma as leituras do sensor ficam mais constantes, sem
grandes amplitudes entre picos. E assim terminada a anlise do circuito de entrada
do Arduino.

Figura 3.3.2 Arduino conectado aos dois circuitos de entrada e sada. Viso superior.

Figura 3.3.2 Arduino conectado aos dois circuitos de entrada e sada. Viso semi-frontal.

Figura 3.3.3 Foto ampla da montagem realizada no laboratrio de mecnica da EEIMVR.

Figura 3.3.4 Foto da montagem, vista em parte, realizada no laboratrio de mecnica da EEIMVR.

4. Software de Controle

Para este projeto, foi desenvolvida uma GUI onde esto contidos: Uma caixa de
texto para a temperatura mxima da faixa de controle, uma caixa de texto para a
temperatura mnima da faixa de controle, um indicador de temperatura atual, um
grfico mostrando a temperatura ao longo do tempo com os limites de temperatura
demarcados, um boto para iniciar o controle da temperatura e um boto para parlo, alm de um boto que permite que se abra grficos de antigos controles de
temperatura. A codificao nas GUIs feitas de uma maneira um pouco diferente da
programao direta dos scripts padres. Elas so baseadas nas funes que pertencem
a cada componente na interface, sendo que a codificao separada entre estas
funes, no seguindo ento um cdigo nico com incio, meio e fim.
Cada componente da GUI possui uma funo no arquivo do script da interface,
chamada Callback. Essas funes so ativadas quando estes componentes so
acionados. Por exemplo, para um boto executar uma ao quando este for clicado,
basta colocar o comando que se deseja na funo Callback deste boto. Desta forma
ento, foi codificado o script da GUI deste projeto em tres funes Callback e uma na
funo CloseRequest, que parecida com a Callback, porm acionada quando a tela
inteira do programa fechada.
As funes Callback ficam uma no boto Parar Controle, uma no boto
Iniciar Controle e uma no boto Abrir Arquivo. A funo CloseRequest para o
caso do usurio apertar o boto que fecha a janela do programa. Esta janela
mostrada a seguir.

Figura

4.1: Tela do programa de controle

O cdigo mais importante est presente na Callback do boto Iniciar


Controle, que responsvel pela manuteno o grfico da temperatura em tempo
real do sistema de aquecimento, sendo este:
function btt_Inicia_Callback(hObject, eventdata, handles)% Definio
da funo CallBack do boto de Iniciar Controle

temp_Max = get(handles.caixa_TempMax,'String');
temperatura Mxima da caixa de Texto

pega

valor

da

temp_Min = get(handles.caixa_TempMin,'String'); % pega o valor da


temperatura Mnima da caixa de Texto
if isnan(str2double(temp_Max)) || (str2double(temp_Max) <= 0) %Testa
se a temp_Max numrica e maior menor ou igual a zero
errordlg('Por favor, digite uma temperatura mxima
vlida.','Erro');% mostra a mensagem
return;% sai da funo CallBack
end
if isnan(str2double(temp_Min)) || (str2double(temp_Min) <= 0) %Testa
se a temp_Min numrica e maior menor ou igual a zero
errordlg('Por favor, digite uma temperatura mnima vlida.',
'Erro');% mostra a mensagem
return;% sai da funo CallBack
end
if str2double(temp_Max) <= str2double(temp_Min) %Testa se a temp_Max
menor ou igual a temp_Min
errordlg('A temperatura Mxima deve ser maior que a temperatura
Mnima', 'Erro');% mostra a mensagem
return;% sai da funo CallBack
end
conectado = 0; %inicializa a varivel que verificar se foi realizada
a conexo com o arduino via porta serial
try % tenta executar os comandos descritos em sua estrutura
if exist('a','var') && isa(a,'arduino') && isvalid(a), %testa se
h alguma conexo com o arduino
% nada a fazer
else
set(handles.caixa_Info,'String','Conectando...');%Exibe
mensagem enquanto efetua a conexo
a=arduino('COM6');%estabeleca a conexo com o arduino na
varivel a pela porta serial COM6
set(handles.caixa_Info,'String','Conectado!');%Exibe mensagem
quando conexo alcanada
end
conectado = 1; % coloca o valor 1 mostrando que a conexo foi
estabelecida
catch err % capita o erro ao tentar executar o cdigo dentro da
estrutura do try
msg = 'Erro ao tentar efetuar a conexo com o arduino'; % atribua
a mensagem a varivel "msg"
errordlg(msg); % exibe a mensagem de erro em uma janela ao usurio
rethrow(err) % exibe a descrio do erro na Command Window do
MATLAB
end % encerra o try
if conectado == 1 % verifica se a conexo do arduino foi estabelecida

set(handles.btt_Inicia,'Enable','off'); % Desabilita o boto


"Iniciar Controle"
set(handles.btt_Abrir,'Enable','off'); % Desabilita o boto "Abrir
Arquivo"
set(handles.btt_Para,'Enable','on'); % Habilita o boto "Parar
Controle"
set(handles.caixa_TempMax,'Enable','off'); % Desabilita a caixa de
texto da temperatura mxima
set(handles.caixa_TempMin,'Enable','off'); % Desabilita a caixa de
texto da temperatura mnima
handles.graficoTemperatura; %aciona o grfico
x=0:500;y=0.*x+str2double(temp_Max); %define a linha de
temperatura mxima
handle.graficoTemperatura=plot(x,y,'r-');%plota a temperatura
mxima de controle
x=0:500;y=0.*x+str2double(temp_Min); %define a linha de
temperatura mnima
handle.graficoTemperatura=plot(x,y,'b-');%plota a temperatura
mnma de controle
axis([0 50 str2double(temp_Min)-15
str2double(temp_Max)+15]);%fixando a escala do grfico
sens_Pin=0; % porta analgica onde ser posto o sensor de
temperatura
valvFria_Pin=8; % porta digital que ativar a vlvula de gua fria
fogareiro_Pin=12; % porta digital que ativar o fogareiro
a.pinMode(valvFria_Pin,'OUTPUT'); % configurando a porta como
sada
a.pinMode(fogareiro_Pin,'OUTPUT'); % configurando a porta como
sada
tempo=0;%inicia o contador de tempo
cont=0; %inicia o contador
tempoG=50; %faixa de tempo mostrado no grfico
FD=1; %frequncia de amostragem na aquisio da medida de
temperatura
casas=tempoG*FD; % inicia o nmero total de leituras para a faixa
inicial abrangida pelo grfico
vTempo(casas)=zeros; %inicia o vetor tempo com nmero de clulas
igual ao da varivel casa
vTemperatura(casas)=zeros; %inicia o vetor temperatura com nmero
de clulas igual ao da varivel casa
format bank;
while strcmp(get(handles.btt_Para,'Enable'),'off') == 0 % verifica
o estado do boto de Parar
for i=(1+tempoG*FD*cont):(tempoG*FD+tempoG*FD*cont)
%inicia o loop que manter o grfico rolando ao longo das amostragens
de temperatura
if strcmp(get(handles.btt_Para,'Enable'),'off') == 1 %
verifica se o boto "Parar Controle" foi pressionado
break % encerra toda a estrutura da funo
CallBack
end
pause(1/FD);%pausa para respeitar a taxa de amostragem
tempo=tempo+1/FD; %acrscimo no contador de tempo
estado = a.analogRead(sens_Pin) % capita o valor na
porta analgica que vai de 0 a 1023 numa faixa de 0 a 5 V
temperatura = estado*500/(1023*9.2); %Calcula a
temperatura lida

set(handles.txt_TempAtual,'String',num2str(temperatura));
if tempo*FD>=casas %verifica se o nmero de leituras
ultrapassou o nmero abrangido pela faixa do grfico
casas=casas+1;% aumenta em 1 o nmero de casas
lidas
end
vTempo(i:casas)=tempo; %guarda o novo tempo no vetor
tempo
vTemperatura(i:casas)=temperatura; %guarda uma nova
temperatura no vetor temperatura
handle.graficoTemperatura=plot(vTempo(1:casas),
vTemperatura(1:casas),'g-'); %plota os vetores tempo e temperatura
dentro da faixa valores atual
axis([casas/FD-tempoG casas/FD str2double(temp_Min)-15
str2double(temp_Max)+15]);%estabelece a faixa de valores abrangida
pelo grfico na amostragem atual
if temperatura>str2double(temp_Max) %verifica se a
temperatura atual est acima da temp_Max
set(handles.txt_TempAtual,'ForegroundColor','r');%Pin
ta de vermelho o indicador da temperatura atual
a.digitalWrite(valvFria_Pin,1);%Liga a vlvula de
gua fria
a.digitalWrite(fogareiro_Pin,0);%Desliga o
fogareiro
elseif temperatura<str2double(temp_Min)%verifica se a
temperatura atual est abaixo da temp_Min
set(handles.txt_TempAtual,'ForegroundColor','b');%Pinta de azul o
indicador da temperatura atual
a.digitalWrite(fogareiro_Pin,1);%Liga o fogareiro
a.digitalWrite(valvFria_Pin,0);%Desliga a vlvula
de gua fria
else
set(handles.txt_TempAtual,'ForegroundColor','k');%Pinta de preto o
indicador da temperatura atual
a.digitalWrite(fogareiro_Pin,0);%Desliga o
fogareiro
a.digitalWrite(valvFria_Pin,0);%Desliga a vlvula
de gua fria
end
end
cont=cont+1;% adiciona um ao contador de escalas de tempo
end
end
a.digitalWrite(fogareiro_Pin,0);%Desliga o fogareiro
a.digitalWrite(valvFria_Pin,0);%Desliga a vlvula de gua fria
delete(instrfind({'Port'},{'COM6'})); % esclui relaes de variveis
com conexes porta serial 'COM6'
opcao=questdlg('Deseja salvar os dados de controle?','Sistema de
Aquecimento'); % exibe mensagem de pergunta ao usurio
switch opcao % inicia a estrutura do escolha
case 'Yes' % verifica se a opo escolhida foi sim
filename = char(inputdlg('Digite o nome para o arquivo a ser
salvo.','Salvando controle')); % exibe mensagem requerindo o nome que
deve ser salva o controle de temperatura e o aloca na varivel
"filename"
save(strcat(filename,'.mat'),'vTempo','vTemperatura','temp_Max','temp_

Min'); % salva as variveis necessrias para a plotagem do controle


quando reacionado
case 'No'
%nada a fazer
end
set(handles.txt_TempAtual,'ForegroundColor','k'); % Pinta de preto as
letras no display que mostra as temperaturas atuais
set(handles.txt_TempAtual,'String',''); % Escreve o valor de texto em
branco no display de temperatura atual
set(handles.graficoTemperatura,'NextPlot','replace'); % Coloca o
estado do grfico como substituvel
handle.graficoTemperatura=plot(0,0,'w'); % plota um ponto em branco no
grfico de temperatura
set(handles.graficoTemperatura,'NextPlot','add'); % Coloca o estado do
grfico como adicionvel
clear; % apaga as variveis na memria do MATLAB

A funo deste cdigo toda aquela esperada pelo boto Iniciar Controle.
Seu funcionamento simples. Ao usurio pressionar o boto, o sistema verifica se as
caixas de texto de temperatura esto preenchidas e com valores cabveis, uma vez
verificado isto, o sistema continua prxima etapa, que consiste em se fazer a
conexo com o Arduino. Ento nessa hora que o MATLAB tenta acessar o cdigo do
arquivo adiosrv.pde que j fora transferido anteriormente para a placa, para que
possam ser feitos os comandos a seguir. Tendo conectado, a etapa seguinte a de
determinao das portas de entrada e sada de dados, sendo a analgica a de entrada
e as digitais as de sada. Ento comea o controle, a medida que o tempo passa o
sistema ativa ou desativa as sadas digitais de acordo com a leitura feita pelo sensor
que conectado entrada analgica do Arduino. Os valores da leitura do sensor
tambm so plotados no grfico para o acompanhamento em tempo real da situao.
Uma vez pressionado o boto Parar Controle este desabilitado, ento essa
desabilitao capitada na funo CallBack do boto Iniciar Controle e todas as
variveis so apagadas e o controle encerrado.
Agora temos que analisar ento o cdigo presente no boto Parar Controle,
ou seja, o cdigo da sua funo de CallBack. Que a seguinte:
function btt_Para_Callback(hObject, eventdata, handles)% Definio da
Funo CallBack do Boto de Parar Controle
set(handles.btt_Inicia,'Enable','on');% Habilita o boto de Iniciar
Controle
set(handles.btt_Abrir,'Enable','on');% Habilita o boto de Abrir
Arquivo
set(handles.btt_Para,'Enable','off');% Desabilita o boto Parar
Controle
set(handles.caixa_TempMax,'Enable','on');% Habilita a caixa de texto
de temperatura mxima
set(handles.caixa_TempMin,'Enable','on');% Habilita a caixa de texto
de temperatura mnima
set(handles.caixa_Info,'String','');% Apaga mensagem de conexo

Este cdigo bem simples, pois de fato sua funo apenas a de avisar a
funo CallBack do boto Iniciar Controle que o boto de Parar Controle foi
acionado. Desta forma ao desabilitar o boto de Parar Controle a funo do loop do
controle de sistema previamente iniciada encerrada. A prxima funo a ser
analisada tambm simples, sendo esta parte do tipo CloseRequestFcn. Ela acionada
ao ser fechada a janela inteira do sistema, ento temos o seguinte cdigo:
function TelaPrincipal_CloseRequestFcn(hObject, eventdata, handles)%
Definio da funo acionada ao se tentar fechar a janela do programa

if exist('a','var') && isa(a,'arduino') && isvalid(a), % testa se o


arduino ainda est conectado
opcao=questdlg('O sistema est ser encerrado assim como todas as
comunicaes ativas seriais, deseja realmente fechar?','Sistema de
Aquecimento');
switch opcao
case 'Yes'
a.end; % encerra a comunicao com o Arduino
delete(instrfind({'Port'},{'COM6'})); % deleta quaisquer
variveis relacionadas com a porta 6
delete(hObject); % fecha a tela do programa
case 'No'
%nada a fazer
end
else
delete(hObject);% fecha programa todo
end

A funo deste cdigo simplesmente verificar se a conexo com o Arduino


est estabelecida no momento que o usurio fecha o programa, pois nesse caso,
poderia ser um engano, pois se perderia o controle e a oportunidade de salv-lo. Neste
caso, em que o Arduino encontra-se conectado, o sistema pergunta ao usurio se ele
de fato deseja encerrar o programa, caso afirmativo, ele o encerra e perde-se o
controle corrente.
A ltima funo a ser analisada o CallBack do boto Abrir Arquivo, que
permite ao usurio verificar controles anteriores do sistema.
function btt_Abrir_Callback(hObject, eventdata, handles) % Define a
funo CallBack do Boto Abrir Arquivo

if strcmp(get(handles.btt_Abrir,'String'),'Abrir Arquivo')% Verifica o


texto do boto Abrir Arquivo
filename=char(inputdlg('Digite o nome do arquivo a ser
encontrado.','Abrir Arquivo'));% Exibe mensagem pedindo o nome do
arquivo a ser procurado e aloca o nome adquirido na varivel
"filename"
try % tenta executar a sequncia de comandos limitado por sua
estrutura
if strcmp(filename,'') %verifica se o nome digitado nulo
%nada a fazer

else % capita o caso contrrio, quando algum nome foi passado


load(strcat(filename,'.mat')); % carrega o arquivo com o
nome dentro da varivel filename
set(handles.btt_Abrir,'String','Fechar Arquivo'); % coloca
o texto "Fechar Arquivo" no boto Abrir Arquivo
set(handles.btt_Inicia,'Enable','off'); % Desabilita o
boto Iniciar Controle
set(handles.caixa_TempMax,'Enable','off'); % Desabilita a
caixa de texto de Temperatura Mxima
set(handles.caixa_TempMin,'Enable','off'); % Desabilita a
caixa de texto de Temperatura Mnima
set(handles.caixa_TempMax,'String',char(temp_Max)); %
Coloca na caixa de texto de Temperatura Mxima o valor da Temperatura
Mxima do controle carregado
set(handles.caixa_TempMin,'String',char(temp_Min)); %
Coloca na caixa de texto de Temperatura Mnima o valor da Temperatura
Mnimaa do controle carregado
x=0:length(vTempo);y=0.*x+str2double(temp_Max); % Define
uma funo de forma de reta com valor da Temperatura Mxima
handle.graficoTemperatura=plot(x,y,'r-'); % plota a
temperatura mxima de controle
x=0:length(vTempo);y=0.*x+str2double(temp_Min); % Define
uma funo de forma de reta com valor da Temperatura Mnima
handle.graficoTemperatura=plot(x,y,'b-'); % plota a
temperatura mnma de controle
handle.graficoTemperatura=plot(vTempo, vTemperatura,'g-');
%plota os vetores tempo e temperatura dentro da faixa valores atual
axis([0 length(vTempo) str2double(temp_Min)-20
str2double(temp_Max)+20]); % Define o intervalo de dados mostrado no
grfico de acordo com as variveis carregadas do controle em questo
end
catch err
errordlg('O arquivo no foi encontrado'); % Exibe a mensagem
de erro caso no seja encontrado o arquivo deixado pelo usurio
rethrow(err) % Exibe no Command Window a descrio completa do
erro
end
else
set(handles.btt_Abrir,'String','Abrir Arquivo'); % Coloca o Texto
"Abrir Arquivo" no boto Abrir Arquivo
set(handles.graficoTemperatura,'NextPlot','replace'); % Define
como substituvel o estado do grfico de Temperatura
handle.graficoTemperatura=plot(0,0,'w'); % Plota um ponto em
branco no grfico
set(handles.graficoTemperatura,'NextPlot','add'); % Define como
adicionvel o estado do grfico de Temperatura
set(handles.caixa_TempMax,'String',''); % Coloca o texto em branco
na caixa de Temperatura Mxima
set(handles.caixa_TempMin,'String',''); % Coloca o texto em branco
na caixa de Temperatura Mnima
set(handles.btt_Inicia,'Enable','on'); % Habilita o boto Iniciar
controle
set(handles.caixa_TempMax,'Enable','on'); % Habilita a caixa de
texto de temperatura mxima
set(handles.caixa_TempMin,'Enable','on'); % Habilita a caixa de
texto de temperatura mnima
clear; % Apaga todas as variveis da memria do MATLAB
end

Este cdigo simplesmente faz a pergunta ao usurio de qual o nome do arquivo


a ser aberto. Aps isso, ele tenta encontrar o arquivo com o nome fornecido pelo
usurio, caso o arquivo no seja encontrado ento mostrada a mensagem de erro,
caso contrrio, o programa plota os grficos referentes aos dados de controle
encontrados. Uma vez aberto o arquivo, o usurio ao terminar de v-lo pressiona
novamente o boto que agora est com o texto Fechar Arquivo e o arquivo
fechado e o programa volta configurao padro de habilitaes na tela.

5. Resultados e Anlise

Utilizando as montagens j descritas e mostradas, foram feitos testes que nos


geraram arquivos de controle, que analisaremos aqui, o controles de ampla faixa de
temperatura, controles de baixa faixa de temperatura e controles sem os mecanismos
de tratamento de sinais. Com base nos grficos faremos a anlise do funcionamento
do sistema como um todo.

Figura 5.1 Grfico de controle com faixa curta entre as temperaturas mxima e mnima de controle.

Inicialmente, olhemos os problemas encontrados durante o planejamento do


projeto e de sua execuo. Os problemas como um todo giram em torno do sensor e
da coleta de seu sinal adequadamente, do tempo de resposta e de sua preciso. Como
o sensor foi encapsulado em um pedao de tubo de plstico, ele no est em contato
direto com a gua. Isso provoca certo atraso no tempo de resposta da mudana de
temperatura dentro do tubo em relao a temperatura dgua. E como dentro do tubo
ainda existe ar e s ento o sensor, existe um atraso na resposta do sensor. Porm

este atraso mostrasse no muito importante visto que no longo prazo todo sistema
tende ao equilbrio, assim ele funciona adequadamente.
Agora olhemos para o grfico da figura 5.1, nosso primeiro resultado. Vemos
que medida que o tempo passa, no incio, como a temperatura no recipiente est
abaixo da temperatura mnima de controle, o fogareiro estava ligado, porm por um
certo tempo o grfico tem bem no incio uma taxa de aumento da temperatura baixa.
Isso ocorre porque o fogareiro ligado e devido a sua baixa potncia demora a
aquecer a gua, alm disso, transfere calor blindagem do sensor e s depois ao
prprio sensor que ento responde a este estmulo. A partir da a temperatura vai
subindo gradualmente sem grandes picos e quando atinge a faixa de temperatura
mnima, quando o fogareiro desligado, porm devido ao calor armazenado nas
estruturas metlicas do fogareiro e da lata, a temperatura continua a subir. Depois de
um tempo, ento acontece o abaixamento da temperatura, pois esta passou do nvel
mximo, que ligou a vlvula fria, que a resfriou at a temperatura mxima. Este ciclo
se repete por um tempo at que todo o calor armazenado na estrutura acabe e ento
a temperatura atinja a temperatura mnima e assim o fogareiro ligado novamente. O
fato de as estruturas guardarem calor benfico, pois assim o sistema mantm sua
temperatura por mais tempo, como percebido no final do grfico. Atravs desse
grfico o sistema mostrou sucesso
Aps esta anlise, olhamos para o grfico da figura 5.2. Este diferente do
primeiro no sentido de que a faixa de temperaturas aceitveis maior, ento
analisamos outro aspecto do sistema e do mecanismo como ele funciona. Vemos que
o comportamento ao incio do controle anlogo ao do primeiro grfico, tendo o incio
temperatura uma pequena taxa de aquecimento e depois crescendo mais
rapidamente. E tambm apresenta o comportamento de sobe e desce ao longo do
tempo. Mas uma coisa fica visvel, a temperatura alcana a temperatura mxima de
controle, mas no a ultrapassa demais. Pois o calor armazenado foi mais dispersado ao
percorrer uma faixa maior de temperaturas. Isso representa um controle bem estvel
da temperatura. Mostrando sua eficcia maior em faixas maiores.
Apesar disso, somos levados a analisar se de fato necessria uma faixa de
temperatura em vez de simplesmente estabelecer uma temperatura pontual de
controle. De fato preciso uma temperatura mxima, pois do contrrio para este
sistema, haveria um caos maior e no constncia. Isto ocorreria porque tendo a
temperatura com valor nico buscado, os sistemas ligariam e desligariam a todo o
momento, pois a temperatura no fica muito tempo de fato constante no recipiente,
assim, todo momento gua quente e fria estariam sendo solicitadas sem
necessidade, visto que a temperatura encontrar-se-ia estabilizada. E tambm a
estrutura metlica no encontraria forma de estabilizar a temperatura s pelo calor
que a mesma guardou.

Figura 5.2 Grfico de controle com faixa curta entre as temperaturas mxima e mnima de controle.

Tendo visto os bons resultados obtidos, surge o momento de analisarmos a


quo prejudicada teria sido a coleta de dados caso no tivesse sido feita a blindagem
ou o filtro da tenso no sensor atravs dos capacitores. De fato ao olharmos a figura
5.3 vemos que o sinal devido ao no filtro da tenso no capacitor prejudicado, mas
no absurdo. Em mdia possvel olhar e dizer por volta de quanto estava passando
a temperatura em cada momento determinado. Sendo que o comportamento do
grfico foi mantido. O que de fato deveria ocorrer, pois o sistema de funcionamento
no foi alterado, ento tudo est dentro do esperado.
Em acrscimo, temos que olhar para a figura 5.4 para perceber que todo o
projeto teria falhado se no tivesse sido encontrada a origem do problema no sinal
(induo de corrente devido interferncia eletromagntica) e feito a devida
blindagem ligando-a a terra para dissipar essa corrente. De fato, ao olharmos para a o
grfico vemos picos que impossibilitam a leitura. Isso mostra que a origem de fato era
a induo de corrente, pois o sentido da corrente induzida deve ser alternado, pois o
campo que o gera altera seu sentido a medida que a corrente que o gerou ascende ou
descende. Desta maneira surgem picos to distantes e opostos. Mas felizmente o uso
da blindagem permitiu ao projeto ser finalizado com o sistema em funcionamento
pleno.

Figura 5.3 Grfico de histrico controle do sistema sem o uso dos capacitores como filtro no sensor.

Figura 54 Grfico de histrico controle do sistema sem o uso da blindagem dos fios do sensor.

6. Concluso

Toda a anlise de um experimento feita a partir de aproximaes e hipteses e na


hora em que se cria o prottipo e para se por em prtica o projeto surgem complicaes e
obstculos. Estes podem ou no ser fceis de ultrapassar, dependendo do quo bem feito foi o
planejamento e da habilidade de resolver problemas do condutor do projeto. Neste sistema de

controle foram identificados alguns obstculos como o isolamento do sensor e a vazo da


vlvula.
Com vista nestes obstculos cabe agora avaliar se os resultados demonstraram que
estes obstculos foram ultrapassados. Tendo em vista a anlise anteriormente feita, podemos
dizer que o sistema de controle alcanou o sucesso, isso porque a temperatura obtida durante
os controles eram at certo ponto constantes e, alm disso, o tempo de controle no era
demasiado longo. Se pensarmos bem, um ar condicionado, por exemplo, leva certo tempo
para refrigerar um ambiente, ento cabvel que o sistema de aquecimento tambm leve um
tempo para alcanar a temperatura desejada e estabiliz-la. Alm disso, a vazo da vlvula
mostrou-se boa aps a implantao de certa altura ao recipiente que fornecia a gua. E, alm
disso, as leituras do sensor estavam bastante precisas, no sendo prejudicadas por campos
magnticos e cargas externas.

Dentro do objetivo deste artigo, que era o de mostrar a interao entre


Arduino e MATLAB e, em acrscimo, de mostrar a capacidade desta unio em
controlar um sistema fsico com preciso, conclumos que a misso foi terminada com
xito. Com ferramentas prticas e no muito caras possvel criar uma grande gama
de aplicaes, que se expandem desde o meio prtico comercial industrial, at o meio
acadmico. Por exemplo, com o nmero de experimentos de medidas de tenses e
que poderiam ser realizados com o uso desta ligando, tornando laboratrios mais
eficazes com menor custo.

Referncias Bibliogrficas

<http://www.mathworks.com/company/aboutus/founders/> 27/07/13 15:45


<http://www.mathworks.com/products/compiler/mcr/> 27/07/13 16:00
<http://www.mathworks.com/discovery/matlab-gui.html> 27/07/13 16:05
<http://www.arduino.cc/> 27/07/13 17:00
<http://arduino.cc/en/Main/Software> 27/07/13 17:15
<http://pt.wikipedia.org/wiki/Arduino> 27/07/13 17:45
BOYLESTAD, R. NASHELSKY, L. Dispositivos Eletrnicos e Teoria de Circuitos, Sexta Edio.
Editora LTC.
GILAT, A. MATLAB com Aplicaes em Engenharia, Segunda Edio. Editora Bookman.
GUSSOW, M. Eletricidade Bsica, Segunda Edio. Editora Makron Books.

YOUNG, HUGH D. e FREEDMAN, ROGER A., Fsica III - Eletromagnestimo, Dcima Segunda
Edio. Editora Pearson.

You might also like