2013
Rio de Janeiro
DEZEMBRO de 2013
________________________________________________
Prof. Fernando Augusto de Noronha Castro Pinto, Dr.-Ing.
________________________________________________
Prof. Ricardo Eduardo Musafir; DSc
________________________________________________
Prof. Thiago Gamboa Ritto; DSc
iii
Resumo do Projeto de Graduao apresentado Escola Politcnica/ UFRJ como
parte
dos requisitos necessrios para a obteno do grau de Engenheiro Mecnico.
iv
Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment
of
the requirements for the degree of Engineer.
Sumrio
1. Introduo ...............................................................................................................1
2. Descrio do chuveiro ............................................................................................3
2.1 Lista de componentes .......................................................................................4
2.2 Descrio e funo dos componentes ..............................................................5
2.3 Funes do Arduino ........................................................................................11
2.3.1. PWM ......................................................................................................11
2.3.2. Rotina ExternalInterrupts .......................................................................12
3. Modelagem matemtica .........................................................................................14
3.1 Temperatura ....................................................................................................14
3.2 Vazo ..............................................................................................................16
3.3 Temperatura x Vazo ......................................................................................17
4. Controle ..................................................................................................................19
4.1 Linearidade ......................................................................................................20
4.2 Distrbios ou perturbaes ..............................................................................21
4.3 Controlador Liga-Desliga .................................................................................21
4.4 Controlador PID................................................................................................23
4.5 PID versus Sistemas no-lineares ..................................................................25
4.6 Programao ...................................................................................................26
5. Aquisio e Anlise dos dados ...............................................................................28
5.1 Definio das constantes do controlador de temperatura ...............................28
5.2 O controlador de temperatura e vazo ............................................................34
6. Consideraes finais ..............................................................................................39
6.1 Concluso ........................................................................................................39
6.2 Trabalhos futuros .............................................................................................40
Referncias bibliogrficas ............................................................................................42
Anexo I - Desenvolvimento da programao do controlador .......................................43
vi
Captulo 1
Introduo
Cada
vez
mais
comum
ouvir
os
termos
concorrncia, inovao
de recursos, logo a de dinheiro tambm. Dessa forma, o usurio pode dedicar mais de
seu tempo e dinheiro para diverso e/ou trabalhos que exigem mais ateno e
responsabilidade.
Os benefcios da domtica ou da automao residencial, so grandes se
comparados com os sistemas isolados. Alm de trazer mais conforto e segurana para
os usurios, reduz o consumo de recursos como a gua, energia eltrica e gs.
Alguns exemplos de rea de aplicao da domtica so automao, iluminao,
climatizao, segurana e comunicao.
Este trabalho tem como objetivo principal conceber um chuveiro com controle de
temperatura e vazo por meio de uma placa com um micro controlador, sensores e
atuadores. Outro objetivo foi coletar dados, analis-los e compar-los com os estudos
da engenharia de controle.
As principais atividades do projeto foram o estudo da viabilidade do projeto, a
especificao dos componentes, a montagem do chuveiro, a programao do
algortmico de controle, o estudo dinmico do controlador e coleta e anlise dos
dados.
Captulo 2
Descrio do chuveiro
contato direto com a gua, aumentando a eficincia na medio. Embebedamos com
silicone todo o contato do sensor com a gua, para que fosse impermeabilizado e no
houvesse interferncia no sinal de medio.
Para atuao na temperatura da gua no chuveiro, utilizamos um PWM, que ser
explicado mais frente no na seo 2.3.1. O Arduino j vinha com a essa funo
(outra vantagem da placa).
Para fazer essa transmisso de sinal PWM entre a alimentao e a placa foi
inserido um rel de estado slido.
O medidor de vazo foi comprado para fazer a medio da vazo do sistema. O
sensor uma pea pequena e leve e instalado nas conexes de entrada de gua do
chuveiro.
Para o sistema de atuao na vazo foi projetado um motor acoplado a uma
vlvula. Duas peas foram concebidas para integrar o sistema. Uma que transmite o
torque do motor a vlvula e outra que seria o suporte do motor na prpria vlvula.
A transmisso entre o motor e a vlvulas engastada. Um suporte deve ser
projetado para que haja restrio do movimento de suas conexes. Essa conexo no
pode ser engastada. Duas conexes engastadas entre as mesmas peas devem ser
muito precisas, pois se no, pode formar um sistema hiperesttico podendo causar
tenses internas no sistema e danific-lo.
O motor escolhido foi um de corrente contnua e deve atuar nos sentidos horrio e
anti-horrio, que fariam a abertura e o fechamento da vlvula para o controle da
vazo. Dois rels e uma alimentao DC externa viabilizam isso.
Uma vez pesquisada todas as solues existentes, foi definido o funcionamento
do chuveiro e listaram-se os componentes necessrios concepo do projeto.
2.1
Lista de componentes
1 Chuveiro eltrico;
1 placa Arduino Uno;
1 sensor de temperatura;
1 medidor de vazo;
1 vlvula gaveta;
1 motor eltrico;
2 potencimetros;
1 tela de LCD;
2 rels de 2 contatos de 5 volts
1 rel de estado slido;
Alimentao de 9 Volts DC;
Protoboard e cabos;
Tambm foi necessrio desenhar e fabricar duas peas:
Transmisso entre a sada do motor e a vlvula;
Suporte do motor.
2.2
tratamentos. Nela tambm contm a modelagem dinmica do sistema, o modelo
matemtico que efetivamente far o controle e os sinais de sada que vo para os
atuadores. Entre suas caractersticas, destacam-se:
Sada de 5 Volts
Terra
Pinos de entradas analgicas: so entradas que medem de terra a 5 Volts
porm escalonado em 1024 valores diferentes onde o terra igual a 0 e 5 Volts igual
a 1023.
Pinos de entradas e sadas digitais: so entradas ou sadas booleanas que
podem ser terra ou 5 Volts. Os valores so 0 ou 1 ou LOW ou HIGH. Essas entradas
digitais podem ter outras funes; usaremos 2 delas que sero explicadas mais a
frente.
duas temperaturas escolhidas foram 26 e 38 graus, pois um intervalo prximo da
temperatura da gua em um banho.
O medidor de vazo (Figura 2.3) tem como sada um sinal de onda quadrada cuja
frequncia varia com o fluxo. A funo de transferncia entre o fluxo e a frequncia
definida pelo fabricante e consta na folha de especificao do medidor.
Q 60
f L
f L
hora
7,5
7,5 min
O potencimetro uma resistncia ajustvel. Nesse caso, a resistncia varia
linearmente com o giro de um pequeno eixo. Conectaram-se os dois potencimetros
de 10 k nas entradas analgicas para a definio dos parmetros de referncia por
meio de interpolao.
A tela LCD (Figura 2.5) de 16x2 (duas linhas com dezesseis caracteres cada) foi
utilizada para visualizao pelo usurio das temperaturas e vazes de referncias e do
sistema.
Outros dois rels de contato (Figura 2.7), que alm de amplificadores, foram
usados para alterar a polaridade do motor eltrico viabilizando o fornecimento de
torque nos dois sentidos, para a abertura e o fechamento da vlvula. A Figura 2.8
mostra o funcionamento dos rels de contatos. Se ambos os contatos passam 0 V ou
9 V, no diferena de potencial, logo o motor na gira. Se um contato passa 0 V e outro
passa 9 V o motor gira em um sentido e se invertemos os contatos o motor gira em
outro sentido.
8
Foi necessrio desenhar e fabricar mais duas peas para o bom funcionamento
do acionamento da vlvula gaveta, uma transmisso entre a sada do motor e a
vlvula e um suporte do motor.
A transmisso do motor para a vlvula fixada por dois parafusos enquanto o
suporte fixo no motor e apoiado na vlvula. Isso foi projetado para que o sistema
no ficasse hiperesttico. Dessa forma, o sistema pode ter uma folga/grau de
liberdade que evita alguns tipos de tenses internas que possam vir a danifica-lo. As
figuras 2.9, 2.10 e 2.11 mostram fotos do prottipo concebido.
10
2.3
As entradas digitais podem ser usadas com algumas funes especiais, dentre
elas destacam-se duas que foram usadas:
2.3.1
PWM
11
Pulse Width Modulation, ou em portugus, modulao por largura de pulso uma
funo que tem como sada uma onda quadrada onde se ajusta uma razo de tempo
em que ela ser ligada (1) ou desligada (0). Essa onda tem uma frequncia constante
e alta, de forma que imperceptvel a transio entre o ligar e desligar, parecendo que
o sinal constante fornecendo uma razo da potncia total.
2.3.2
Rotina Externalinterrupts
13
Captulo 3
Modelagem matemtica
3.1
Temperatura
Q m c T
(3.1)
ou
Q
T0
m c
(3.2)
onde:
g C
.=4.180 J
kg C
14
T0 24C
v 2 L
min
(3.3)
1 L
30 s
(3.4)
Como:
1 kg L
m
1 kg
30 s
(3.5)
(3.6)
T .14,35 T0
(3.7)
T .14,35 24
(3.8)
15
3.2
Vazo
v v0
(3.9)
Onde:
v Vazo volumtrica de sada. A varivel que se deseja controlar.
v0 2 L
min
1 L
30 s
(3.10)
16
Para uma eficincia maior do controle da vazo, foi proposto duas faixas de tempo
constantes para atuao do motor na vlvula. Quando o mdulo do erro for acima de
0,8 a abertura ou fechamento da vlvula ser maior que quando o mdulo do erro
estiver entre 0,3 e 0,8.
Esta soluo foi proposta devido ao atraso entre a atuao e leitura do sistema,
ou seja, ao abrir ou fechar a vlvula, existe um atraso na estabilizao da vazo. Outra
razo foi o tempo necessrio de leitura do medidor. Como j descrito, o medidor
interrompe o programa durante um tempo para fazer a medio, afastando mais ainda
a leitura e atuao da vazo.
Outra razo para o controle ser do tipo liga e desliga foi o fato do medidor de
vazo ter uma preciso pequena e o chuveiro eltrico trabalhar com faixa pequena de
vazo. Seria muito difcil fazer o tratamento do erro.
Essa soluo se mostrou boa mesmo com um tempo alto de estabilizao em
grandes erros. Para pequenos erros ou distrbios no sistema, o controlador corrigiu
bem as flutuaes na sada do chuveiro.
Uma desvantagem desse controlador o alto tempo de estabilizao uma vez que
a correo do erro feita gradualmente.
Outra desvantagem dessa soluo a necessidade de se estabelecer uma faixa
de ajuste. Em vez de um ponto de ajuste, teremos uma faixa de ajuste. No caso, um
ponto de ajuste mais ou menos um desvio. A razo dessa faixa de ajuste que como
estamos controlando a vazo por meio de pequenas aberturas ou fechamentos
constantes, a tendncia que a sada deixe de ser uma funo contnua e se
transforme em uma funo discreta. Dessa forma, a probabilidade do erro ser zero
muito baixa, fazendo que sempre haja uma atuao, mesmo se o erro for infinitesimal.
Quando o mdulo do erro for menor que 0,3, no h atuao no sistema.
3.3
Temperatura x Vazo
17
Tmax
Q
Q
.
m c .v0 .c
(3.11)
Tmax
0,48
v0
(3.12)
18
Captulo 4
Controle
19
neste ltimo trabalha-se com a diferena do sinal de sada e de entrada, chamado de
erro.
Ex.: O controlador de velocidade de um carro. Uma vez definida a referncia ou
ponto de ajuste, o controlador compara essa referncia com a velocidade real do
veculo e atua de forma a ajustar a velocidade, acelerando ou freando o carro.
Figura 4.1: Diagrama de blocos: (a) malha aberta e (b) malha fechada
4.1
Linearidade
F ax by aF x bF y
20
Embora muitos fenmenos sejam representados por equaes lineares, na prtica
as relaes entre eles no so efetivamente lineares. Estudos mostram que esses
fenmenos podem ser lineares somente em um intervalo de operao.
Por isso, ao modelar um sistema no-linear, faz se o que chamamos de
linearizao. Modelar nada mais que definir o comportamento das variveis de um
sistema. Ao linearizar um sistema, estamos representando matematicamente seu
comportamento dentro de um intervalo pr-definido.
Uma boa linearizao do sistema define uma boa modelagem da dinmica do
sistema, que por sua vez proporciona uma maior acurcia do sistema de controle.
4.2
Distrbios ou Perturbaes
4.3
21
Esse tipo de controlador bem rstico e pouco preciso. Por atuar somente
como ligado ou desligado, o controlador gera oscilao na varivel controlada.
Trabalha dentro de uma mdia, oscilando entre um valor mximo e mnimo. O controle
dinmico do sistema limitado.
Geralmente, o controlador liga e desliga utilizado em ocasies onde o sistema
no impactado pelas flutuaes da varivel controlada. O processo permite essas
oscilaes.
As vantagens do controlador liga e desliga so a no necessidade de um estudo
profundo da dinmica do sistema, o projeto geralmente simples e de fcil
implementao, tem baixo custo e retorno em pouco tempo.
O controle de nvel de gua de uma caixa d'gua um bom exemplo de sistema
onde o um controlador liga e desliga funciona perfeitamente. Quando o nvel estiver
abaixo de um valor mnimo, a bomba acionada e, quando este nvel chega a um
valor mximo, a bomba desligada. A Figura 4.2 mostra um exemplo de grfico de um
controlador liga e desliga.
Nesse caso, no tem como controlar o nvel exato da gua na caixa d'gua, mas
pode-se afirmar que o nvel estar sempre entre uma faixa, nunca abaixo do nvel
mnimo, de forma a evitar o risco de faltar gua e nunca acima do nvel mximo,
evitando o vazamento e o desperdcio de gua.
22
4.4
Fator Integral = K i et dt
Fator Derivativo = K d et
A soma desses trs fatores gera o controlador PID. A compreenso de cada fator
e de suas contribuies so fundamentais para a definio das constantes K p , K d e
23
K i . Essas constantes so a alma do controlador PID, so elas, junto com uma boa
modelagem dinmica do sistema, que definem a estabilidade e o comportamento do
sistema.
t
PID K p et K i et dt K d et
0
et dt
0
Td et
PID K p et
Ti
onde:
Ki
Kp
Ti
K d K p Td
4.5
24
Os controladores PID so lineares e simtricos, o que faz seu desempenho em
sistemas no-lineares ser varivel. Por exemplo, num controle de temperatura em um
ambiente por meio de um ar condicionado, um caso de uso comum, o arrefecimento
ativo, mas o aquecimento passivo (arrefecimento desligado, sem aquecimento), o
overshoot apenas pode ser corrigido lentamente porque no pode ser forado. Neste
caso, o PID deve ser ajustado para ser superamortecido, para prevenir ou reduzir o
overshoot. Isso reduz o desempenho e aumenta o tempo de estabilizao.
25
4.6
Programao
Controle:
Aplicao do modelo matemtico da dinmica do controlador.
Atuao no sistema:
Programao dos atuadores, isto , as sadas do sistema.
Na figura abaixo, pode-se ver todas as variveis declaradas e a incluso da
biblioteca <LiquidCrystal.h>, que necessria para o funcionamento do
LCD.
V-se tambm a definio da funo rpm().
NoTopsFan=NoTopsFan+1
pinMode(pino,INPUT/OUTPUT);
defineopinocomoentradaousada
attachInterrupt(pino,funo,TIPO);
defineopino,afunoaserchamadaeoTIPO
(LOW/CHANGE/RISING/FALLING)
analogRead(pino);
fazaleituraanalgica(01023)
analogWrite(pino,pwm);
comandaasadapwm(0255)
digitalRead(pino);
fazaleituradigital(0ou1)
digitalWrite(pino,LOW/HIGH);
comandaasadadigital(0ou1)
sei();
habilitaainterrupo
cli();
desabilitaainterrupo
delay(tempo);
paraoprogramaporumtempo(emms)
map(x,min,max,novomin,novomax);
interpolaonmeroxdeumaescalaparaoutra
lcd.setCursor(x,y);
defineocursordoLCD
lcd.print(var);
imprimenoLCD
Serial.print();
imprimenoSerial
Tabela 4.2: Comandos principais do Arduino
27
Captulo 5
Aquisio e anlise dos dados
Para aquisio dos dados, foi usado o comando Serial.print() e depois exportados
para o Excel para fazer anlise e gerao de grficos.
5.1
40
38
36
34
32
30
28
26
24
22
20
SP
200
190
180
170
160
150
140
130
120
110
90
100
80
70
60
50
40
30
20
10
temp
Temperatura[C]
atuaes. Esse intervalo de tempo o que usado no projeto junto com a vazo.
Tempo[s]
mostra que o controlador responde bem ao sistema tendendo a temperatura de
referncia ou ponto de ajuste (SP). Porm, percebe-se que a volatilidade da medio
muito alta. Essa volatilidade alta, atrapalha a dinmica do sistema. Com essa
volatilidade, fica difcil tambm determinar o tempo de estabilizao do sistema. Por
isso foi includo um filtro de mdia mvel de dois para atenuar essa volatilidade. A
mdia mvel de dois usa a mdia entre o valor atual e o valor anterior medido.
Funciona como um filtro passa baixa onde atenua as medies de alta frequncia que
no so interessantes para o sistema.
O primeiro abaixou-se a temperatura, esperou-se estabilizar, logo em seguida
40
38
36
34
32
30
28
26
24
22
20
SP
temp
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
Temperatura[C]
Tempo[s]
29
PWM
1,2
DutyCycle[%]
1
0,8
0,6
0,4
0,2
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
0
Tempo[s]
Temperatura[C]
36
34
32
30
SP
28
temp
26
24
22
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
20
Tempo[s]
30
Como esperado, pelo fato de uma constante proporcional maior, o tempo de
estabilizao das temperaturas foi menor. Quando se abaixou a temperatura, o
sistema estabilizou-se em torno de 25 segundos enquanto aumentamos a temperatura
o sistema estabilizou-se em 50 segundos. A figura 5.5 mostra a atuao do PWM no
segundo experimento.
PWM
CiclodeTrabalho[%]
1,2
1
0,8
0,6
0,4
0,2
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
0
Ttulo
36
34
32
30
SP
28
temp
26
24
22
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
20
Tempo[s]
31
A dinmica do experimento foi igual a das anteriores com um tempo de
estabilizao menor. A figura 5.6 mostra que quando se abaixou a temperatura o
tempo de estabilizao foi de em torno de 30 segundos enquanto aumentamos a
temperatura o sistema estabilizou-se em 38 segundos.
Na verdade, o tempo de estabilizao quando abaixamos a temperatura foi maior
no quarto experimento que no terceiro. Isso pode ser explicado pelo fato que atuao
no caso de resfriamento da gua passiva, ou seja, no h atuao. Espera-se que o
sistema por si s resfrie a gua decorrido certo tempo. Nesse tipo de situao, o
sistema fica a merc de situaes adversas que no controlamos como, por exemplo,
a temperatura de entrada da gua e a perda de energia do sistema para o meio.
PWM
CiclodeTrabalho[%]
1,2
1
0,8
0,6
0,4
0,2
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
0
Tempo[s]
32
sensor mais preciso e/ou a introduo de mtodos matemticos de filtragem mais
eficientes na dinmica da leitura do sensor.
Foi realizado tambm um experimento somente com um controlador proporcional.
S que dessa vez diminumos o intervalo de tempo entre as medies e atuaes para
0,1 segundos.
Sem a constante de integrao o sistema no conseguiria eliminar o erro
estacionrio. Porm com um constante de integrao alta e um intervalo muito
pequeno entre as medies e atuaes, o sistema deveria oscilar com uma amplitude
pequena em torno do ponto de ajuste. Essa amplitude seria pequena ao ponto de ser
imperceptvel na sada do sistema.
40
38
Temperatura[C]
36
34
32
30
SP
28
temp
26
24
22
0
4
8
12
16
20
24
28
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
96
100
104
108
112
20
Tempo[s]
33
PWM
1,2
CiclodeTrabalho[%]
1
0,8
0,6
0,4
0,2
0
0
10
20
30
40
50
60
70
80
90
100
110
Tempo[s]
5.2
34
20
18
Vazo[L/s]
22
SP
temp
SP
vazo
80
75
24
70
65
26
60
55
28
50
45
30
40
35
32
30
25
34
20
15
36
10
10
38
Temperatura[C]
Tempo[s]
PWM
CiclodeTrabalho[%]
1,2
1
0,8
0,6
0,4
0,2
0
0
10
20
30
40
50
60
70
80
Tempo[s]
35
Nesses experimentos, pode-se ver que as temperaturas medidas se mantiveram
constantes parecendo assim que a temperatura do sistema independente da vazo.
Porm, se analisarmos o grfico da atuao do PWM sobre a temperatura, vemos que
houve uma alterao na atuao da temperatura.
O que podemos concluir em relao aos experimentos dois e trs que a
resposta do sistema de controle da temperatura alta e a da vazo lenta. Ento por
isso, imperceptvel o impacto na temperatura quando alteramos a vazo do sistema.
O controlador corrige a diferena de temperatura causada pela alterao na vazo de
forma rpida, antes mesmo que o usurio perceba.
As figuras 5.12 e 5.14 mostram a dinmica da temperatura e vazo no segundo e
terceiro experimento respectivamente e as figuras 5.13 e 5.15 mostram a atuao do
PWM no segundo e terceiro experimento respectivamente.
32
31
7
6
5
29
4
28
3
Vazo[L/s]
Temperatura[C]
30
SP
temp
SP
vazo
27
2
1
25
0
0
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100
105
110
26
Tempo[s]
36
PWM
CiclodeTrabalho[%]
0,85
0,8
0,75
0,7
0,65
0,6
0,55
0
10
20
30
40
50
60
70
80
90
100
110
120
130
140
150
160
170
180
190
200
210
220
230
0,5
Ttulo
31
30
7
6
5
28
4
27
3
26
Vazo[L/s]
Temperatura[C]
29
SP
temp
SP
vazo
65
60
55
50
45
40
35
30
25
20
15
0
10
24
5
25
Tempo[s]
37
PWM
CiclodeTrabalho[%]
0,9
0,85
0,8
0,75
0,7
0
10
20
30
40
50
60
70
80
90
100
110
Tempo[s]
38
Captulo 6
Consideraes finais
6.1
Concluso
39
O controlador do chuveiro de temperatura e vazo inicialmente planejado foi
concludo. As respostas e os grficos gerados corresponderam expectativa inicial do
projeto. O objetivo de estudar e entender mais sobre controladores, a concepo e a
visualizao de um controlador fsico foram alcanados com sucesso.
O que foi realizado:
Definio, adaptao e calibrao do sensor de temperatura no chuveiro.
Definio, adaptao e calibrao do medidor de vazo no chuveiro.
Sistema de atuao vlvula motor com transmisso e suporte adaptados para o
chuveiro.
Modelagem matemtica do sistema. Implementao de mdia dos valores
medidos para diminuir a impreciso e volatilidade dos instrumentos de medio
Programao do controlador foi desenvolvida em C/C++.
6.2
Trabalhos futuros
instantaneamente possibilitando a instalao de um controlador mais robusto como o
PID e tambm melhoraria o desempenho do controlador de temperatura.
Melhorar o desempenho do sistema de atuao motor-vlvula. A implementao
de um motor de passo daria mais eficincia ao modelo, pois se conseguiria saber a
posio angular da vlvula.
41
Referncias Bibliogrficas
42
Anexo I
Desenvolvimento da programao do controlador
43
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
int caso = 0;
int pottemp = 5;
int potvazao = 4;
float temp = 0;
float vazao = 0;
float errotemp = 0;
float errotemp2 = 0;
// Erros (temp)
float mediaerro = 0;
float errotemp_integral = 0;
float dertemp = 0;
float kpt = 50;
float kit = 0.2;
// Constantes do controlador
int pwm = 0;
int pinopwm = 10;
int saidatemp = 0;
int motor1 = 8;
int motor2 = 7;
// Controladores (Sadas)
float t = 1;
// Tempo entre as medies ( determinar)
//________________________________________________________________________
void rpm ()
//This is the function that the interupt calls
{
NbTopsFan++;
}
//________________________________________________________________________
void setup(){
lcd.begin(16, 2);
Serial.begin(9600);
pinMode(hallsensor, INPUT); // Entradas e sadas
pinMode(pinopwm, OUTPUT);
pinMode(motor1, OUTPUT);
44
pinMode(motor2, OUTPUT);
TCCR1B = TCCR1B & 0b11111000 | 0x05;
attachInterrupt(0, rpm, RISING); //and the interrupt is attached
}
//_______________________________________________________________________
void loop(){
// ----------------------- Incio da leitura da vazo ------------------NbTopsFan = 0;
//Set NbTops to 0 ready for calculations
sei();
//Enables interrupts
delay (1000);
//Wait 1 second
cli();
//Disable interrupts
ValorVazao = NbTopsFan;
//(Pulse frequency x 60) / 7.5Q, = flow rate in L/hour
ValorVazao = ValorVazao / 7.5;
// ---------------------- Final da leitura da vazo --------------------ValorTemp = map(analogRead(NTC), 508, 635, 260, 380);
ValorTemp = ValorTemp/10;
// Leitura da temperatura
// Controlador da temperatura
// Erro vazao
45
caso = 0;
if ((mediaerrovazao < -0.3) && (mediaerrovazao > -0.8)){
p/ um sentido
digitalWrite(motor2,HIGH);
delay(300);
caso = 1;
digitalWrite(motor2,LOW);
}
// Controlador da vazo
sentido
digitalWrite(motor1,HIGH);
delay(700);
caso = 4;
digitalWrite(motor1,LOW);
}
// FIM DO CONTROLADOR________________________________________
// LCD ______________________________________
// 0123456789012345
// T: 30,5 30,5 C
// V: 1,4 1,6 L/m
// ________________
lcd.setCursor(0,0);
lcd.print("T:");
lcd.setCursor(0,1);
lcd.print("V:");
lcd.setCursor(14,0);
lcd.print("C");
lcd.setCursor(13,1);
lcd.print("L/m");
lcd.setCursor(3,0);
lcd.print(temp);
lcd.setCursor(7,0);
lcd.print(" ");
lcd.setCursor(3,1);
lcd.print(vazao);
lcd.setCursor(7,1);
46
lcd.print(" ");
lcd.setCursor(9,1);
lcd.print(ValorVazao);
lcd.setCursor(8,0);
lcd.print(ValorTemp);
lcd.setCursor(13,0);
lcd.print(" ");
// FIM DO LCD________________________________
} //void loop
47