Projeto - Aquecedor de água com controle ON-OFF
Last updated
Last updated
Esta proposta de projeto consiste em um simples sistema de controle de temperatura do tipo ON-OFF, que pode ser implementado utilizando qualquer microcontrolador. O objetivo deste sistema de controle é aquecer um liquido, como água, mantendo sua temperatura próxima a um valor pré-determinado (um set-point).
Os materiais necessários para este projeto são os seguintes:
Uma placa de desenvolvimento baseada em um microcontrolador ou um SoC (Ex: Arduino Uno, Raspberry Pi, STM32 Blue Pill, ESP32 DevKit, etc);
Um ebulidor portátil;
Um módulo de relé;
Um sensor de temperatura DS18B20.
Nas próximas seções deste artigo, as partes do projeto, bem como a programação do controlador, serão explicadas.
Um ebulidor é um aquecedor de água portátil. Normalmente é um equipamento simples, robusto e de fácil uso - basta colocá-lo em um copo d'água e ligá-lo na tomada. Como o próprio nome diz, o aquecimento proveniente do ebulidor é suficiente para fazer a água entrar em ebulição em alguns minutos ou segundos após o equipamento ser ligado.
Para ligar ou desligar o ebulidor automaticamente com comandos elétricos de baixa tensão, é necessário utilizar um relé. Um relé é um dispositivo eletromecânico que consiste em um interruptor controlado por uma bobina. Quando a bobina é energizada, o campo magnético produzido por esta faz com que o interruptor mude de posição. O interruptor deste relé deve ser conectado ao cabo de alimentação do ebulidor, ligação esta que pode ser feita de duas formas: cortando o cabo (o que presume que o equipamento precisará ser danificado para que o projeto possa ser executado), ou utilizando uma extensão com relé (o que elimina a necessidade de danificar o ebulidor, mas aumenta o custo do projeto).
Relés são componentes baratos, fáceis de usar e também fáceis de achar. No entanto, não é correto conectar os terminais de uma bobina diretamente às saídas digitais de um microcontrolador, pois estas saídas são de baixa potência e podem ser danificadas pelas altas correntes e também por eventuais variações de tensão produzidas pela bobina. Ao invés disso, o ideal é utilizar um circuito eletrônico de intermédio entre a bobina do relé e a saída digital do microcontrolador. Existem diversos módulos de relé no mercado que já vêm com este circuito eletrônico de intermédio.
O DS18B20 é um sensor digital de temperatura que pode ser submerso em água e que suporta temperaturas de -55ºC a 125ºC. Este sensor possui três terminais: um GND, um VCC (3V a 5.5V) e um terminal de dados com comunicação do tipo One Wire. Com o SDK Arduino Core, é possível ler facilmente os dados deste sensor através das bibliotecas OneWire e DallasTemperature.
Neste projeto, utiliza-se a técnica de controle ON-OFF para manter a temperatura da água próxima a uma temperatura pré-definida entre a temperatura ambiente e o ponto de ebulição da água. A técnica ON-OFF, neste caso, é uma abordagem de fácil implementação que consiste em ligar e desligar o ebulidor periodicamente para manter a temperatura da água dentro de um intervalo aceitável em torno da temperatura desejada.
Antes de partir para a explicação sobre a programação do controle ON-OFF, é necessário abordar o significado de algumas palavras-chave de controle:
Controlador - é o "cérebro" do sistema de controle, responsável por fazer a leitura dos sensores e controlar os atuadores.
Variável controlada - é uma grandeza física que precisa ser mantida em torno de um valor desejado. No caso deste projeto, a variável controlada é a temperatura da água.
Set-point - é um valor no qual deseja-se manter a variável controlada.
Variável manipulada - é o parâmetro manipulado pelo controlador para manter a variável controlada próxima ao set-point. Neste projeto, a variável manipulada é o estado do ebulidor (ON ou OFF).
Em controle ON-OFF existe também a histerese, que é uma tolerância de oscilação da variável controlada em torno do set-point.
O fluxograma a seguir mostra a lógica do programa que deve ser implementado.
O pseudocódigo a seguir mostra esta mesma lógica de programa utilizando uma estrutura similar à do Arduino Core.
De forma abstrata, a lógica apresentada acima pode ser descrita da seguinte maneira: quando o controlador é ligado, verifica-se se a temperatura da água é menor do que o set-point. Se sim, o ebulidor é ligado, e se não, o ebulidor permanece desligado. Após esta primeira etapa, o programa entra em um loop infinito, executando os seguintes comandos periodicamente:
Se o sistema está em modo de aquecimento (ebulidor ligado) e o limite máximo de temperatura permitido pelo sistema, definido como , foi atingido, o sistema entra em modo de resfriamento (ebulidor desligado).
Se o sistema está em modo de resfriamento (ebulidor desligado) e o limite mínimo de temperatura permitido pelo sistema, definido como , foi atingido, o sistema entra em modo de aquecimento (ebulidor ligado).
É extremamente recomendável que se adicione algum tipo de display ao projeto para que seja possível monitorar a temperatura da água em tempo real. Isto facilita o diagnóstico de eventuais falhas e erros de programação.
THOMSEN, A. Temperatura debaixo d’água com sensor de temperatura DS18B20. Disponível em: </>.