Professional Documents
Culture Documents
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.1. O MATLAB
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.
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
2.4.1 Resistores
2.4.1.1
2.4.1.2
2.4.2 Rels
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.
1 +
(2.4.5.1)
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.3 Capacitor eletroltico como o utilizado no projeto, o terminal com a faixa cinza o
negativo.
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&
+
1 % ( )$ * +
. 3 '
4
! 4&
+
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
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.
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.
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.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
temp_Max = get(handles.caixa_TempMax,'String');
temperatura Mxima da caixa de Texto
pega
valor
da
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_
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
5. Resultados e Anlise
Figura 5.1 Grfico de controle com faixa curta entre as temperaturas mxima e mnima de controle.
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.
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
Referncias Bibliogrficas
YOUNG, HUGH D. e FREEDMAN, ROGER A., Fsica III - Eletromagnestimo, Dcima Segunda
Edio. Editora Pearson.