Podemos aplicar um ventilador ou fan para retirar o ar quente de um equipamento fechado, assim como refrigerar um dissipador de calor. Essa técnica é amplamente utilizada em computadores, como por exemplo na utilização de coolers em processadores e fans no gabinete.
Um projeto que envolve potência ou qualquer outro componente que está superaquecendo, é interessante adicionar um dissipador de calor e um fan para o circuito suportar seu funcionamento sem perda de desempenho, e prevenir que não ultrapasse a temperatura máxima recomendada pelos datasheets, para isso desenvolvemos um projeto utilizando um controle de fan e termômetro para monitorar a temperatura via plataforma Arduino, desfrutando de recursos nativos da IDE de desenvolvimento.
Para você montar este projeto separamos uma lista completa com os componentes eletrônicos necessários, e siga atentamente o esquemático abaixo.
- Arduino Uno com cabo USB
- 1 Ventilador/Fan simples de 12V
- 1 LM35
- 1 Fonte de alimentação 12V
- 1 Transistor BC547
- 1 Transistor BD679
- 1 Diodo 1N4007
- 1 Resistor de 1K
- 1 Resistor de 10K
- 1 Protoboard pequeno
- Fios jumpers
O funcionamento do circuito de controle é baseado em dois transistores de junção bipolar do tipo NPN, para ligar o fan é necessário injetar LOW na base do transistor BC547 para cortar o seu fluxo de corrente, permitindo saturar o transistor BD679 por suas junções. Acionando a junção Base/Emissor do BC547 com um sinal HIGH, o transistor entra em modo saturado, onde a tensão da base do BD679 será anulada, consequentemente o transistor entra em modo de corte forçando o desligamento do fan.
O monitoramento de temperatura é realizado com o termômetro analógico LM35. Seguindo a imagem abaixo da pinagem do LM35, o pino 1 é ligado ao 5V, o pino 2 é a saída dos dados para a porta analógica A0 do Arduino, e o pino 3 é ligado ao GND conforme as imagens abaixo.
O Sketch que será enviado ao microcontrolador utilizado na placa Arduino Uno, realiza primeiramente a leitura dos dados, e posteriormente o calculo de conversão de 1mV do LM35 para um intervalo compatível com a porta analógica, onde o valor 0 representa 0V e o valor 1023 equivale a 5V, com isso podemos medir a temperatura com precisão na escala Celsius. Vale ressaltar que o resistor de 10K está presente na saída analógica para normalizar o valor obtido.
Copie e cole este simples código, envie para o Arduino e abra o Monitor ou Plotter Serial para visualizar o resultado das medições. Para testes rápidos de temperatura foi aproximado um ferro de solda em sua potencia máxima, chegando em seus 73 graus Celsius, onde a configuração dos valores de máximo e mínimo para controlar o fan estão em um faixa 34 graus e de 37 graus, realizando um ciclo de histerese. Você pode visualizar o funcionamento no vídeo abaixo.
/*
* Controle de fan com monitoramento de temperatura
*
* Autor: tecdicas
* https://tecdicas.com/
*
* 27/12/2018
*/
#define termometro A0
#define fan 3
float temperatura = 0;
void Monitoramento()
{
temperatura = (5.0 * analogRead(termometro) * 100.0) / 1024.0;
Serial.print("Temperatura: ");
Serial.println(temperatura);
// Altere os valores conforme a necessidade
// Temperatura máxima
if(temperatura > 37)
{
digitalWrite(fan, LOW);
}
// Temperatura mínima
else if(temperatura < 34)
{
digitalWrite(fan, HIGH);
}
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
Monitoramento();
// Intervalo de 5 seg para Monitor Serial.
// Intervalo de 500 ms para Plotter Serial.
delay(5000);
}