Escolar Documentos
Profissional Documentos
Cultura Documentos
Nowadays, the market and interest in the consumption and manufacture of craft beers
have been growing considerably, And often, appreciators of such art, encounter
difficulties when launching the manufacture of their own beer. Always seeking a more
efficient process, with higher quality, more accurate repeatability of recipes, among
others. A very important and difficult step to manually control is the mashing, where
the mal tis cooked in water at a controlled temperature. To make this process more
accurate and easier to perform, a system capable of controlling the mashing
temperature was proposed, with a PID control strategy (in order to achieve less than
5% of overshoot and less than 1ºC steady state error), using an Arduino and other
lower cost equipment as an alternative to existing products in the market.
P Controlador Proporcional
PI Controlador Proporcional Integrativo
PID Controlador Proporcional Integrativo e Derivativo
GLP Gás Liquefeito de Petróleo
IDE Integrated Development Environment
L Tempo morto
T Constante de tempo
K Constante de Ganho
Kp Ganho Proporcional
Ti Tempo integral
Td Tempo derivativo
SUMÁRIO
1 INTRODUÇÃO ............................................................................................... 11
1.1 APRESENTAÇÃO .......................................................................................... 11
1.2 OBJETIVO ...................................................................................................... 11
1.2.1 OBJETIVO GERAL ......................................................................................... 11
1.2.2 OBJETIVO ESPECÍFICO ............................................................................... 12
2 CONTEXTUALIZAÇÃO ................................................................................. 13
2.1 INGREDIENTES DA CERVEJA ..................................................................... 13
2.1.1 Água ............................................................................................................... 13
2.1.2 Malte ............................................................................................................... 14
2.1.3 Lúpulo ............................................................................................................. 14
2.1.4 Levedura ......................................................................................................... 15
2.1.5 Adjuntos .......................................................................................................... 16
2.2 MOSTURAÇÃO .............................................................................................. 16
3 METODOLOGIA............................................................................................. 18
3.1 LEVANTAMENTO DE MATERIAIS ................................................................ 18
3.2 PRECIFICAÇÃO E ANÁLISE DE MERCADO ................................................ 20
3.2.1 Sistema 1 ........................................................................................................ 22
3.2.2 Sistema 2 ........................................................................................................ 23
3.2.3 Relação entre os sistemas apresentados ....................................................... 25
3.3 DESENVOLVIMENTO DO PROTÓTIPO........................................................ 26
3.3.1 Arduino Mega ................................................................................................. 26
3.3.2 Motor DC 12V com Caixa De Redução e Encoder ......................................... 26
3.3.3 L298N ............................................................................................................. 27
3.3.4 Sensor ............................................................................................................ 27
3.4 MONTAGEM DO PROTÓTIPO ...................................................................... 29
3.4.1 Acoplamento flexível ....................................................................................... 30
3.4.2 Regulador de pressão..................................................................................... 31
4 CONTROLE.................................................................................................... 35
4.1 INTRODUÇÃO ................................................................................................ 35
4.2 MODELAGEM DO SISTEMA ......................................................................... 35
4.3 PARÂMETROS DO CONTROLADOR............................................................ 41
5 TESTES E VALIDAÇÃO ................................................................................ 43
6 CONCLUSÃO E RECOMENDAÇÃO PARA TRABALHOS FUTUROS ........ 45
REFERÊNCIAS BIBLIOGRÁFICAS ......................................................................... 46
APÊNDICE ................................................................................................................ 48
APÊNDICE A- CÓDIGO DO CONTROLADOR PID NO ARDUINO ......................... 49
APÊNDICE B- CÓDIGO PROPOSTO DO CONTROLADOR PID E SHIELD LCD NO
ARDUINO ................................................................................................................. 56
11
1 INTRODUÇÃO
1.1 APRESENTAÇÃO
A produção de cerveja consiste em diversas partes que vão desde a
preparação dos ingredientes até a filtragem e embalagem. O conceito geral da
fabricação de cerveja é a conversão da fonte de amido em mosto, um líquido
açucarado, que será submetido à fermentação para formar finalmente a bebida
alcoólica. Esta conversão da fonte de amido em mosto é feita durante o processo de
mosturação (brassagem), que consiste em misturar o malte moído à água aquecida
em temperatura controlada. Nesse momento as enzimas convertem o amido em
açúcares fermentáveis e açúcares não fermentáveis. A mosturação geralmente tem
duração de 60 a 90 minutos em temperaturas que variam de 62°C a 72°C,
dependendo do estilo da cerveja. E essa temperatura necessita de um controle
preciso.
O controle de temperatura na mosturação do sistema em questão é manual,
ajustando a vazão de gás (GLP), a fim de controlar a chama que esquenta a panela
cervejeira. Porém este controle além de cansativo, impreciso e inseguro. E há poucos
equipamentos no mercado que possibilitam esse controle de forma automatizada, com
um preço acessível, conforme pesquisa de preços e sistemas elaborados pelos
autores, abordados nas seções seguintes. Ainda mais, considerando a proposta deste
trabalho de desenvolver um sistema de automação e controle de baixo custo, na
fabricação de cerveja caseira.
1.2 OBJETIVO
2 CONTEXTUALIZAÇÃO
2.1.1 Água
Sobre a água cervejeira, BORZANI (2001, Vol. IV, (p. 107)) diz que:
A água a ser utilizada no processo de produção de cerveja não deve apenas
satisfazer os requisitos de uma água potável, mas deve apresentar
características específicas para assegurar um pH desejável da mistura de
malte e adjunto durante a mosturação, promover a extração do princípios
amargos e aromáticos do lúpulo, bem como uma boa coagulação do “trub”
(material mucilaginoso) durante a fervura do mosto; permitir uma fermentação
asséptica e desenvolver cor, aroma e sabor característicos do tipo de cerveja
a ser fabricada.
2.1.2 Malte
“VENTURINI FILHO define malte como a matéria-prima resultante da
germinação de qualquer cereal (cevada, milho, trigo, aveia, entre outros) a condições
controladas. ” (2005 apud Coele, 2016, p.18)
A respeito dos cereais, BORZANI (2001, Vol. IV, p.97-98) aponta que:
A cevada é a que apresenta menores dificuldades técnicas no processo de
maltagem [...]. Além disso, a cevada apresenta em sua composição alto teor
de amido, ou em outras palavras, de extrato fermentável. A proteína presente
encontra-se em quantidade e qualidade suficiente para a nutrição das
leveduras durante a fermentação, como também para a formação de espuma
no produto final.
2.1.3 Lúpulo
“O lúpulo (Humulus lupulus L.) é uma espécie de planta trepadeira, perene,
que pertence ao grupo das Urticáceas e da família Cannabaceae”. (REINOLD, 2017)
Segundo BORZANI, o interesse industrial recai sobre as plantas femininas,
mais precisamente sobre as flores na forma de cone e frutos resultantes delas. Pois
estes são ricos em lupulina, responsável pelo aroma e amargor característicos de
lúpulo das cervejas (BORZANI, 2001, Vol. IV p. 104 - 105).
15
Ainda sobre este ingrediente, Morado (2009 apud Coele, 2016, p.20)
estabelece que “Diferentemente do malte, o lúpulo, [...] não altera o corpo da cerveja
nem seu teor alcoólico, mas é fundamental para conferir à bebida o aroma e amargor
característicos das boas cervejas”.
Sob a óptica cervejeira, BORZANI (2001, Vol. IV, p.105) ressalta que:
As frações mais importantes da lupulina são as resinas e os óleos essenciais.
As resinas são constituídas principalmente de alfa e beta-ácidos. Os
primeiros, também chamados humulonas, são a fonte principal de amargor
na cerveja; enquanto que os segundos, denominados lupulonas, são menos
importantes. Durante a fervura do morto, as moléculas de alfa-ácidos são
isomerizadas para forma alfa-isso-ácidos. Esses compostos, [...], são muito
mais amargos e muito mais solúveis do que os alfa-ácidos.
2.1.4 Levedura
De acordo com Venturini Filho (2005 apud Coele, 2016, p.21) “as
características de aroma e sabor de qualquer cerveja são preponderantemente
determinadas pelo tipo de levedura utilizada”.
A respeito dos tipos de fermentação, BORZANI (2001, Vol. IV) ressalta que:
Nas cervejarias, entretanto, se faz uma classificação empírica baseada no
comportamento da levedura cervejeira durante a fermentação. Assim, se
durante o processo fermentativo a levedura sobe para a superfície do mosto,
ela é denominada de ‘alta fermentação’; e se ao final do processo
fermentativo decanta no fundo do fermentador, é chamada de ‘baixa
fermentação.
Sendo a alta fermentação o caso das Ales, Altbier, kölsh, entre outras e a baixa
fermentação o caso das Lager, Wienes, Märzen, entre outras.
16
2.1.5 Adjuntos
De acordo com REINOLD, adjuntos podem ser definidos como qualquer
ingrediente, no contexto da produção da cerveja, que não seja malte, água, lúpulo ou
levedura. São capazes de fornecer caraterísticas diferentes ao prduto final e podem
substituir parcialmente o malte na produção, dependendo do tipo de cerveja que
deseja alcançar. São utilizados como adjunto: grãos não-maltados, frutas, ervas,
especiarias, açúcares, entre outros. (REINOLD, 2017)
Em síntese o processo de fabricação da cerveja é a conversão da fonte de
amido em açúcares, formando o mosto, este será submetido à fermentação, que irá
transformar açúcar em álcool, para finalmente formar a bebida alcoólica.
O processamento pode ser dividido em três fases. A produção do mosto, que
envolve a maltagem, moagem do malte, mosturação, filtração, fervura e clarificação.
O processo fermentativo, subdivido em fermentação e maturação. E acabamento da
cerveja, que envolve condicionamento e envase (BORZANI, 2001).
2.2 MOSTURAÇÃO
O processo de mosturação (brassagem) consiste em transformar as matérias
primas cervejeiras em mosto. O malte moído é misturado com água quente, numa
temperatura controlada. Nesse momento o malte é hidratado e se inicia a atividade
das enzimas, dentre as várias enzimas que são ativadas, merecem destaque as
amilases que convertem o amido em açúcares fermentáveis e dextrina não
fermentável e as proteases que produzem nutrientes pela digestão das proteínas
(BORZANI, 2001, Vol. IV p. 115 - 116).
As amilases α e ß hidrolisam o amido e a amilipectina, fazendo a liberação dos
açúcares fermentáveis, tendo nas temperaturas mais baixas, a alta atividade da beta
amilase, e nas temperaturas mais altas a alpha amilase (Briggs et al, 2005).
O tempo de mosturação geralmente varia de 60 e 90 minutos em temperaturas
que variam de 62°C a 72°C, dependendo do estilo da cerveja, pois por volta de 70ºC
(α) terá uma cerveja mais encorpada e menos alcóolica, já na temperatura de 62ºC
(ß) terá uma cerveja menos encorpada e mais alcóolica. Existem ainda, outras rampas
17
de temperatura que, dependendo do estilo da cerveja, podem ser utilizadas para ativar
algumas enzimas específicas (Briggs et al, 2005).
3 METODOLOGIA
Fonte: Autor
Onde:
P = Potência em kW.
M = Massa do líquido a ser aquecido em kg (para água considere 1kg por litro).
C = Calor específico em caloria por minuto (para água considere 1cal/min).
T1 = Temperatura inicial em ºC
T2 = Temperatura final em ºC.
h = Tempo de aquecimento em horas.
860 = constante para conversão de kW para calorias.
Para uma rampa de sacarificação em 76ºC, em uma panela de 100 litros,
resistência de 10KW e temperatura ambiente de 20ºC.
Com a substituição desses valores na equação (3.1), calcula-se o tempo de
aquecimento equivalente a 0,65116 horas. O que leva a um consumo de 6,5116 kWh.
Com a tarifa de energia elétrica custando R$ 1,06718 calcula-se um consumo de R$
6,949 que equivale a U$ 1,843, Cotação do dólar equivalente a R$ 3,77 (23/07/2019).
22
Considerando o gás (GLP) com uma vazão de 0,5kg/h, com poder calorífico de
11.500 Kcal por quilograma de gás obtém-se uma potência de 5750kcal/h. Para as
condições anteriormente citadas e substituição de valores na equação (3.1), calcula-
se o tempo de aquecimento equivalente a 0,9739 horas. Que leva a um consumo de
0,4869 kg GLP, considerando um botijão de 13 kg custando R$ 70,00, calcula-se um
consumo de R$ 2,6217, que equivale a U$ 0,6954, Cotação do dólar equivalente a R$
3,77 (23/07/2019).
Além da análise de custo energético, foi realizada também uma comparação
entre os custos para implantação de diferentes sistemas de controle de temperatura.
3.2.1 Sistema 1
Sistema de controle on/off com uso de uma resistência elétrica de 8000 watts
em 220 Volts.
Fonte: Controlbeer
23
Fonte: Autor
3.2.2 Sistema 2
Sistema de controle on/off com uso de válvula solenoide NF (normal fechada)
para gás. Não está incluso o sistema de chama piloto e o regulador de pressão de
gás.
24
Fonte: Controlbeer
Fonte: Tecnotronics
25
Fonte: Autor
cotação dólar
R$ 4.01
(18/08/2019)
Fonte: Autor
26
Fonte: AliExpress
Fonte: Bsmart
27
3.3.3 L298N
O módulo driver ponte H L298N foi utilizado para alimentar o arduino com
tensão de 5V, controlar e inverter a rotação do motor.
3.3.4 Sensor
O sensor utilizado no projeto foi o DS18b20, responsável por proporcionar a
medição da temperatura e enviar os dados ao Arduino, sendo essencial desde a etapa
de identificação da curva do sistema até o feedback no processo de controle. Algumas
especificações deste sensor são:
Range de Medição de Temperatura: -55ºC até 125ºC
Precisão de 0.5ºC na faixa de temperatura de -10ºC a 85ºC
Tensão de Alimentação: 3V a 5V
Além disso, este é um sensor digital, com resolução programável. A
comunicação é feita através de uma biblioteca específica implementada no Arduino.
28
Fonte: Eletrogate
29
Fonte: Autor
Fonte: Autor
32
Fonte: Autor
33
Fonte: Autor
34
Por fim, foi adicionado o shield LCD e botões, a fim de criar uma interface homem
máquina, que permite a visualização da temperatura, da variável manipulada (número
de pulsos do encoder) e Setpoint, que também pode ser alterado com uso dos botões,
implementados em uma caixa a fim de conferir acabamento e proteção ao protótipo,
utilizando todos materiais citados na Tabela 1.
Fonte: Autor
35
4 CONTROLE
4.1 INTRODUÇÃO
Com a instalação de gás e elétrica pronta, iniciou-se a etapa de controle do
sistema, utilizando um Arduino Mega para compilar os códigos e adquirir os dados
através da IDE do Arduino. E para o tratamento dos dados da planta e do controlador
foi utilizado o software MATLAB.
Fonte: Autor
A partir dos dados obtidos empiricamente, foi definido que seria aplicado um
degrau inicial de 96 pulsos de abertura da válvula para que fosse possível uma
estabilização de uma temperatura diferente do ambiente. E posteriormente, um
degrau de uma abertura da válvula correspondente a 237 pulsos do encoder, onde foi
possível observar uma certa estabilização do sistema em uma temperatura próxima
do SetPoint que será trabalhado. Como resposta, foi verificada a variação da
temperatura da água de 40.7ºC até 68.6ºC. Com o gráfico de resposta ao degrau,
calculamos os fatores para a planta de transferência.
38
Fonte: Autor
Fonte: Autor
39
Fonte: Autor
Fonte: Ogata(2010)
Fonte: Autor
Tabela 6: Cálculo de Parâmetros de Sintonia PID pelo método Ziegler-Nichols em Malha Aberta
5 TESTES E VALIDAÇÃO
Fonte: Autor
44
Fonte:Autor
45
REFERÊNCIAS BIBLIOGRÁFICAS
APÊNDICE
49
#include "Wire.h"
#include "OneWire.h"
#include "DallasTemperature.h"
#define ONE_WIRE_BUS_1 A0
OneWire ourWire1(ONE_WIRE_BUS_1);
DallasTemperature sensor1(&ourWire1);
float RawValue = 0;
const byte Encoder_C1 = 2;
int duracao=0;
int Direcao;
//Pinos de ligacao ponte H L298N
int IN3 = 6;
int IN4 = 7;
const byte interruptPin = 0;
float Kp = 69.9220;
float Ti = 2.7333;
float Td = 0.6833;
float Ki = Kp/Ti;
float Kd = Kp*Td;
float Setpoint = 62;
float error=0;
int PID;
float lastProcess;
float lastRawValue;
int P;
int I;
int D;
unsigned long tempo;
50
int power=200;
int aux=0;
void setup()
{
delay(1000);
Serial.begin(9600);
sensor1.begin();
sensor1.setResolution(11);
//Definicao do encoder
pinMode(Encoder_C1, INPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(interruptPin,calculapulso,RISING);
Serial.print("tempo");
Serial.print("\t");
Serial.print("T(ºC)");
Serial.print("\t");
Serial.print("SP");
Serial.print("\t");
Serial.print("error");
Serial.print("\t");
Serial.print("PID");
Serial.print("\t");
Serial.print("pulso");
Serial.print("\t");
51
Serial.print("P");
Serial.print("\t");
Serial.print("I");
Serial.print("\t");
Serial.println("D");
/* horario();
delay(5000);
Serial.println("fechou");
duracao=0;
delay(100);*/
}
void loop()
{
tempo = millis();
int aux=0;
if(tempo==10000)
{
Direcao=1;
analogWrite(IN3,0);
analogWrite(IN4,70);
}
if(tempo==15000)
{
Stop();
aux=1;
duracao=0;
}
if((tempo%1000)==0)
{
sensor1.requestTemperatures();
52
RawValue = ((sensor1.getTempCByIndex(0))-2);
Serial.print(tempo/1000);
Serial.print("\t");
Serial.print(RawValue);
Serial.print("\t");
Serial.print(Setpoint);
Serial.print("\t");
Serial.print(error);
Serial.print("\t");
Serial.print(PID);
Serial.print("\t");
Serial.print(duracao);
Serial.print("\t");
Serial.print(P);
Serial.print("\t");
Serial.print(I);
Serial.print("\t");
Serial.println(D);
if (tempo>16000)
{
PIDt ();
}
}
}
void PIDt()
{
RawValue = ((sensor1.getTempCByIndex(0))-2);
error = Setpoint - RawValue;
float deltaTime = (millis() - lastProcess) / 1000.0;
lastProcess = millis();
P = Kp*error;
53
I = Ki*error + I;
if (I>500) I=500;
if (I<80) I=80;
if(error<=0.13 && aux==0)
{
I=0;
aux=1;
}
if(error>=2 && aux==1)
{
aux=0;
}
D = (lastRawValue - RawValue)*Kd;
lastRawValue = RawValue;
PID = P + I + D;
if(PID>1500 || error>2) //ideia: se error<2 ou <1 limitar o PID em 300 ou 500
{
PID=1500;
}
if(PID<130)
{
PID=0;
}
if(duracao>=120)
{
power= 100;
}
else
{
power= 200;
}
54
if(duracao<(PID-0))
{
anti_horario();
}
if(duracao>(PID+0))
{
horario();
}
}
void calculapulso()
{
if(duracao>=(PID-10) && duracao<=(PID+10) && tempo>15500)
{
Stop();
// delay(200);
}
if (!Direcao)
{
duracao++;
}
else
{
duracao--;
}
void Stop()
{
analogWrite(IN3,power); //45
55
analogWrite(IN4,power); //60
}
void anti_horario()
{
Direcao=0;
analogWrite(IN3,(power-15)); //55
analogWrite(IN4,0);
}
void horario()
{
Direcao=1;
analogWrite(IN3,0);
analogWrite(IN4,power); //70
}
56
#include <LiquidCrystal.h>
#include "Wire.h"
#include "OneWire.h"
#include "DallasTemperature.h"
#define ONE_WIRE_BUS_1 A8
OneWire ourWire1(ONE_WIRE_BUS_1);
DallasTemperature sensor1(&ourWire1);
int D;
unsigned long tempo;
int power=200;
int aux=0;
void setup(){
delay(1000);
Serial.begin(9600);
sensor1.begin();
sensor1.setResolution(11);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(Encoder_C1, INPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(interruptPin,calculapulso,RISING);
lcd.begin(16, 2);
lcd.setCursor(3,0);
lcd.print("VP=");
lcd.setCursor(6,0);
lcd.print(RawValue,1);
lcd.setCursor(11,0);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("SP=");
lcd.setCursor(3,1);
lcd.print(SP1,1);
lcd.setCursor(9,1);
lcd.print("VM=");
lcd.setCursor(12,1);
lcd.print(duracao);
delay(500);
58
Serial.print("tempo");
Serial.print("\t");
Serial.print("T(ºC)");
Serial.print("\t");
Serial.print("SP");
Serial.print("\t");
Serial.print("error");
Serial.print("\t");
Serial.print("PID");
Serial.print("\t");
Serial.print("pulso");
Serial.print("\t");
Serial.print("P");
Serial.print("\t");
Serial.print("I");
Serial.print("\t");
Serial.println("D");
}
void loop() {
tempo = millis();
int aux=0;
if(tempo==10000)
{
Direcao=1;
analogWrite(IN3,0);
analogWrite(IN4,70);
}
if(tempo==15000)
{
Stop();
aux=1;
59
duracao=0;
}
if (600<(analogRead (0)) && (analogRead (0))< 800)
{
LCD(1);
}
if((tempo%1000)==0)
{
sensor1.requestTemperatures();
RawValue = ((sensor1.getTempCByIndex(0))-2);
Serial.print(tempo/1000);
Serial.print("\t");
Serial.print(RawValue);
Serial.print("\t");
Serial.print(SP1);
Serial.print("\t");
Serial.print(error);
Serial.print("\t");
Serial.print(PID);
Serial.print("\t");
Serial.print(duracao);
Serial.print("\t");
Serial.print(P);
Serial.print("\t");
Serial.print(I);
Serial.print("\t");
Serial.println(D);
lcd.setCursor(6,0);
lcd.print(RawValue,1);
lcd.setCursor(3,1);
lcd.print(SP1,1);
lcd.setCursor(12,1);
60
lcd.print(duracao);
if (tempo>16000)
{
PIDt ();
}
}
}
void PIDt()
{
RawValue = ((sensor1.getTempCByIndex(0))-2);
error = SP1 - RawValue;
float deltaTime = (millis() - lastProcess) / 1000.0;
lastProcess = millis();
P = Kp*error;
I = Ki*error + I;
if (I>500) I=500
if (I<80) I=80;
if(error<=0.13 && aux==0)
{
I=0;
aux=1;
}
if(error>=2 && aux==1)
{
aux=0;
}
D = (lastRawValue - RawValue)*Kd;
lastRawValue = RawValue;
PID = P + I + D;
61
if(PID>1500 || error>2)
{
PID=1500;
}
if(PID<130)
{
PID=0;
}
if(duracao>=120)
{
power= 100;
}
else
{
power= 200;
}
if(duracao<(PID-0))
{
anti_horario();
}
if(duracao>(PID+0))
{
horario();
}
}
void calculapulso()
{
if(duracao>=(PID-10) && duracao<=(PID+10) && tempo>16500)
{
Stop();
// delay(200);
62
}
if (!Direcao)
{
duracao++;
}
else
{
duracao--;
}
}
void Stop()
{
analogWrite(IN3,power);
analogWrite(IN4,power);
}
void anti_horario()
{
Direcao=0;
analogWrite(IN3,(power-15));
analogWrite(IN4,0);
}
void horario()
{
Direcao=1;
analogWrite(IN3,0);
analogWrite(IN4,power);
}
63
void LCD(int a)
{
Serial.println("LCD");
delay(500);
lcd.clear();
lcd.print("SELECIONAR O SP");
lcd.setCursor(4,1);
lcd.print("SP=");
lcd.setCursor(7,1);
lcd.print(SP1,1);
int botao;
delay(500);
while(a==1)
{
lcd.setCursor(7,1);
lcd.print(SP1,1);
botao = analogRead (0);
if (botao < 80)
{
if(SP1<100)
{
SP1=SP1+0.1;
delay(200);
}
}
else if (botao < 200)
{
if(SP1<100)
{
SP1=SP1+1;
if(SP1>100)
{
64
SP1=100;
}
delay(200);
}
}
else if (botao < 400)
{
if(SP1>0)
{
SP1=SP1-1;
if(SP1<0)
{
SP1=0;
}
delay(200);
}
}
else if (botao < 600 && SP1>0)
{
if(SP1>0)
{
SP1=SP1-0.1;
delay(200);
}
}
else if (botao < 800)
{
lcd.clear();
lcd.setCursor(3,0);
lcd.print("VP=");
lcd.setCursor(6,0);
lcd.print(RawValue,1);
65
lcd.setCursor(11,0);
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("SP=");
lcd.setCursor(3,1);
lcd.print(SP1,1);
lcd.setCursor(9,1);
lcd.print("VM=");
lcd.setCursor(12,1);
lcd.print(duracao);
a=0;
delay(300);
}
}
}